Ved siden av min daglige jobb som utvikler tar jeg to ganger i året på meg et lite sideoppdrag: Sensurering av eksamensoppgaver innen programmering.
Dette skjer naturlig nok i starten av sommerferien og rundt juletider, som gjør det til en grei aktivitet å skvise inn mellom slagene. Jeg har holdt på med denne lille side-giggen siden 2021, og har dermed fått vært med på reisen i hvordan eksamensretting har utviklet seg de siste årene.
Min første retting ble gjort lokalt med en selvvalgt IDE, hvor man lastet ned en dump av eksamensoppgavene fra GitLab og fylte inn poengsummer i et regneark. Nå har vi kommet til punktet hvor mye av rettingen skjer direkte i eksamensverktøyet Inspera, samme verktøy som studentene selv skriver og leverer eksamenen med.
Én ting har likevel ikke endret seg: Hvordan studentene skriver og leverer kode under eksamen.
En av eksamenene jeg retter er et introkurs i programmering for førsteår-studenter, hvor man programmerer i Python. Programkoden blir skrevet direkte inn i en tekstboks i Inspera med et minimalt nivå av syntaksutheving og farger som likner Notepad. Jeg skal la det være opp til noen andre å mene noe om dette er en god måte å vise faktiske programmeringsferdigheter på, men det er nå uansett slik det gjøres.
Når man ikke får støtte fra en IDE til å rette opp tastetrykkene sine med autocomplete, blir det ofte en del feil. Slik har det alltid vært, og slik kommer det nok alltid til å være.
Likevel er det en observasjon fra årets studentkull jeg har gjort meg etter å ha rettet forrige runde med eksamener: Syntaks-ferdighetene har blitt betraktelig dårligere.
«Innrykk, fnutter for strenger, parenteser for funksjonskall og klammer for lister var ofte fraværende.»
Lavere nivå i år
Dette gjelder selvfølgelig ikke alle. Og dette er da altså basert på en statistikkmodell med kun ett rapportert datapunkt: Meg. Likevel mener jeg at jeg etter å ha rettet nærmere 1.300 oppgaver i år, og tilsvarende tidligere år, så har jeg grunnlag til å gjøre meg opp en erfaringsbasert mening.
I år var det en større andel studenter som hadde et lavere nivå når det kom til syntaks i Python, sammenliknet med tidligere år. Innrykk, fnutter for strenger, parenteser for funksjonskall og klammer for lister var ofte fraværende, og det var et stykke igjen før koden ville kjørt.
Dette er riktignok ikke noe vi trekker noe særlig for i et introkurs, men det er en observasjon en gjør seg.
Betyr det at årets studenter er dårligere til å programmere enn tidligere kull? Ikke nødvendigvis.
Selv om syntaksen ikke sitter i fingrene betyr ikke det at tankegangen er på bærtur. Ofte hadde studenten tenkt riktig, men ikke klart å uttrykke seg korrekt i programmeringsspråket. Det legges heldigvis mest vekt på tankegangen og intensjonen under sensuren, så studentene klarte seg noenlunde greit i år også.
– Copilot gjør usikker kode enda mer usikker!
ChatGPT og co kan ha skylda
Hva skyldes denne utviklingen?
Min teori er at ChatGPT og andre LLM-er har negativt påvirket mengdetreningen studentene får i å skrive kode. Programmeringsoppgavene i innleveringene kan nå løses med et velskrevet prompt til [sett inn din LLM her], etterfulgt av en Ctrl+C og Ctrl+V.
Kanskje er det ikke like mange som har skrevet ord for ord og knotet seg frem i ukjent syntaks for å til slutt komme frem til noe som kjører på maskinen sin, men heller fått hjelp av Copilot?
På én side er det grunn til å tro at fremtiden vil ha et mindre behov for å kunne skrive haugevis med perfekt-syntaks-kode selv, og at LLM-ene som blir integrert i tastaturene våre vil skrive det meste for oss.
Har det ikke en verdi å kjenne til den tilgjengelige syntaksen i et språk likevel? I de tilfellene du sitter på noe annet enn din sedvanlige laptop og skal skrive en liten kodesnutt for å automatisere noe vil jeg påstå at det absolutt har en verdi. Det gjelder for øvrig i rollen som kvalitetssikrer for LLM-output også, om vi ender opp i den enden av skalaen.
Mener barn ikke lenger trenger å lære koding
En bjørnetjeneste
Gjør dermed ChatGPT studentene en bjørnetjeneste, når de prompter seg gjennom øvingsopplegget?
Ja, mener jeg.
Introfagene er til for å lære studentene å programmere, som både inkluderer å lære seg tankegangen og resonneringsevnene som kreves, men også å bli kjent med et programmeringsspråk å skrive kode i.
Kan man endre på denne trenden?
Neppe. I en travel studiehverdag som har altfor få timer til å gå opp, vil man bruke de hjelpemidlene man har, for å spare tid til andre ting.
Kanskje man heller burde snu helt om på det, og tillatte Copilot i en eller annen form på eksamen?