2.7.5 Algoritmisk tenkning

Hva er algoritmisk tenkning?

En viktig del av den grunnleggende ferdigheten å regne er å kunne analysere problemstillinger for deretter dele den i flere steg som er mer oppnåelige. Algoritmisk tenkning er et godt eksempel på en logisk måte å dele opp problemstillinger.

Algoritmisk tenking er en metode for problemløsning og stammer fra det engelske begrepet computational thinking (Wing, 2006) . Utdanningsdirektoratet (2019) beskriver å tenke algoritmisk som: å vurdere hvilke steg som skal til for å løse et problem, og å kunne bruke sin teknologiske kompetanse for å få en datamaskin til å løse (deler av) problemet. I dette ligger også en forståelse av hva slags problemer/oppgaver som kan løses med teknologi og hva som bør overlates til mennesker.

Begrepet algoritme har vært sentralt i matematikkfaget i mange år. En standardalgoritme beskriver en vanlig oppskrift på hvordan løse oppgaver, for eksempel addisjon med tosifrede tall. Beskrevet i forrige avsnitt inneholder begrepet algoritmisk tenkning mye mer enn bare oppskrifter. Gjøvik (s.169-170, I Letnes & Røkenes, 2022) trekker frem flere bestanddeler som finnes i algoritmisk tenkning:

  • Abstraksjon - Det å kunne trekke ut essensen av flere temaer eller situasjoner. Det vil og si at man klarer å filtrere vekk opplysninger man ikke trenger.
  • Automatisering - Man klarer å lage en løsning som kan kjøres med minst mulig menneskelig interaksjon.
  • Algoritmebehandling - Å behandle algoritmer vil si å kunne lage, behandle følge og forklare trinnvise instruksjoner. Dette trenger ikke å skje digitalt.
  • Generalisering - Å kunne kjenne igjen mønster og sammenhenger og å lage regler og metoder som passer i disse situasjonene.
  • Revisjon/debugging - Dette er et begrep knyttet til behandling av koder i en datamaskin. Det er viktig for en programmerer å teste koden sin for ulike feil før den kan tas i bruk. Denne revisjonen blir kalt debugging. 
  • Dekomponering - Å kunne dele opp ulike problemer i komponenter for deretter finne løsninger til de ulike komponentene. 

Det som er viktig å trekke fra disse bestanddelene er at algoritmisk tenkning er ikke bare å følge oppskrifter, men komplekse tankeprosesser. 

Over alt i samfunnet finner vi datamaskiner og roboter. Smarttelefoner, kjøleskap, TV og elsykler har alle ulike former for programmering innebygd i seg. Felles for alle datamaskiner og roboter er at de baserer seg på en algoritmisk tankemåte. Et eksempel kan være når du åpner kjøleskapet:

  1. Hvis bruker åpner kjøleskapsdøren
  2. Skru på lys i 5min eller hvis kjøleskapsdøren lukkes
  3. Hvis kjøleskapsdøren er åpen i mer enn 4 minutter:
    1. Skru på alarm
  4. Hvis temperatur øker over 8 grader:
    1. Start nedkjøling

Dette er et kort eksempel på algoritmisk prosess som skjer hver gang kjøleskapsdøren åpnes. Slike prosesser finner vi i alle datamaskiner som skal gjøre noe.


Hvorfor algoritmisk tenkning?

Det er ikke nødvendig for alle elever å lære seg å programmere, men Kong & Abelson (2022)  beskriver 3 kategorier for hvorfor algoritmisk tenking er viktig:

  1. Samfunnet: Det brede perspektivet på datamaskinens viktige rolle i samfunnet kan ikke benektes. Å kunne programmere og å forstå hvordan datateknologi fungerer er viktig for fremtidig jobbmuligheter. Forståelsen er også viktig for å ha innsikt i samfunnets bestanddeler og hvordan de fungerer sammen. 
  2. Skolen: Innsikt i algoritmisk tenkning og problemløsing kan gi en kognitiv fordel der elevene bygger kapasitet for logisk tenkning og evne til problemløsing generelt. Denne kapasiteten kan være nyttig i alle skolens fag. 
  3. Eleven: Gjennom programmering og algoritmisk tenkning får elevene mulighet til å være kreative og uttrykke egne ideer. En algoritmisk tilnærming kan også føre til høyere nivå av kognitiv prosesser.

Den algoritmiske tenkeren og regning som grunnleggende ferdighet

Den grunnleggende ferdigheten å regne finner vi igjen flere steder i den algoritmiske tenkeren. Fra teksten om regning beskrives en matematisk fremgangsmåte og å velge holdbare metoder når problemer skal løses. Udir (2019)  har utviklet en grafisk fremstilling av nøkkelbegrep og arbeidsmåter som kjennetegner den algoritmiske tenkeren. 

modell av den algoritimiske tenkeren med nøkkelbegrep og arbeidmåter

Tekstforklaring til modellen "Den algoritmiske tenkeren".docx 

Fra bildet ser vi at arbeidsmåtene beskrevet stemmer godt med verbene vi finner i LK20. Flere av arbeidsmåtene finner vi også spesielt i fag som Kunst og håndverk og Mat og helse, i tillegg til de andre muntlige fagene. 


Litteratur

Gjøvik, Ø. Programmering i matematikkfaget - teknologiske utfordringer i fagfornyinga I. Letnes, M.-A. and F. M. Røkenes (2022). Digital teknologi for læring og undervisning i skolen. Oslo, Universitetsforlaget.

Kong, S. C. & Abelson, H. (2022). Computational Thinking Education in K-12 : Artificial Intelligence Literacy and Physical Computing. MIT Press. 

Utdanningsdirektoratet. (2019). Algoritmisk tenkning. https://www.udir.no/kvalitet-og-kompetanse/profesjonsfaglig-digital-kompetanse/algoritmisk-tenkning/

Wing, J. M. (2006). "Computational thinking." Commun. ACM 49(3): 33–35.