Frakoplet programmering

Sentralt i programmering er å bygge opp sett med trinnvise instruksjoner. Instruksjonene må være utvetydige, og komme i riktig rekkefølge. I blokkbaserte språk som Scratch består disse instruksjonene av klosser vi pusler sammen, i tekstbaserte språk som Python består de av linjer med kode.

Sett med trinnvise instruksjoner møter vi imidlertid også i dagliglivet, for eksempel i form av matoppskrifter eller monteringsinstruksjoner for et IKEA-møbel. Hvis instruksjonene faktisk er utvetydige, kan vi kalle dem algoritmer.

Viktigheten av å kunne lage og følge slike instruksjoner reflekteres i læreplanen gjennom kompetansemål for 2. og 3. klassetrinn:

  • 2. trinn: Lage og følge regler og trinnvise instruksjoner i lek og spill.
     
  • 3. trinn: Lage og følge regler og trinnvise instruksjoner i lek og spill knyttet til koordinatsystemet.

Disse målene er ikke relatert til konkrete programmeringsbegreper, som først introduseres på 4. trinn.

Instruksjoner i dagliglivet er ofte upresise både i innhold og rekkefølge. For eksempel sier bakeoppskriften "bland en pose tørrgjær med 5 dl mel" ingenting om at vi skal drysse gjæren ut av posen og at vi skal ha alt oppi en bolle. Og instruksen "ta på støvler og tykke klær", indikerer at vi skal ta på støvlene før klærne. Grunnen til at vi ikke presiserer at gjær og mel skal blandes i en bolle uten pose og at klærne skal tas på før støvlene, er at det er underforstått, og så opplagt at det ville virket latterlig å presisere det. Men når vi skal gi en datamaskin instruksjoner, er det ingen ting som er underforstått. Alle detaljer må poengteres, og alle instruksjoner må komme i riktig rekkefølge.

For å introdusere viktigheten av å gi og tolke presise instruksjoner kan en bruke undervisningsopplegg med frakoplet programmering, der elevene lager og gir hverandre instruksjoner. ("Frakoplet programmering" er min oversettelse av "unplugged programming". På norsk brukes ellers ofte begrepet "analog programmering", men det er veldig misvisende.) Frakoplet programmering kan godt brukes som en introduksjon til programmering, også på høyere klassetrinn.

Et eksempel på en aktivitet med frakoplet programmering er at en elev skal være "robot" og følge instrukser for å gå fra ett punkt i klasserommet til et annet uten å støte på noe. Instruksene kan for eksempel være "ta to skritt fram", snu 90 grader til venstre", etc. Elevene vil sannsynligvis måtte gjøre korrigeringer underveis, og antakelig oppdage at instruksene de først gir, ikke er presise nok. For eksempel vil en instruks som "snu til venstre" ikke være tilstrekkelig fordi den ikke sier noe om hvor mange grader "roboten" skal snu.

Ressurser for undervisning i frakoplet programmering finnes for eksempel på www.csunplugged.org/en/ Links to an external site. og code.org/curriculum/unplugged Links to an external site..