Til hovedinnhold

Programmering

Algoritme og algoritmisk tenkning

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 helt 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 (Sanne et al., 2016; Wing, 2006).  

I skolesammenheng egner programmering seg godt som en metode for å utvikle algoritmisk tankegang, men elevene 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. 

Kjerneelementet problemløsing i læreplanen for matematikk beskriver at problemløsing handler om at elevene utvikler en løsningsmetode på et problem de ikke kjenner fra før (Udir, 2020). Algoritmisk tenkning er her viktig i prosessen med å utvikle strategier og framgangsmåter for å løse problemer. 

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

  • Logikk - analysere og forutse
  • Algoritmer - Regler og steg-for-steg
  • Dekomposisjon - Bryte ned mindre deler
  • Mønstre - finne og bruke likheter
  • Abstraksjon -Fjerne unødvendige detaljer
  • Evaluering - Gjøre vuderinger

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
Modell av algoritmisk tenkning

Side 6 av 18