Analog programmering

Selv om man ofte bruker analog programmering i begynneropplæringen i programmering, kan det være nyttig å bruke analoge øvelser også senere i opplæringen. Analog programmering kan brukes på høyere trinn både fordi elevene per i dag ikke er trygge på mange av prinsippene man får øvd seg på i slike øvelser. I tillegg er det mulig å bruke analoge øvelser/prinsipper for å utforske også avanserte konsepter innen programmering.

Når elevene blir mer kjent med de grunnleggende prinsippene og begrepene innen programmering, kan man hente fram gamle eller nye analoge programmeringsøvelser og se på dem på nytt, med nye øyne. Forhåpentligvis blir det nå enklere for elevene å beskrive/forklare hva som skjer i de analoge øvelsene, og man kan også bruke vanlige ringleker, lage flytskjema og analysere omverdenen med utgangspunkt i programmeringsbegreper.

  • Hva er likhetene mellom flytskjemaet til høyre og et program?

  • Kan dere lage et flytskjema eller forklare stein-saks-papir med programmeringsspråk?

  • Hvordan kan slå-på-ring beskrives med programmeringsbegreper?

Morgenalgoritme - algoritmer i hverdagen

Utstyr man trenger: Laminerte lapper med symboler (ett sett til hvert barn/par/gruppe)

Fremgangsmåte:

  • Gi barna beskjed om at de skal legge symbolene de får utdelt i den rekkefølgen som best beskriver deres morgenrutine en vanlig skoledag. Symbolene kan i noen tilfeller tolkes på ulike måter, så barna må selv bestemme seg for hvilken tolkning de bruker.

  • Del ut et sett med laminerte symboler til hvert barn/par/gruppe.

  • Gi barna noen minutter på å lage en rekkefølge som de mener samsvarer godt med deres morgenrutine.
    - De skal i utgangspunktet bruke alle symbolene, men unntak kan gjøres hvis de argumenterer godt for det.

  • Ta en runde og be hvert barn/par/gruppe beskrive sin morgenalgoritme.

  • Snakk gjerne litt med barna om andre algoritmer/rutiner de har i hverdagen.
    - Matpakkesmøring
    - Dekking av bordet til middag
    - Skoleveien

Eksempel på symbolkort:

Zip - Zap - Boing og andre ringleker

Nøkkelbegrep: Vilkår

Her bør man innlede litt ved å snakke om dette med VILKÅR, som er myyyyyye brukt i programmering. Et vilkår kalles noen ganger for en HVIS-setning, fordi man i programmet sier HVIS "noe skjer" SÅ skal "noe annet skje".

Be barna komme med flere forslag på ting de tenker kan være programmert på denne måten.

Eksempler på dette kan være:

  • HVIS bevegelsessensoren merker bevegelse åpner døren til butikken seg.

  • HVIS lysnivået ute blir lavere enn et visst nivå skal gatelysene slå seg på.

  • HVIS spillfiguren din i MarioKart kjører over en banan snurrer bilen rundt tre ganger og mister fart.

  • HVIS du holder taster riktig kode på tastaturet åpner låsen til rommet seg.

I denne ringleken skal barna operere som en liten "maskin" som sender signaler rundt. Her må man reagere på det de andre i ringen gjør, og kan selv påvirke hvordan signalet beveger seg.

Zip - Send til sidemann
Zap - Send på tvers (til den du velger)
Boing - Send tilbake

Lage og følge instruksjoner

Elevene kan jobbe to og to, rygg mot rygg, der den ene forklarer hva den andre skal gjøre skritt for skritt uten å avsløre helheten.

Kan gjøres med enkle tegninger eller Tangram-figurer.

Kompisprogrammering (fra superbitskole.no)

Mål med øvelsen:
Her skal elevene programmere en kompis, som i denne oppgaven skal være «robot». For å få til dette må elevene lage en algoritme med hjelp av piler. Oppgaven er kompleks og må deles opp i mindre ledd/sekvenser for å løse et problem.

Tid:
35 - 45 minutter

Utstyr:
11 stk. A4-ark med sifrene/tallene fra 0 til 10:
Skriv ut store sifferkort til banen på gulvet her.
8 stk. programmeringskort til hver gruppe..
Et ark som viser «banen» i miniutgave til hver gruppe.
En spillebrikke (et viskelær eller en stein kan også brukes).


Gjennomføring:

  • Del elevene inn i grupper (3-5 i hver gruppe). ´Én av elevene i gruppen skal være «robot», mens resten av gruppen skal programmere roboten.

  • Bygg opp banen med de nummererte kortene på gulvet slik bildet viser. Det holder med en slik bane i klasserommet.

  • Gruppene skal ha hver sin bunke med programmeringskort, et A4-ark med banen i miniutgave og en spillebrikke.

  • Gruppen skal sammen lage en programmeringskode og programmere «roboten» til å gå fra 0 til 10. De skal sortere programmeringskortene i den rekkefølgen de vil ha dem, for så å kunne gi instruksjonen til sin robot. De får kun bruke hvert kort en gang.

  • Hver gruppe planlegger, lager og tester sitt program (en sekvens av kommandoer), før det skal vises fram for klassen. Testingen kan gjøres på A4-arket med banen i miniutgave. De som har programmert skal lese opp sekvensen og «roboten» skal følge instruksjonene ved å flytte spillebrikken. Start på 0.

  • Til slutt får alle gruppene kjøre sin «robot» foran klassen.

Klarte alle å løse oppgaven? Fant de forskjellige løsninger eller hadde alle samme løsning?

Regler:

  • «Roboten»/eleven skal ta seg fra posisjon 0 til sluttposisjon 10.

  • Hvert programmeringskort kan kun brukes en gang.

  • Man må ikke bruke alle programmeringskortene.

Øke vanskelighetsgraden:
Ta bort programmeringskortet "Gå et skritt frem" og la gruppene prøve å gjøre oppgaven på nytt.

Rutemønstermanøvrering

Det finnes utallige varianter av denne øvelsen, og hvis man lager seg et stort rutenett på papir, presenning eller lignende kan det brukes på nytt i mange ulike settinger, og barna kan også være med og foreslå/tegne egne symboler som bruke. Her kjører vi påskeeggjakt-tema, der målet er å samle så mange egg som mulig på veien til kurven.

Under ser du noen kodekort som kan printes ut, hvis det trengs.

kodekort.pdf

Programmér læreren

En variant av kompisprogrammering er at man sammen med barna lager en hinderløype i klasserommet med bord stoler o.l. Læreren skal starte på en bestemt plass i den éne enden av klasserommet og komme seg til den andre siden. Læreren prøver å ta skritt med en så fast skrittlengde som mulig, og kan vri seg 90 grader til høyre og venstre.

I stedet for ferdige kodekort kan barna her lage sine egne kodekort av små lapper eller skrive en sekvens av kommandoer på et kart. Elever som er litt mer bevandret kan også oppfordres til å bruke LØKKER der det forenkler koden.

Lærerprogrammering med Micro:bit

Hvis man ønsker å gjøre en tilsvarende øvelse der man bruker Micro:biten, kan dette være en god anledning til å la elever smake på det å bruke lister/tabeller i programmeringen, litt slik man kan gjøre det med adjektivhistorien i MakeCode Arcade.

I programmet til høyre kan man redigere en tabell med tall som samsvarer med fire ulike bevegelser:

  1. Ett steg frem (pil nord).

  2. Ett steg tilbake (pil sør).

  3. Snu 90 grader til venstre.

  4. Snu 90 grader til høyre.

Barna trenger ikke redigere det som skjer til høyre i programmet (når knapp A trykkes), men kan bare legge inn tall i tabellen for å lage en sekvens med kommandoer som læreren må følge. Bruk pluss- og minustegnet nederst4 i det oransje feltet for å legge til eller fjerne oppføringer.

I stedet for en tabell med tall kan man også bruke en teksttabell og bokstaver/ord for hver bevegelse. Da må man passe på å bruke sammenligningsbokser som ser på tekst, markert med (" ") i stedet for tall.

Mine Robotvenner introduserer elevene for prinsippene bak programmering, og illustrerer behovet for funksjoner.

Ved å bruke et forhåndsdefinert robotordforråd skal elevene styre hverandre gjennom forskjellige oppgaver, uten å diskutere dem først. Dette lærer elevene sammenhengen mellom symboler og handlinger, i tillegg til å gi verdifull innsikt i feilsøking.

Beregnet gjennomføringstid er 1 time per klasse.

Beregnet forberedelsestid: 10 minutter.

Flere analoge "programmeringsøvelser"

HELST UTENDØRS

INNE ELLER UTE

  • Sheriffen (15-30 minutter)
    Kan forklares som at sheriffen i midten setter i gang en sekvens med en del vilkår (hvis-eller) som utspiller seg hver gang hen skyter mot et "random" sted.