2. Programmering og algoritmisk tenkning

Programmering generelt og realfaglig programmering spesielt, er i stor grad knyttet til Computational Thinking (CT). Jeanette Wing er professor i informatikk ved Columbia University. Hun ser på CT som en ferdighet på linje med lesing, skriving og regning [7].

"(…) computer science offers not just useful software and hardware artifacts, but also an intellectual framework for thinking, what I call “computational thinking”. Everyone can benefit from thinking computationally. My grand vision is that computational thinking will be a fundamental skill—just like reading, writing, and arithmetic—used by everyone by the middle of the 21st Century."


CT handler om en måte å tenke på som er nyttig på mange områder, og både programmering og realfaglig programmering står sentralt i utviklingen av denne ferdigheten. Ofte oversetter vi CT til algoritmisk tenkning selv om det ikke er helt dekkende. Algoritmisk tenkning utgjør en kjerne i naturvitenskapelig praksis og i matematikk, og i skolen har vi lenge jobbet med å utvikle elevenes evne til algoritmisk tenkning. Figuren viser hvordan programmering både innebærer algoritmisk tenkning og koding, men også mye mer. 

 

I artikkelen Defining Computational Thinking for Mathematics and Science Classrooms [8] blir vi presentert for en firedelt taksonomi for CT:

 

  1. Dataferdigheter (samle, produsere, manipulere, analysere og visualisere data)
  2. Modellerings- og simuleringsferdigheter
  3. Ferdigheter i computational problem solving (herunder programmering, feilsøking og abstraksjon)
  4. Systemforståelse (se sammenhenger, organisere ideer hierarkisk, beherske komplekse problemstillinger)


Hvis vi knytter dette til vårt konkrete eksempel med muffinsformer og luftmotstand, vil innsamling  og presentasjon av reelle data være på nivå 1. Dette blir allerede gjort i norske klasserom i dag. Utvikling av en modell for fallet og en simulering av dette er på nivå 2. Modellen vil inneholde en differensiallikning som beskriver sammenhengen mellom fart og akselerasjon for den fallende muffinsformen.

På nivå 3 kan elevene bruke Eulers metode for å løse differensiallikningen numerisk. De må abstrahere fra den konkrete situasjonen med en gjenstand som faller til hvordan dette kan representeres som et problem vi løser i en løkke der vi antar at for hver runde i løkken kan vi tilnærmet si at akselerasjonen er konstant. En fallende muffinsform er ikke et kompleks system, så vårt enkle eksempel er ikke på nivå 4 i denne taksonomien. 


Skole handler om at barn og unge skal lære. De skal utvikle sin fagkunnskap, sine tenkemåter og sine evner til kritisk refleksjon og samarbeid. Programmeringen skal styrke denne fagopplæringen. Elevene skal ikke programmere for programmeringens skyld, men for fagets skyld. På denne måten kan realfaglig programmering bidra til dybdelæring, kreativitet, systemforståelse og tverrfaglighet – helt i tråd med intensjonene i Stortingsmelding 28.

Publisert 6. aug. 2019 10:54 - Sist endret 18. mars 2021 12:41