Coding my first program (kind of)

BasecampAPI

This morning, I clicked a single button to send a to-do list item to each student in STA Digital Media, instantly creating about 45 to-do list items in 45 different Basecamp projects. This is the result of a little side project I’ve been working on over the last week or so, culminating in a flurry of work over the 3-day weekend. However, it’s an idea that’s been percolating for a while.

Almost two years ago, I sat down to chat with a co-worker while we waited to board a Southwest flight at KCI. While I didn’t know it at the time, I now know that our then-new software engineering teacher, Greg Bustamante, is always up for a conversation about the nerdiest of nerdy things.

I had already told him I use Basecamp extensively in my media production class. Anyone who has worked with me for five minutes has heard that story. I no doubt hit the ground running the day, asking him how I might learn to use Basecamp’s API to communicate with a spreadsheet or our district LMS. I already knew he was doing some clever things with GitHub projects and personalized learning, but unfortunately, I’m not as smart as he is.

I had already exhausted the extent of my knowledge to utter that sentence in which I knew only of the existence and general concept of API. On the other hand, Greg had his laptop open before I finished pitching the idea, skimming through API documentation and setting up a quick test to check for authorization protocols… or something. Again, he’s the clever one, not me. I think it was something like that.

Over the following two years, I had bigger fish to fry, not the least of which was writing a dissertation, so I didn’t have much time to dabble in side projects. That said, I watched bits and pieces of Python courses on LinkedIn Learning and checked out books I didn’t finish reading from the Mid-Continent Public Library. I recognize, in retrospect, that what I was doing wasn’t far from the concept Becky Blades suggested. I was a stARTist, starting far more than I could finish.

In comes AI

Now, this story pivots to show how someone with minimal knowledge can harness AI to get started on a coding project. I saw a video showing how impressive Gemini 2.0 is and how it can teach you software by sharing your screen. I’m not quite ready to share my screen with AI, but I took that as a cue to jump into the depths of this long-simmering project.

On January 13th, I typed a prompt that included this into Google AI Studio, ” I want to connect a Google Sheet to Basecamp’s (project management platform) API to keep track of various projects, potentially pushing out mass to-do list items to several projects, or keeping track of documents that have been submitted in Basecamp in the Google Sheet.”

After that, it was off to the races. It was easy to get started because I already had remnants from my previous coding experiences on LinkedIn Learning. Python and Jupyter Notebook were installed. I needed to remind myself how to use them, but I could ask Google AI Studio questions when I ran up against a roadblock.

In passing, I told Greg I was making some progress connecting to Google Sheets Apps Script, and he steered me away from that approach, pointing me instead toward a local database. This got me over a hump that was slowing me down, and the project moved forward.

I’m not entirely clueless when it comes to coding and working from the command line, and I could ask for help when I needed it, but I knew I’d need a live human at some point. Last Thursday, I watched in awe as Greg stopped by and got the project back on track, helping me troubleshoot a pagination challenge by setting up a “while loop” to ensure I was retrieving all the results from the API. All very standard stuff, I’m sure. He also pointed me to Visual Studio Code, which I think I already had installed from my stARTist coding experience, and suggested connecting to GitHub Copilot, which took just minutes since I was already dabbling in it during my stARTist phase.

So yesterday was the home stretch. I pull all kinds of data from Basecamp and use it to build a local database. I stumbled through connecting to the database and cross-checking AI suggestions to snippets of code from Basecamp’s API documentation. I ran some tests by moving to-do list items to my personal project, and last night I added my first to-do list item to everyone’s project.

I dare say I’ve never been as excited to wake up to the news of an AMI day, knowing I’d have a good reason to use the new tool. To answer your question in advance, what I’m doing is nothing that can’t be done manually or as a routine operation in a learning management system (LMS). That said, I’m not interested in doing it manually, and I’m more interested in running #STADigitalMedia on a project management platform than on an LMS.

Coding this relatively simple project felt like an interesting case study for using AI in learning. I had to know a lot to get started and make it this far, but there’s still a lot I don’t know. It wouldn’t have worked without an actual mentor, but our time together was small compared to the project’s total. Finally, I think I’ll learn a lot as I continue to work on this because I can see the code, and I know (generally speaking) what’s going on with everything.

This is just the tip of the iceberg. I have a lot of other ideas of what to do with this, and it’s fun to have enough free time to explore side projects again.

Leave your comment