Teaching in the Age of AI: Rethinking Assessment in Introductory Computer Science

Teaching in the Age of AI: Rethinking Assessment in Introductory Computer Science
Nadia Najjar
When large language models (LLMs) like ChatGPT first emerged, I was cautiously optimistic about their potential in education.
As someone who teaches introductory computer science, I quickly saw how powerful these tools could be for supporting students. They can offer code examples, help with debugging, or even explaining unfamiliar concepts. But as newer versions of LLMs were released, their ability to generate complete and accurate code solutions presented a real challenge to traditional assessment methods.
In these early programming courses, assignments typically focus on foundational skills: writing loops, using conditionals, working with functions, and manipulating basic data structures. These problems are well-defined and relatively constrained, exactly the kind of tasks LLMs are very good at solving. We could now input a problem from an assignment and receive a working solution in seconds. It didn’t take long for students to realize they could paste an assignment prompt into an AI tool and receive a solution that not only worked, but often matched or exceeded what they could write themselves. This wasn’t just a case of potential plagiarism, it called into question what, exactly, we were assessing. If students could submit AI-generated code that passed all our test cases, did that mean they understood the concepts we were trying to teach?
Inspired by practices from the software development world, these reviews required students to explain their solutions, not just submit them. Instead of relying solely on test case results, we evaluated students based on their ability to step through their code, describe their approach, and articulate the decisions they made along the way.
During code reviews, students meet with a member of the instructional team to discuss their work. We ask open-ended questions: Why did you choose this approach? What would happen if this input were different? Can you explain what this loop is doing? This shifts the focus from whether the code “works” to whether the student understands why it works.
This approach has changed the tone of our courses. It’s more interactive, more reflective, and more focused on learning. Students know that copying an AI solution won’t be enough. They need to engage with it, understand it, and be able to talk about it.