Algoritmisk tankegang

En algoritme er i matematikk og databehandling en fullstendig og nøyaktig beskrivelse av fremgangsmåten for løsning av en oppgave.

Ifølge Utdanningsdirektoratet handler algoritmisk tenkning om å bryte ned komplekse problem til mindre, mer håndterlige delproblemer som lar seg løse. Det inkluderer å organisere og analysere informasjon på en logisk måte og å lage fremgangsmåter (algoritmer) for å komme fram til ønsket løsning.

Algoritmisj tenkning handler også om å lage abstraksjoner og modeller av den virkelige verden ved å fjerne unødvendige detaljer og fokusere på det som er relevant for den aktuelle problemstilling og løsning. En løsning på et spesifikt problem kan ofte generaliseres, slik at den kan brukes til å løse lignende problemer, og løsninger på flere delproblemer kan kombineres for å løse mer komplekse problem.

Figuren er tilpasset fra Barefoot Computing (UK) som er publisert med en åpen lisens (OGL).

Selve ordet algoritme er knyttet til matematikeren Mohamed al-Khwarizmî (cirka år 820) og den latinske versjonen av hans bok om aritmetikk, Algoritmi de numero Indorum. En oversetter tolket al-Khwarizmîs navn som «Algoritmus», noe som er bakgrunnen til vårt ord algoritme. Algoritme ble tidligere brukt som betegnelse for regning med det arabiske tallsystemet. En algoritmiker betegnet opprinnelig en som benyttet seg av arabiske tall, dette til forskjell fra en abakist benyttet en kuleramme (abakus) og det romerske tallsystemet.

En algoritme er altså en oppskrift på hvordan vi kan løse et problem. Det behøver i og for seg ikke være et problem som innebærer matematikk eller programmering. Tenk deg for eksempel at du skal lage en hylle. Da må du tenke gjennom en rekke ting, først knyttet til funksjon: Hva skal hyllen ha plass til? Hvor mye vekt må den bære? Skal den henge på en vegg eller stå på gulvet? osv. Svaret på alle disse spørsmålene kan konkretiseres i en arbeidstegning som viser mål og materialer som kan brukes for å lage hyllen og hvordan de ulike delene er tenkt sammenføyd. En konkretisering i form av en arbeidstegning er en slags algoritme.

I Digitaliseringsstrategien for grunnopplæringen 2017-2021 kan vi lese om Digitale ferdigheter og teknologi i opplæringen . Her står det blant annet: "Å kunne vurdere et problem på en slik måte at en datamaskin kan hjelpe oss til å løse det, forutsetter evnen til å bryte problemet ned i logiske steg – i en algoritme. Mange har tatt til orde for at det derfor er et økt behov for at elever lærer algoritmisk tenkemåte eller algoritmiske prosesser i skolen. /../ I fagfornyelsen skal det vurderes hvordan teknologi, programmering og algoritmisk tenkemåte kan inngå i bestemte læreplaner for fag /../ Det er et mål at alle elever skal få kjennskap til hvordan teknologi og ulike programmer fungerer og spiller sammen gjennom opplæringen."

Algoritmisk tankegang innebærer ikke nødvendigvis at elevene må programmere, men programmeringen kan være en egnet måte å utvikle algoritmisk tankegang. I en faggjennomgang av teknologi i grunnopplæringen (Teknologi og programmering for alle [2016] ) pekes det på et misforhold mellom den teknologiske virkeligheten elevene møter i sin egen hverdag, og det de lærer på skolen. Dette er prespektiver som preger de nye læreplanene fra 2020 og forventninger til lærernes Profesjonsfaglige digitale kompetanse (Rammeverk for lærerens profesjonsfaglige digitale kompetanse [PfDK] ).

Begrepet dybdelæring brukes på forskjellig måter i internasjonal policylitteratur og i ulike deler av læringsforskningen. Her utdypes dybdelæring slik begrepet blir brukt i fagfornyelsen. Dybdelæring henger nøye sammen med problemløsing og er dermed knyttet til algoritmisk tankegang.

Koding, programmering og algoritmisk tankegang

Koding og programmering er begreper som ofte brukes som synonymer. Vi kan likevel skille mellom koding som en mer operasjonell aktivitet –det å skrive kode –a mens programmering er knyttet til flere, mer overordnede strategier for problemløsing. Den algoritmiske tankegangen kommer inn på dette overordnede nivået, der en oversetter et problem uttrykt verbalt til en logisk rekke av operasjoner. Denne operasjonaliseringen kan kodes inn i en datamaskin. – Den største jobben er å finne ut hva du ønsker å gjøre.


I et større bilde kan vi plassere koding og programmering og den overordnende algoritmiske tankegangen inn mellom Informasjonskompetanse og Digital kompetanse, og da spesifikt knyttet til å gjøre konkrete valg i møte med et problem som skal løses og det å produsere en form før løsning ved hjelp av programvare.