"Syntaks-ferdighetene har blitt betraktelig dårligere" skrev eksamensretter Vemund M. Santi på kode24 nylig.
Etter å ha rettet rundt 1.300 eksamensoppgaver i år, mente han å se at studentene hadde blitt dårligere til å skrive korrekt syntaks – og det er AI-verktøy som Copilot sin skyld, mente han.
"Innrykk, fnutter for strenger, parenteser for funksjonskall og klammer for lister var ofte fraværende" skrev Santi, og fortalte også om opplevelsene på kode24-timen.
Mener ChatGPT har gjort studenter dårligere
Olaf Hallan Graven er professor i informatikk på Universitetet i Sørøst-Norge (USN), og mener det så langt ikke har vært et problem at universitetets studenter har blitt dårligere i syntaks.
– Vi bruker en del tid på å forklare at verktøy som Copilot er fantastiske, men bare etter at du vet hva du gjør, og kan basis. Det er viktig å kunne basis, fordi det gjør en til en mer effektiv utvikler, sier Graven til kode24.
Gjør hverdagen oppstykket
Graven understreker viktigheten av å lære seg det grunnleggende skikkelig før du bruker verktøy som Copilot til å autofullføre kode.
– Det å sitte i en jobb der du stadig må slå opp ganske enkel og mye brukt syntaks vil gjøre hverdagen oppstykket, og lite produktiv.
Han sier at alle utviklere til en viss grad vil ha behov for å slå opp syntaks på ting de bruker sjeldent, men at det å hele tiden være usikker på hvordan koden skal skrives ikke vil gi noen god flyt i utviklingen.
– Verktøy slik som Copilot vil hjelpe med mye, men det er alltid endringer og oppdateringer som trengs å gjøre i generert kode. Derfor først basis, formaner Graven.
Lærer man seg ikke det grunnleggende før man bruker Copilot, vil det gi utslag på eksamen, mener han.
«Det vil gjøre hverdagen oppstykket, og lite produktiv.»
– En del av det å forstå hva det innebærer å programmere
Siri Annethe Moe Jensen er universitetslektor og foreleser i programmering ved Institutt for Informatikk ved UiO, og er enig med Graven.
– For en noe erfaren programmerer trenger det ikke være noe problem å bruke verktøy som autofullfører kode. Men for ferske programmerere mener vi det å forholde seg til programmeringsspråkets strenge krav til syntaks er en del av det å faktisk forstå hva det innebærer å programmere, sier Moe Jensen til kode24.
Dette mener hun handler om både å forstå behovet for presisjon og å lære hvordan kode utføres helt nøyaktig. Og dette blir kanskje en enda viktigere basiskunnskap å ha i bunnen når vi blir mer og mer vant til å bruke søkemotorer eller språkmodeller som overser feil og gjetter hva du faktisk mener.
– Å programmere bør innebære at du har en klar ide om nøyaktig hva du ønsker å uttrykke – og klarer å gjøre dette presist. Dette tenker vi er naturlig å erfare og trene på fra start, i beste fall vil du samtidig få en dypere forståelse for et språks oppbygging og logiske sammenhenger, sier Moe Jensen.
Graven hos USN sier det å være en effektiv programmerer avhenger av å ha en del kunnskap, og at det er viktig å forstå hva som faktisk skjer.
– Dette gir seg utslag i slik som formaningen om å kunne syntaks før man bruker verktøy som Copilot, men også i enklere ting slik som ved programmering i C++. Der er bruken av auto som type veldig utbredt, men studentene oppfordres også her til å skrive ut hvilken type de faktisk mener, og ikke bare være avhengig av auto overalt, sier Graven.
– Copilot gjør usikker kode enda mer usikker!
Flere "svært mangelfulle" besvarelser
Moe Jensen sier de ikke tester studentenes evne til å skrive korrekt syntaks, men at studentene får trekk ved gjennomgående feil. Slike feil viser ofte manglende forståelse for semantikk, det vil si hvordan koden utføres.
– Jeg har et subjektivt inntrykk av at andelen studenter som leverer svært mangelfulle besvarelser har økt de senere årene, noe som støttes av eksamensstatistikken.
Hun mener imidlertid det blir for enkelt å skylde på kunstig intelligens, siden dette ikke stemmer tidsmessig.
– Så kanskje er det mer et spørsmål om AI forsterker en utvikling som allerede var i gang – det kan for eksempel tenkes at en voksende gruppe studenter rett og slett bruker for lite tid på å skrive og ferdigstille programmer selvstendig.
«Andelen studenter som leverer svært mangelfulle besvarelser har økt de senere årene.»
Anbefaler å skru av autofullfør
Graven på USN tror ikke trenden med å bruke Copilot og andre AI-verktøy vil snu, men mener det er viktig å gjøre studentene oppmerksomme på hva som skal til for å kunne basis programmering.
Men så er det også viktig at man faktisk lærer seg verktøy som Copilot for å kunne bli enda mer effektive programmerere.
– Som en del av det å ta en utdanning i programvareutvikling ser vi det som viktig at de både kan basis, men vi er samtidig påpasselige at de kan effektiv bruk av verktøy for å være effektive i utvikling av programvare.
Også Moe Jensen på UiO anbefaler studentene i begynneremnet å skru av autofullfør og annen hjelp – eller forstyrrelser – i IDE-et. Og så bør man jobbe mest mulig selvstendig med oppgaveløsning og programmering.
– Løs gjerne oppgaver og diskuter sammen med andre, men pass på at du også gjør en del på egen hånd – uten løsningsforslag eller (uhensiktsmessig) hjelp fra kompiser, AI eller hjelpelærere, sier Moe Jensen.
Hun mener slik selvstendig jobbing gir deg et mer realistisk bilde av hvor en står, og at du lærer mye mer av å måtte jobbe deg gjennom de vanskelighetene du støtter på.
Du må ikke huske all syntaks
– Gjør det å ikke huske syntaksen deg til en dårlig programmerer?
– Du kan være en svært god programmerer uten å huske alle detaljer i syntaksen for et språk du for eksempel ikke har brukt på en stund, og du vil ha lett tilgang til verktøy som hjelper deg når det behøves, sier Moe Jensen.
Hun mener detaljer i syntaks ikke er viktig i seg selv, men som ett element av flere når det gjelder å opparbeide seg den grunnleggende forståelsen for hva programmering handler om – spesielt tidlig i utdanningen.
Graven understreker at hva som er viktig når du utvikler programvare, avhenger av hvilken type utviklingsjobb du gjør. Men for personer som er ansatt for å utvikle, videreutvikle eller vedlikeholde kode så vil det å huske syntaks være viktig.
– Samtidig er det viktig å kunne verktøy slik som Copilot for å være effektiv, spesielt ved utvikling av ny kode. Ved vedlikehold eller videreutvikling av kode vil automatiske verktøy ofte være av mindre hjelp, sier Graven.