I många år har jag varit examinator för en grundkurs i programmering. Ryggraden i kursen är en serie enkla laborationer där studenterna förväntas producera programkod. Uppgifterna kan vara ganska tuffa för nybörjare, men är förstås elementära för den som är erfaren. Det innebär också att svaren på uppgifterna helt eller delvis finns på nätet. Studenterna kan kolla på frågesajten Stack Overflow, de kan googla fram tentasvar från kurser vid andra lärosäten som hjälper dem på vägen och det kan också finnas tidigare års studenter som generöst lagt upp alla svaren någonstans. Allt det här känner jag till och det gör att jag inte är så orolig för ChatGPT.
Jag har förstås testat att skicka mina labbuppgifter till ChatGPT. Eftersom de är ganska enkla kan ChatGPT ge rätt bra svar. Den producerar snabbt programkod, men också förklaringar av hur koden fungerar. Svaren är inte alltid perfekta, men genom att ställa följdfrågor kan jag få ChatGPT att skriva om koden så att den passar uppgiften.
Men det är inte enbart koden i sig som vi examinerar. Studenterna måste alltid redovisa varje uppgift muntligt. Det innebär att de förklarar för en av mina labbassistenter hur de har tänkt, varför koden fungerar och vad den klarar av. Assistenten ställer också kluriga följdfrågor för att kontrollera att studenten har förstått de koncept som är viktiga i just den här uppgiften. Först därefter får studenten lämna in programkoden för granskning. Oavsett om labben blir godkänd eller inte får studenterna återkoppling på vad de kan tänka på till nästa gång. Assistenten finns också med vid varje laborationspass och svarar på frågor under tiden som studenterna arbetar. Eftersom vi har små grupper lär assistenterna känna studenterna rätt bra och kan följa deras lärandeprocess på nära håll.
Kursens målsättning är inte bara att studenterna ska lära sig programmera i största allmänhet. Det kan man göra på många sätt. På nätet finns gott om filmer, kurser och tutorials som lovar att du kan lära dig snabbt och lätt. Men i min kurs – och i de flesta andra kurser som mina kollegor ger – försöker vi också väva in färdigheter och attityder som är viktiga för yrkesverksamma programutvecklare, sådant som kommer göra livet lättare längre fram. Att studenten kan visa upp en kodsnutt, som hen kanske eller kanske inte har producerat helt själv, är alltså inte det viktigaste.
Du kanske inte undervisar i programmering, men här är några generella tips som du kan ta med dig från min kurs:
- Låt studenterna stå för det som de har lämnat in. Sätt inte bara betyg och lägg svaren i byrålådan utan ställ kluriga följdfrågor.
- Låt examinationen vara kontinuerlig. Försök följa studenternas lärandeprocess nära så att du hela tiden har en uppfattning om vad de kan och inte.