Plan for matematisk kompetanse i Færder kommune 2024–2030

6 Programmering

6.1 Hva er programmering?

Programmering har fått plass i LK20, og det er ikke bare fordi barn og unge skal lære seg «kodespråk» og kunne styre maskiner. Overføringsverdien av å ha programmering i læreplanen vil blant annet være at barn og unge blir problemløsere med evnen til å stå i et problem over tid. Programmering kan også gi rom for kreative måter å løse problemer på og kan stimulere til skaperglede, nysgjerrighet, selvtillit og vilje til å prøve ut ideer og løse oppgaver. (STATPED
Programmering er enkelt forklart å gi en datamaskin beskjeder om hva den skal gjøre ved hjelp av helt spesifikke instruksjoner. Kunnskap om programmering og bruk av digitale verktøy vil trolig spille en viktig rolle i morgendagens arbeidsmarked, og innføringen av dette i skolen er en anerkjennelse av dette.

Matematikkfaget er et av de førende fagene i programmering og er derfor et område det er naturlig å ta med i denne planen. Hva menes med programmering? Programmering er rett og slett å skrive programmer. Det er trinnvise instruksjoner gitt til datamaskinen. Et program er en samling med instruksjoner, ofte kalt statements, til en datamaskin eller en robot. Slike programmer kan gjøre mye forskjellig. Det kan for eksempel være spill, programmer som gjør matematiske beregninger eller programmer som lagrer informasjon om noe. Man kan også skrive programmer som innhenter og behandler informasjon fra gitte kilder, noe som gjør at programmering er et viktig verktøy i statistikk og dataanalyse.

Når programmering skal inn i opplæringen vil det være via lek og kreative metoder i barnehagen og på SFO, via bruk av konkreter. På skolen vil det først også bli introdusert som fysisk og praktisk arbeid. Dette kan overføres til digitalt arbeid på læringsbrettet via det visuelle programmeringsspråket Scratch og videre bli undervist i høynivåspråk som Python og Java.

To barn som ser på et nettbrett - Klikk for stort bilde

6.2 Hva kan programmering brukes til?

Som nevnt kan programmering brukes til veldig mye forskjellig. Det er bare å slå på læringsbrettet eller datamaskinen for å se eksempler på hva programmering kan brukes til. Alle apper, spill, bilde- og tekstredigeringsverktøy du har brukt er eksempler på programmer. Slike programmer er gjerne veldig store og skrevet over flere år av mange drevne programmerere. Programmering kan også brukes på mindre skala for å løse matematiske problemer, simulere situasjoner man ønsker å finne ut mer om eller lagre og behandle informasjon på hensiktsmessig måte.

Programmering i barnehagen

Programmering inviterer til samarbeid og problemløsning og kan være en engasjerende måte å bruke digitale verktøy på i barnehagen. I rammeplanens kapittel om digital praksis blir det pekt på at digitale verktøy er en naturlig del av et rikt og allsidig læringsmiljø i barnehagen. Når barna programmerer må de forklare og argumentere, utforske ulike fremgangsmåter, stå i et problem over tid, være kreativt, skape, og forbedre. Programmering vil derfor hjelpe barna å utvikle ferdigheter som er gunstige i mange sammenhenger. På lang sikt vil barna trenge å forstå hvordan digitale verktøy fungerer for å kunne være demokratiske deltakere i et høyteknologisk samfunn. Det finnes derfor mange gode grunner for å drive med programmering, selv for de minste. (statped.no)

Programmering i skolen

Programmering i skolen er en del av matematikkfaget, men også kunst og håndverk og musikk har programmering som en del av sine kompetansemål for å skape interaktivitet og visuelle utrykk (LK20 s 58). Programmering er ikke en undergren av matematikk. Snarere er programmering en del av en helt egen fagdisiplin som ofte kalles informatikk. Programmering er innført i matematikkfagene fordi programmering brukes veldig mye i matematiske fag i dag. Programmering gjør det mulig for matematikere å gjennomføre store beregninger veldig fort, og de trenger derfor kunnskap om hvordan man kan skrive programmer for å anvende dette på en hensiktsmessig måte i fagfeltet sitt. Grunnleggende forståelse om programmering vil være viktig selv om vi nå ser at mange av de enklere programmeringsjobbene blir overlatt til Kunstig Intelligens.

6.3 Algoritme og algoritmisk tenkning

Utdanningsdirektoratet mener også at et viktig fellestrekk mellom matematikk og programmering er algoritmisk tenkning. En algoritme er en oppskrift på å løse et problem, og algoritmisk tenkning handler altså om å utvikle metoder for å løse problemer. Utdanningsdirektoratet legger vekt på at dette kommer til å bli en mer sentral del av matematikkfaget i fremtiden. De mener at ved å se programmering og matematikk i forening vil barn og unge utvikle sine evner til slik algoritmisk tenkning og problemløsing.

Gutt som jobber på en laptop. Foto. - Klikk for stort bilde

I programmering møter du kanskje flere ukjente begreper. De kan virke uhåndterlige når du møter dem for første gang, men har viktige funksjoner når du programmerer. Et av disse programmeringsbegrepene er «algoritme». En algoritme er enkelt forklart, en oppskrift. Det er en steg-for-steg-plan for å få noe gjort. Hvis algoritmen skal utføres av en datamaskin vil den at du skal skrive stegene med kommandoer som datamaskinen forstår. Dette kaller vi et programmeringsspråk. Når du er i utlandet og snakker engelsk kan det hende at du ikke er helt nøyaktige med grammatikk eller ordvalg, men likevel forstår andre hva du mener. Slik er det ikke for en datamaskin. Den må få beskrevet alle stegene i riktig rekkefølge. Oppskriften, eller algoritmen, må være helt nøyaktig.   

Men det er ikke bare datamaskiner som utfører algoritmer. Vi mennesker utfører ulike algoritmer hver dag. Det å følge stegene i en strikkeoppskrift er et eksempel på en algoritmisk handling som mennesker utfører. Oppskriften, algoritmen, må være riktig for at genseren skal bli slik du har tenkt. Det samme gjelder baking. Det får konsekvenser for bakeresultatet om du ikke følger oppskriften. Opplever du feil i oppskriften må du som strikker, eller baker, gå tilbake i oppskriften å feilsøke.

I prosessen med å bake boller, eller strikke en genser, oppdager du gjerne feil og retter dem opp. Du må løse mindre steg for å komme videre, og fortsette og holde ut til du har ønsket resultat. Derfor er du på mange måter en algoritmisk tenker. For å utvikle algoritmisk tankegang trenger du dermed ikke å programmere, men programmeringen kan fungere som en plattform til å utvikle algoritmisk tankegang (Statped, 2021).  

I skolesammenheng egner programmering seg godt som en metode for å utvikle algoritmisk tankegang, men barn og unge skal også jobbe med problemløsningsmetoden når de løser oppgaver i for eksempel matematikk.

Kompetansemålene i matematikk er bygget opp rundt fagets seks kjerneelementer, der utforsking og problemløsning er sentralt. Algoritmisk tenkning er her tydeliggjort som en av problemløsningsmetodene som er gunstige å bruke. Det er fagene naturfag og matematikk som har et særlig ansvar for å jobbe med begreper innen programmering, men programmering skal også brukes i andre fag. 

Programmering inviterer til samarbeid og problemløsning og kan være en engasjerende måte å bruke digitale verktøy på i barnehagen. I rammeplanens kapittel om digital praksis blir det pekt på at digitale verktøy er en naturlig del av et rikt og allsidig læringsmiljø i barnehagen. Når barna programmerer må de forklare og argumentere, utforske ulike fremgangsmåter, stå i et problem over tid, være kreativt, skape, og forbedre. Programmering vil derfor hjelpe barna å utvikle ferdigheter som er gunstige i mange sammenhenger. På lang sikt vil barna trenge å forstå hvordan digitale verktøy fungerer for å kunne være demokratiske deltakere i et høyteknologisk samfunn. Det finnes derfor mange gode grunner for å drive med programmering, selv for de minste (les mer her).

Algoritmisk tenkning som problemløsningsmetode

Nøkkelbegrepene og arbeidsmåtene som inngår i algoritmisk tenkning kan være fine å se på når du jobber med problemløsende oppgaver i klasserommet. Dette er også betydningsfulle punkter når du programmerer. Derfor bruker vi gjerne programmering som en plattform til å utvikle algoritmisk tankegang.  

Nøkkelbegrepene

  1. Logikk - analysere og forutse
  2. Algoritmer - Regler og steg-for-steg
  3. Dekomposisjon - Bryte ned mindre deler
  4. Mønstre - finne og bruke likheter
  5. Abstraksjon -Fjerne unødvendige detaljer
  6. Evaluering - Gjøre vurderinger

Arbeidsmåtene

  • Fikle - Utforske og eksperimentere
  • Skape - Designe og lage
  • Feilsøke - Oppdage og rette feil
  • Holde ut - Fortsette og prøve igjen
  • Samarbeide - dele og jobbe sammen
Bilde av modellen Den algoritmiske tenkeren. - Klikk for stort bildeModell: udir.no .