Helping students learn to code in the age of AI: Meet Sarah Clinch

Sarah Clinch has been rethinking how first-year programming is assessed in response to the rise of AI tools and the changing ways students learn. Recently nominated for a Distinguished Achievement Award, we spoke to Sarah about designing fairer assessments, supporting students to succeed and preparing future computer scientists to use AI effectively and responsibly.
You introduced an invigilated programming assessment in response to the rise of AI tools. What first prompted you to rethink how programming is assessed?
Programming is a really important skill for our first-year computer science students and, for a long time, we have used different types of coursework to assess whether students can build non-trivial programmes. Over time though, it was becoming harder to be confident that submitted work reflected each student’s own understanding, particularly with the rise of AI tools. We wanted a more robust way of assessing whether students had the programming foundations they needed.
Programming does not naturally fit a traditional exam format. Writing code on paper is unrealistic and stressful, so we wanted students to code on a computer in a way that reflected real practice while still working as an exam for a large first-year cohort.
How did you design an assessment that was fair and supportive for students?
We thought carefully about the purpose of the assessment. It was not about catching students out, but checking they had the core programming foundations needed for second year. That meant stripping it back so it was less complex than coursework and focused on essential skills. We also spoke to students about what they felt they should know and what support they needed which helped shape the final approach.
The exam was designed in two parts. We released the first part ahead of time so students could get familiar with it, try coding it outside the exam setting and build confidence. That section was worth two-thirds of the marks so students could go into the exam knowing that if they could reproduce what they had practiced, they were in a good position to pass. The final section then gave students the opportunity to push themselves a bit further.
Assessment in the age of AI is changing and we have to think carefully about what we are assessing and why.
How did you make the assessment reflect real-world programming practice?
We wanted the assessment environment to feel as realistic as possible. Students had access to documentation during the exam because that is how programmers work in practice. They do not memorise every detail, they know how to find and apply information. We also gave students access to the marking tool during the exam so they could upload their work, see the mark they were getting and continue improving it. That reflects the iterative nature of programming where you test, refine and build on what you have done.
What did the assessment reveal about how students were learning?
The assessment showed that some students were not engaging with the materials as intended. A few had used AI to complete practical exercises but passively, so they had not developed the programming skills they needed. It also made us think more carefully about how teaching materials are used. It is not enough to produce lots of resources – we need to signpost how students should engage with them. AI is now a default tool for many students so we need to be clearer about when it can be helpful, how to use it well and when it might get in the way of learning.
Your work has helped shape assessment practice beyond your own unit. What has that been like?
It has been really positive. I think this is a direction many of us know we need to move in. Assessment in the age of AI is changing and we have to think carefully about what we are assessing and why. It was a lot more work than I expected. You start with what feels like a good idea and then realise how many practical details need to be worked through. But throughout the process I felt it was the right thing to do. Somebody had to try it and first year is a good place to start because it helps set students up for the years that follow. It has been really nice to see the approach being picked up in other parts of the department.
Programming does not naturally fit a traditional exam format. Writing code on paper is unrealistic and stressful.
How do you think programming education needs to evolve as AI tools become more common?
We need to teach students how to use large language models effectively to code because these tools are already being used in industry. We cannot simply say that students must always write every line of code themselves because that is not necessarily how all programming happens in practice anymore. But using AI well is a skill. It is partly about knowing how to prompt effectively but it is also about knowing what to do with the response. Students need to understand when AI might be useful, when it might be risky and how to evaluate what it produces. For example, you might take a very different approach when writing code with security implications compared with writing a small piece of boilerplate code. Our teaching has to acknowledge that these tools exist, both in terms of assessment and in terms of the skills we want students to develop.
What do you hope students take away from this approach?
I hope students understand that the aim of assessment is not to catch them out. It is about making sure they have the knowledge and skills they need to progress and succeed. If a student is not ready for second year programming then passing them on without those foundations does not help. But equally, they do not need to know every tiny detail of a course unit to be successful. The important thing is that they develop the core skills and confidence to keep learning.
Finally, how long have you worked at the University?
I have been at the University since 2016 and this was my first academic post. Before coming to Manchester, I was at Lancaster University where I completed my undergraduate degree, master’s, PhD and postdoctoral work.