Teaching Python Podcast – Episode 130: Coding is Dead? is basically about the impact on teaching Python of LLMs / Generative AI / ChatGPT / Copilot / Gemini (I’ll use ChatGPT for short). The video is a conversation between four people, and, although it includes a lot of great content, it can be a little diffuse. I strongly recommend speeding the video up a lot.
Here are some notes and reflections:
- Programming more accessible?: ChatGPT makes programming more accessible to more people. They might be able to build things by asking repeated questions to the ChatGPT until it seems to work. The example was given of a clever non-programmer who built the website his business needed.
- Programming more economic?: ChatGPT makes programming available to solve problems where it wouldn’t have been economic before. The alternative to ChatGPT code (with human guidance) might be no solution at all in many cases.
- Motivating for young students?: ChatGPT will be very useful teaching Python to kids – they can experience the motivation from making something actually rewarding to make (e.g. a Fortnite tracker) using ChatGPT. You can then teach on top of that e.g. what a file is (so they can actually find the output statistics on the file system)
- Correctness even more of a concern?: The big question we need to move front and centre – “Is it correct?” This is now the big question people need to be able to assess. We need to emphasise it to our students. Sometimes ChatGPT can fix broken code but it doesn’t know what you are actually wanting (or should be wanting) the code to do. See https://xkcd.com/568/ (“You’ll never find a programming language that frees you from the burden of clarifying your ideas” [“But I know what I mean!”])
- Loss of human-readable code?: As with modern HTML, we may be sacrificing the ability for humans to read and write Python in return for letting ChatGPT do most of the work writing the code. And if we are going to have lots of mysterious code, why should it even be Python? Why not binary? [One possibility – code in the wild splits into better-than-ever code (ChatGPT assists good coders with documentation and simple, starter tests) and impenetrable code that is not written for human readers. Perhaps we are about to enter both the best of times and the worst of times**]
- Embrace the change?: Analogy of calculators and mental arithmetic – maybe we need to embrace the change, at least when teaching young people. BTW this doesn’t mean people won’t need to learn how to read Python and understand it – but maybe not everyone will need that. And the others will still learn something practical about making things using code. Our main lesson for the latter might be how to avoid the worst hazards of this approach.
- Allow ChatGPT in interviews?: Job applicants – get them to explain their code carefully. Care less about how they wrote it and more about whether they can understand it, maintain it etc. Insisting on no-ChatGPT interviews etc is like asking people to write sorting algorithms. Misguided and a bad test of candidate ability and value.
- Allow ChatGPT in assessment?: Focus on how people can explain what they did and what they actually achieved using all the available tools.
Of course, this revolution is still playing out (sometimes participants in the conversation learned something important from the others) and we’re just starting to learn how best to relate to it.
And I haven’t answered the question “Is Coding Dead?”. Old-style coding is, but coding itself as a skill and activity will be alive and well. Who would code now without access to Google and Stack Overflow?