Derfor skroter norske universiteter Java på grunnkurs

Har valgt et mer egnet språk. - Doblet min utviklingshastighet, forteller foreleser Geir Kjetil Sandve.

Faglærer Geir Kjetil Sandve på Universitetet i Oslo, og faglærer Dag Haugland ved Universitet i Bergen har begge byttet til Python for undervisning på grunnkurs i programmering. 📸: Privat
Faglærer Geir Kjetil Sandve på Universitetet i Oslo, og faglærer Dag Haugland ved Universitet i Bergen har begge byttet til Python for undervisning på grunnkurs i programmering. 📸: PrivatVis mer

Omtrent uansett hvilket universitet du velger å studere på i Norge i dag, finnes det kurs i programmering på kurslisten. Programmering inngår i utallige studieretninger fra informatikk til bioteknologi, og alle må begynne på starten, grunnkurset.

I årevis har Java har vært det foretrukne språket for å lære unge kodere de elementære begrepene i programmeringsspråk, og samtidig formet en hel generasjon kodere til å foretrekke Java i arbeidslivet. Men er Java fortsatt best til grunnutdanning?

Nei, sier flere norske universiteter, som nå har valgt seg et nytt språk til sine grunnkurs: Python. kode24 har snakket med faglærere på Universitetet i Oslo og Universitetet i Bergen, som begge tilbyr informatikk-studieprogram, om hvorfor Java er ut.

For mye syntaktisk støy

Geir Kjetil Sandve er faglærer for grunnkurset IN1000 på Universitetet i Oslo, emnet som har erstattet tidligere INF1000 med Java. Sandve forteller at han underviste i Java i en årrekke på UiO, før han gikk over til Python.

- Da jeg brukte Java som språk, hadde jeg i mange tilfeller en opplevelse av at språket arbeidet mot meg, i forhold til det jeg ønsket at studentene skulle fokusere på, og de signalene jeg sendte, forteller han.

Sandve forteller at Java presenterte studentene for altfor mye syntaktisk støy, slik som "public static void main", og exceptions lenge før de elevene skulle lære hva det var.

- Vi måtte fortelle studentene at de bare skulle ignorere en del av denne syntaksen (med Java). Vi ønsket jo ikke at de skulle grave seg ned i hva public og static var i sin første time med programmering, forklarer Sandve.

Siri Annethe Moe Jensen er faglærer på grunnkurset IN1000 sammen med Geir Kjetil Sandve. 📸: Privat
Siri Annethe Moe Jensen er faglærer på grunnkurset IN1000 sammen med Geir Kjetil Sandve. 📸: Privat Vis mer

- Det ble vanskelig å unngå "magiske trylleformularer" i Java for nybegynnere, forteller Siri Annethe Moe Jensen, som også er faglærer på IN1000.

Hun forteller at en viktig fordel med Python er at man får en enklere og mer direkte inngang til programmering, og man kan lage eksempler og oppgaver der alt kan forklares fra dag en.

Ikke skrotet Java helt

Men selv om Java er borte fra grunnkursene, lærer elevene Java allerede fra andre semester på UiO, forteller Moe Jensen.

- Vår filosofi er at vi primært underviser i programmering - ikke i et bestemt språk. [...] Kun Python ville gi begrenset erfaring med muligheter, utfordringer og bruk av språk som er utviklet og mye brukt i produksjon, forteller hun.

Raskere utvikling

Faglærer ved UiO, Sandve, forteller at Python blir mye brukt til forskning og høyere undervisning på Universitetet i Oslo. Det er også blitt vanlig å bruke Python i masteroppgaver, PhD-prosjekter og større forskningsprosjekter. Sandve forteller at han selv er med å utvikle et avansert programvaresystem for gen-analyse på rundt 200.000 linjer kode i Python.

- Vår hovedgrunn for å velge Python er utviklingshastighet. Innen forskning går utviklingen svært raskt, og vi må derfor utvikle raskt for å henge med. Sammenlignet med private bedrifter mener jeg vi også typisk har færre utviklere i forhold til kompleksiteten i det vi utvikler.

Sandve forteller at han selv har utviklet Java og C++ i mer enn et tiår, men likevel opplevde dobling av utviklingshastighet da han endre til Python.

- En liten bonus er at man slipper kompileringsfase, forteller han.

Studenter gjør det bedre

Men hvordan går det med studentene som nå må lære Python istedenfor Java? Ganske bra, skal vi tro faglærerne.

- Vi innførte Python så seint som høsten 2018, så eg har ikkje statistikk for kor godt studentane klarer seg. Mitt inntrykk etter å ha undervist det eit semester, er at dei kjem raskare i gang med programmering enn dei gjorde då vi brukte Java. Men som sagt, eg kan ikkje understøtta dette med tal eller fakta, forteller faglærer på Universitetet i Bergen Dag Haugland.

På Universitet i Oslo forteller Geir Kjetil Sandvne at overgangen har vært overraskende smertefri. Resultatene de siste årene har vært svært bra, med relativt begrenset strykprosent.

- Vår opplevelse er at studentene gjør det bedre, noe som også avspeiles i karakterer og gjennomføringsgrad. De fleste er også positive til Python som undervisningsspråk, forteller UiO-faglærer Siri Annethe Moe Jensen.

Både Jensen og Sandve påpeker at UiO har økt opptakskrav og gjort andre endringer i kurset enn bare språket, som også kan forklare den høye gjennomføringsgraden.

Hvorfor akkurat Python?

Men Python er ikke det eneste høynivåspråket med relativt enkel inngang. Vi var nysgjerrig på hvorfor Universitetene ikke har vurdert andre språk, som for eksempel JavaScript på grunnkurs?

- Institutt for Informatikk har begrenset kurstilbud i front-end-programmering, forteller Moe Jensen.

- Med grunnlag i Python og Java mener vi det er et lite skritt å lære for eksempel JavaScript.

- Hovudfokus i grunnkurset er å læra seg grunnleggjande prinsipp for programmering, heller enn design av f.eks. websider, sier Universitetet i Bergen-faglærer Dag Haugland.