With semesters starting, there’s another flurry of conversation about how to teach programming when students have access to generative AI tools. Much of it is about assessment, where the size and context of your class makes a big difference (I have options available to me in a 20 student in-person class taught in a room with dedicated computers I have instructor control of that many other people do not). However, there’s also discussion of how to help students use generative AI as an assistant as they learn.
I’ve been thinking a lot about one tool I recently saw promoted that’s being pitched as an “automated teaching assistant” called CodeHelp. The first line of its description for instructors says that it “helps your students without writing code for them” (emphasis theirs) and tailored to your course and your students’ needs. It’s open source and part of an ongoing research project into programming support through generative AI, so I was curious to see how they were constructing a tool to provide instruction rather than code suggestions.
I was very surprised when I started reading the examples provided of tutoring responses. To my eyes, it is absolutely writing code for the student. The first example shown, where the student prompt is a copy of code that doesn’t work along with their error message and a statement of what they want the code to do, results in a response indicating exactly which method in their code is wrong (they’re trying to use a method “remove”), what method they should use instead (a “replace” method), and a sample line of code that uses that method correctly (showing them that they can give an empty string as the second argument to get “replace” to act like “remove”). The illustrative code provided can be copied directly into the student’s program.
One thing this says to me is that instructors can have very different ideas of what appropriate help looks like. It seems to me that this tool is less of a teaching assistant and more of an interactive textbook that students use as they try to solve exercises. For a teaching assistant, I would expect a lot more dialog and interaction. Any one of the facts shared in their example might be fine as part of that interaction eventually, but you’d want to figure out exactly where the student is stuck and get them to try things out or see if they can at least more clearly narrow down what part of their code they aren’t understanding. A multi-paragraph breakdown of everything they’ll need to know to solve the problem strikes me as short-circuiting the problem solving process for the student, unless the intent is that this is being used early in the learning process.
But, I’m also coming at this assuming students have already been in class doing simple coding exercises with me watching and helping them out, and the types of assignments that a TA (or for us a peer tutor) would help with would be homework testing their ability to apply these ideas on their own, after they’ve had opportunities to practice. Maybe these teaching assistants are better thought of as scaling up support during lab-type activities that are meant to provide that initial practice. I could imagine students learning more being given a problem and being asked to work with their “automated teaching assistant” to understand it and code a solution than they would from reading a textbook or watching videos. It then makes me wonder if there’s a point when you’d want to shut access to these assistants off, or shift them to a more conversational style of help.
For my part, I’m thinking of using these examples in my peer tutor training this fall as an example of what I’m hoping they will not be doing, and a discussion prompt for strategies they can use for turning this type of instruction into more of a problem-solving conversation with a student. We often “play act” tutoring scenarios during training and sometimes the students are struggling to both think about what technical information they would want to share AND how to approach working with the student, so giving them a scenario along with the set of content they might eventually want to share could be really helpful in letting them just think about their approach.