AI

For this week, we are going to be experimenting with different ways of using modern AI tools like ChatGPT, Claude, and Gemini to do programming. There are LOTS of ways to program using AI. Some of them are easy; some of them are hard. Some of them save you a lot of time. Some of them will get you fired. I want us to think through these different ways, and try to figure out ways to use AI tools to help us get more and better programs written, without getting fired.

First, let’s read a bit about the nuts-and-bolts: how does a person use AI to do programming?

Next, I’d like you to read a couple of articles that will help us think about how to use AI. The first of them is a conversation that is specifically about the use of AI in programming, and talks about how to think about what AI / computers are good at for programming, and what humans are good at for programming. It describes using AI as a pair programmer (much like we have been doing in class).

The second is more abstract, and it is written by a science fiction author. It describes a way of thinking about the roles of AI, which he calls “Centaur” and “Reverse Centaur”. He strongly advocates using AI in a way that prevents you from being a “reverse centaur” – that is, don’t use AI in such a way that AI does all the thinking, but you take all the blame for its mistakes. Instead, use AI to augment and help your own thinking. This will be a central principle as we use AI for programming – YOU need to understand what the AI is doing, and also how it might help you, in order to program effectively using it. If you don’t, you almost certainly will end up being blamed for its mistakes.

Another reading (from the Atlantic) is about how programmers are thinking about coding. It also discusses how he uses AI to help build small one-off programs (like one to help him remember which restaurants he likes), and how the process of programming and finding bugs changes in feel when using AI. “But I found AI to be most liberating when I treated it like a partner offering a feedback loop between my intention and the machine’s implementation, rather than a silicon priest delivering answers or a minion carrying out my bidding.”


This site uses Just the Docs, a documentation theme for Jekyll.