Uncommon Courses is an occasional series from The Conversation U.S. highlighting unconventional approaches to teaching.
Title of course:
“Learn AI-Assisted Python Programming”
What prompted the idea for the course?
Generative AI is really good at computer programming – to the point where the way we teach and assess students who are learning to program must change.
We used to give students dozens or hundreds of small targeted programming tasks, drilling each aspect of the syntax – the words and symbols – of programming. That worked well as a starting point, except now generative AI tools can solve all of these problems. Educators can try to ban these tools (good luck with that!), or embrace them. We chose to embrace them in our new course, where students learn to program – supported by a generative AI assistant.
What does the course explore?
The course re-imagines what learning to program means now that generative AI is available to handle more of the low-level syntax issues that have historically slowed down and frustrated students. The more students struggle with finicky syntax details, the less time and energy they have to accomplish their programming-related goals like starting a business, writing apps for social good, or contributing to projects that are meaningful to them.
Generative AI clears the decks for us to focus on more valuable, high-level skills that students need to become effective programmers. For example, generative AI struggles to solve large problems; we still need humans to divide those problems into bite-sized chunks – a process known as problem decomposition – each of which AI can solve well. People are still needed to test code to ensure it’s doing what was intended, and to ensure that the code is used to help, not harm, society and its vulnerable groups.
Why is this course relevant now?
Professional programmers in droves have already adopted generative AI tools and are using them to be more efficient in their daily work. If the goal is to prepare students for these jobs, teachers need to train them in how to use these new tools.
Perhaps more importantly, what students can do in introductory courses changes. With a more powerful tool comes an ability to work at higher, more efficient levels. These tools save people time.
What’s a critical lesson from the course?
A critical lesson is that generative AI is impressive, but that it is fallible. You cannot simply ask it for code and assume that the code it gives you is perfect. It may not do the right thing. It may produce errors, or bugs. It may cause security concerns. It may exclude underrepresented groups or discourses. You need to critically examine the code that you get from generative AI.
What materials does the course feature?
The course is built on our new book “Learn AI-Assisted Python Programming.” The book reconceptualizes an introductory programming course in the context of generative AI tools.
The main tool used in the book and in our course is called GitHub Copilot, which is like ChatGPT for programmers. Students use Copilot from day one. They build complete apps: apps to automate tedious, error-prone tasks; computer games; even an app to guess who wrote a novel whose author may be unknown. To ensure that students are still learning fundamentals, the book teaches them how to understand the code that the generative AI is creating.
What will the course prepare students to do?
Some students take an intro programming course to start their computer science major. For those students, we continue to teach evergreen skills like code reading and code testing, but now also introduce the higher-level skill of problem decomposition so students can solve larger tasks than ever before.
The majority of students in the course, though, are studying other disciplines like sociology, psychology, business, engineering and science. The course prepares those students to use generative AI to boost their careers through programming.