Bli trygg i programmering på VGS

Bilde av Karina Velten og Morten Munthe.

Hvordan skal elevene nå kompetansemålene knyttet til programmering i matematikk? Hvordan kan vi forberede dem til å mestre eksamensoppgavene i programmering?

Programmering kom inn i læreplanen i matematikk i 2020, men det fulgte verken med en plan for kompetanseløft for lærere eller en idé om hvordan eksamen kom til å se ut.

Matematikklærer Morten Munthe forsker på matematikkdidaktikk med bruk av programmering, og i 2023 mottok han Holmboeprisen. Sammen med pedagogisk rådgiver fra Inkrement, Karina Velten, har han som mål å gjøre deg tryggere i programmering på VGS.

Matematikklærerne tar fatt på tre grep som kan bidra til å gjøre deg tryggere i programmering: Hvordan forholde deg til læreplanen og eksamen, hvordan lære deg selv programmering, og hvordan undervise i programmering knyttet til matematikk.

Hvordan skal du forholde deg til læreplanen og eksamen?

– Situasjonen er nå slik at mange lærere lurer på hvordan de skal hjelpe elevene med å få den kompetansen de trenger for å mestre programmeringsoppgavene på eksamen, sier Morten. – Jeg forstår godt at det kan være vanskelig å vite eksakt hva forventningene fra læreplanen er, men ser vi på de eksamenene som har vært, kan vi få et tydeligere bilde.

Oppgaven er hentet fra eksamen i 1P våren 2023.

På de første eksamensoppgavene i fagene 1P og 1T var det en formulering som gikk igjen, nemlig «lag et program». Elevene fikk også et program de kunne se på. I de første eksamensoppgavene i programmering fikk elevene dermed god støtte.

I eksamensveiledningen for fellesfagene i matematikken (2024) står det at elevene ikke skal «lage et program» lengre i P-fagene, men at de kan bruke det som metode hvis de ønsker. Det står videre at «I matematikk 1T er programmering beskrevet eksplisitt». Det betyr at de kan få oppgaver der de skal lage et program. Denne presiseringen skiller 1T fra P-fagene.

PRIMM-modellen

– Det ble brått vanskeligere høsten 2023, sier Morten.

Elevene skulle fortsatt lage et program, men de fikk ikke noen retningslinjer eller et bilde å gå etter. I tillegg stod det en ekstra formulering: «bruk programmering til å lage et program». Morten forklarer progresjonen med PRIMM-modellen.

– Modellen er en arbeidsmetodikk lærere kan bruke når de skal sette seg inn i programmering. Den består av de fem komponentene Predict, Run, Investigate, Modify og Make. Modellen beskriver progresjonen i å lære seg programmering. Den kan derfor brukes til å legge opp undervisningen, men også for å forklare den økte kompleksiteten i eksamensoppgavene, forklarer Morten.

– De første eksamensoppgavene gikk ut på å kunne forutsi hva en kode gjør (Predict), teste koden (Run) og undersøke endringer (Investigate). Nå ser vi at vi har kommet på de nederste trinnene i PRIMM-modellen, nemlig endre (Modify), og ikke minst lage (Make), fortsetter han. Heldigvis har de gått tilbake på dette i P-fagene, men i 1T er det fortsatt slik, sier Morten.

Mortens tips for å forberede elevene til eksamen er å oppfordre elevene til lagre gode programmer på harddisken, slik at de kan bruke dem som eksempler når de kommer til del 2 av eksamen. – Få elevene dine til å løse de tidligere eksamensoppgavene i et programmeringsverktøy. Gjør dem oppmerksomme på at de kan få lignende oppgaver på sin eksamen.

Slik kan du lære deg selv programmering

Karina er selv matematikklærer, men har ingen erfaring med programmering. Hun lurer derfor på hvordan hun skal tilegne seg en minimumskompetanse i programmering. Hva er det egentlig som trengs for å kunne undervise det som læreplanen og eksamen krever?

– Mitt råd er å starte med å få oversikt over grunnsteinene i programmeringsspråket, sier Morten. – Du må være trygg på verktøyet før du blir trygg nok til å ta det med inn i klasserommet. Men det er også viktig å huske på at vi kan undervise i programmering uten å være eksperter på fagfeltet.

«Programmering er som en bratt bakke du skal over»

Morten bruker en bratt bakke som metafor når han forklarer hvordan vi lærer oss programmering. – Til å begynne med må man lære noe man kanskje ikke synes er så veldig spennende, for eksempel variabler og “print”. Så klatrer du videre oppover og lærer betingelser og løkker. Og på et punkt kommer du på toppen av bakken. Da begynner det å bli gøy. Da har du dratt kjelken med deg opp, og kan ake ned, forklarer Morten engasjert.

– Tenk på det som et vippepunkt. Det åpner seg en verktøykasse, og etter hvert innser du at det nesten ikke er noe du ikke kan gjøre med programmering. Men det tar tid å bli komfortabel, og man må være tålmodig, sier Morten.

Videoleksjoner til selvlæring

Karina forteller at hun så videoleksjoner i Campus med innføring i Python.

– Videoleksjonene er egentlig laget for elever. De er korte og informative og har kontrolloppgaver underveis som veileder deg videre. Men jeg synes de også passer utmerket som en innføring til en helt fersk lærer, sier hun.

Karina delte skjermen i to, med Campus på den ene siden og programmeringsverktøyet Thonny på den andre siden. Slik løste hun kontrolloppgavene i videoforelesningene.

Karina forteller også at hun skrev ned alle operatorene og begrepene som var nye for henne. – Det er lurt å notere ned det du synes er vanskelig, for det kommer garantert elevene også til å synes er vanskelig, sier Morten. – Du får en forståelse for utfordringene elevene vil få. Vi skal på en måte lære oss et nytt språk, og den jobben bør vi anerkjenne.

Hvordan skal du lære bort programmering til dine elever?

Da programmering ble en del av matematikken, tenkte Karina at hun kunne lære bort programmering slik som hun lærer bort matematikk. Morten sier at det er en forskjell mellom matematikkdidaktikk og programmeringsdidaktikk.

– Som lærere må vi innta en litt annen rolle. Når vi forstår forskjellen, blir det enklere for oss å formidle programmering og algoritmisk tenkning, sier han.

Den algoritmiske tenkeren

I programmeringsdidaktikken er algoritmisk tenkning sentralt. Det handler om å utvikle evne til problemløsning på en systematisk måte, å kunne gjøre feil og analysere feilene.

Illustrasjonen viser viktige begreper og arbeidsmåter den algoritmiske tenkeren bruker for å løse problemer. Illustrasjonen er et fint utgangspunkt i dialogen med elevene om algoritmisk tenkning. Figuren er hentet fra Udir.

Karinas elever fikk en «aha-opplevelse» da de erfarte at det å prøve seg frem og «å fikle» er en stor del av den algoritmiske tenkningen. – Den største forskjellen mellom programmeringsdidaktikk og matematikkdidaktikk er prosessen og feilsøkingen, forklarer Morten.

– Elevene er vant til at de må skrive nøyaktig i GeoGebra og Excel. I programmering er det derimot ofte lengre kode og flere feil som oppstår, fortsetter han. – De må vite hvordan de skal tolke feilmeldinger og koden i seg selv. Det er mer fikling med programmeringen enn det vanligvis er i matematikken.

Morten understreker også at man må formidle til elevene at å lære programmering krever tålmodighet.

«Det er matematikk elevene skal lære»

– En annen ting som er viktig å huske på, er at det tross alt er matematikk vi skal lære elevene, og programmering er et verktøy. Vi må bruke programmering på en slik måte at vi lærer mer matematikk, sier Morten.

– Min tommelfingerregel er at jeg lærer bort matematikken før jeg lærer bort programmeringen. Sistnevnte er en form for dybdelæring. For eksempel ville jeg først lært elevene hva figurtall er, og hvordan vi ser mønstre og finner rekursiv og eksplisitt formel, for så å lage et program som regner ut «n» antall i en lang rekke.

Han anbefaler også å snakke med elevene om effektiviteten som programmering kan bidra til. – Elevene trenger å se nytten av det de skal lære. La dem gjerne ha med seg alle programmene inn i vurderingssituasjonene, sier Morten.

«Det er lys i enden av tunnelen»

Blir det en for stor oppgave for lærere å sette seg inn i eksamen, lære seg selv programmering, og så lære bort programmering i matematikk?

Ifølge Morten og Karina, med sine helt ulike utgangspunkt når det gjelder programmering, er det mulig for alle som ønsker å lære seg det.

– Nå har vi sett noen eksamensoppgaver i programmering som gir oss et bilde av hva som kan komme, sier Morten. Hans beste tips er å la elevene lagre nyttige programmer. For å lære seg selv programmering anbefaler Karina å se videoleksjoner i Campus, notere ned nye begreper, og i tillegg gjøre oppgaver i et programmeringsverktøy.

Karina har flere konkrete tips til verktøy du kan bruke, som letter undervisningsarbeidet ditt i programmering. Her kan du lese mer.

Ønsker du å lese mer om PRIMM-modellen? Se Matematikksenterets presentasjon av modellen her.

Prøv det digitale læreverket Campus gratis i 30 dager

Du kan prøve Campus helt gratis og uforpliktende med dine elever. Bare logg inn med din feidebruker og opprett ett eller flere kurs. Lurer du på noe? Kontakt oss gjerne på campus@inkrement.no.