Øvelse uten datamaskin

Mine robotvenner

Denne teksten er en oversettelse av en originaltekst fra “ThinkerSmith”, og er lisensiert ift. retningslinjene nederst på siden.

Introduksjon

Denne øvelsen introduserer elevene for prinsippene bak programmering,  og illustrerer behovet for funksjoner.

Ved å bruke et forhåndsdefinert «Robotordforråd» skal elevene guide hverandre for å gjennomføre en oppgave, uten å diskutere den først. Dette lærer elevene sammenhengen mellom symboler og handlinger, samt verdifull innsikt i feilsøking

Læringsmål

Elevene skal

  • Lære å omgjøre virkelige handlinger til instruksjoner.
  • Få praktisk erfaring i å kode med symboler.
  • Oppnå en forståelse for presisjon innen koding.
  • Erfare hvordan debugging brukes til å finne feil i koden.
  • Forstå hvor nyttig funksjoner og parametere er (7+)

Materiell og forberedelser

Materiell

  • Symbol-ark (1 pr gruppe): Her er en norsk oversettelse
  • Pakke med engangs kopper (1 pr gruppe).
  • Engangs kopper eller papir trapeser (6 eller flere pr gruppe).
  • Blanke ark eller notat kort (1 pr person).
  • Noe å skrive med (1 pr person).

Forberedelser

  • Skriv ut et Symbol-ark til vær gruppe.
  • Skriv ut arket med trapesfigurer, om kopper ikke brukes.
  • Plassér koppene eller trapesene på et bord litt unna der gruppene skal være (Dette er Robotbiblioteket).

Under kodetimen

Ordforråd

  • Algoritme – en serie av instruksjoner om hvordan en kan oppnå et mål
  • Koding – Omgjøre handlinger til et symbolspråk.
  • Debugging – Finne og fikse feil og problemer i koden
  • Funksjon – En bit med kode som kan brukes om og om igjen
  • Parameter- Ekstra informasjon som kan legges til en funksjon, for å tilpasse den

Beregnet tid: 1 time pr klasse

Beregnet forberedelsestid: 10 min.

Gjennomføring

Introduksjon: Start med å spørre klassen om noen har hørt om roboter. Om noen har sett eller tatt på en robot?  Kan en sånn maskin «høre» deg snakke? Forstår den «faktisk» det som blir sagt? Og svaret på dette er «ikke på samme måte som en person gjør».

Roboter trenger en serie med «instruksjoner». Spesifikke ting de har blitt satt til å gjøre. For å kunne gjennomføre en oppgave, må en robot ha en rekke med instruksjoner (som oftest kalt algoritmer) for å fungere. I dag skal vi lære hva som trengs for å få dette til.

Start

Vis frem en kopi av Symbol-arket (eller skriv de på tavlen). Fortell at det kun er lov til å bruke seks symbolene i denne oppgaven. I denne utfordringen skal elevene instruere sin «robot» til å stable en spesifikk stabel med kopper med å kun bruke disse pilene.

  • Plukk opp koppen
  • Sett ned koppen
  • Bevege koppen ½ lengde fremover
  • Bevege koppen ½ lengde bakover
  • Roter koppen 90 grader mot høyre
  • Roter koppen 90 grader mot venstre

Småskolen

  • Prøv denne oppgaven med hele klassen og la elevene gi instruksjoner, som læreren skal skrive ned.
  • Ha en assistent som forlater rommet, for så å komme til bake og så prøve å gjennomføre koden.
  • Om det er nok tid så, bytter assistenten og læreren plass. Så skal læreren prøve å gjøre det samme.

Trinn 4-6

  • Del inn i grupper på 3 til 5 og tilpass i forhold til hvordan klassen samarbeider.
  • Forvent at alle har lyst å prøve, så dette vill sannsynlig vis bruke hele timen.

Trinn 7+

  • Del inn i grupper på fire, tre i hver gruppe er ideelt.
  • Elevene skulle da få nok tid til å gå en hel runde, og kan gjøre ekstraoppgavene som står beskrevet lenger ned

robotvenner små bilder

Komme i gang

  1. Velg en «robot» per gruppe.
  2. Send en «robot» til «robot biblioteket», mens programmererne lager koder.
  3. Velg et symbol fra «cup stack pack» og gi til vær gruppe.
  4. Gruppene vill velge en algoritme for hvordan roboten skal bygge den utvalgte stabelen.
  5. De som koder skal oversette algoritmen til piler, i forhold til Symbol-arket
  6. Når koderen er ferdig med stabelen, skal roboten hentes.
  7. Når roboten kommer, skal den lese pilene på kortet og så prøve å gjennomføre de med bevegelser.
  8. Gruppen bør fokusere på å se etter feil og fiks de, for så å be roboten gå starte på nytt igjen.

Regler

  1. Koderne skal KUN benytte de seks anbefalte pilene.
  2. Koppen bør være med roboten og ikke tilgjengelig for koderen, når kodingen skjer.
  3. Når roboten er tilbake hos gruppen, skal det være ro, slik at andre grupper ikke blir forstyrret.

(Om elevene spør om regler som ikke er nevnt over, kan du enten lage en ny en basert på egen erfaring, eller få de til å bestemme den regelen seg i mellom)

Praktisk eksempel

Det er svært nyttig å gå over en av eksemplene med samlet klasse først. Det er en stabel i pakken som bare inneholder tre kopper. Hold det opp foran klassen og gjennomgå eksempeløvelsen. En mulig løsning vill se sånn ut.

1

Plasser stabelen der hvor alle kan se den. Spør klassen om noen kan fortelle hva du skal gjøre. Det riktige svaret er «Løft opp koppen». Det er viktig at hver kopp som løftes, blir holdt høyt over de andre koppene i stabelen.

Når koppen holdes høyt i luften, spør hva som nå skal gjøres med koppen.  Klassen må påminnes et par ganger om at et steg framover er bare halve koppens lengde.

2

Midtveis

Etter at den første koppen er satt på plass, gå til tavlen eller overhead-prosjektoren. Og utfordre klassen til å skrive de symbolene på tavlen som vil gi riktig resultat når programmet kjøres, slik at det kan kjøres senere.

Avslutning

3

Når bevegelsesmønsteret er nedskrevet og hele klassen kan se det, kan du demonstrere selv, eller få en elev til å «kjøre programmet». Si navnet på pil retningene høyt, mens koppene beveges på plass. For eksempel, pilene i bildet over.

Plukk opp koppen. Ett skritt frem. Ett skritt frem. Sett ned koppen. Et skritt tilbake. Et skritt tilbake. Etc.

Hovedøvelse

Gruppeinndeling

Del gruppen inn i forhold til det som er nevnt tidligere i teksten. Poenget er å ha nok programmerere i gruppen til at alle får en sjanse og ikke føler seg utelatt.

Robot

Velg en «robot» i hver gruppe, som skal vente i «robotbiblioteket». Velg en plassering langt nok vekk fra gruppene til at roboten ikke kan få med seg hvilken type stabel gruppen har fått utlevert. «Robotene» kan bruke ventetiden på å øve på å stable kopper, eller se på reglene.

Program

Hver gruppe bør bare ha et «Koppestablingskort» om gangen. De kan da begynne å finne algoritmen for dette. Hvor mange kopper trengs det? Hvor mange bevegelser må til for å gjennomføre det første steget? Det neste steget? Er noen kopper opp ned? Hvordan kan «roboten» snu koppen?

Når de har funnet ut av disse spørsmålene, skal programmererne skrive ned symbolene til å lage en kode på det blanke arket. Koden bør dobbeltsjekkes, for å se om den gir mening. Før man henter «roboten»

Kjør koden

Nå som «roboten» er tilbake, skal alle være stille.  Gruppene skal unngå å vise bevegelser eller bruke ord for å hjelpe «roboten». «Roboten» skal bare følge pilene. Om de oppdager en feil, kan de stoppe programmet. Få «roboten» til å returnere til «robot biblioteket». Fiks feilene og hent «roboten» igjen.

Gjenta

Hver gang en gruppe fullfører en øvelse, bør de velge en ny «robot» og gruppen bør aller helst få et nytt bildekort, helst vanskeligere enn det første.

Dette fortsetter til alle i gruppen har vært «robot» en gang, man går tom for tid, eller kortene er vanskelig nok til å starte en diskusjon om funksjoner.

Tips

Om gruppene er for effektive med å løse oppgaven, og det er nesten tomt for kort: La de prøve å lage sine egne stabel-eksempler.

Ekstraoppgaver

Om det nok ekstra tid, så er dette en fantastisk mulighet til å introdusere hvor nyttige funksjoner er.

Introduksjon

Samle klassen og vis dem dette bildet.

4

Du vill mest sannsynlig høre surmuling, fnising og dette er umulig. Spør klassen hva problemet er og hvorfor er denne stabelen så problematisk?

Denne stabelen virker veldig vanskelig til å begynne med, fordi hver nye kopp vill legge til to ekstra piler på «pil foran». Før eller siden vill instruksjonen se slik ut

5

Mange av gangene vill elevene begynne å forkorte instruksjonen, som å skrive et tall bak den første pilen.6

Under hovedoppgaven anbefales ikke dette, men gi ros for at de tenkte selv og har oppdaget et behov for funksjoner.

Forklar

Nevn at en pil etterfulgt av nummer er en smart måte å indikere at en bevegelse skal gjøres flere ganger. Med å tillate dette, lager man egentlig bare et nytt symbol som kan brukes for å unngå unødvendig repetisjon. Dette er hovedtanken bak funksjoner.

Utfordre klassen til å finne den største stabelen med repeterende kode for hver kopp-plassering. Som instruktør, du kan velge en gruppering som gir mening. Men de kommer nok til å bli noe á la det som er nevnt tidligere

a

Dette symbolet er en god begynnelse, men det kan forenkles ytterligere. Om vi plasserer symbolene med klokken (starter på toppen), og lager en ny figur som ser slik ut:

7

Parametere

Ovenfor har vi et pilsymbol som noenlunde minner om det meste av ordforrådet, men vi har også introdusert en måte å inkludere mer informasjon om hvor mange ganger vi vill at det skal brukes piler framover og bakover. I datavitenskapens verden blir denne ekstra informasjonen kalt parametere. Disse parametrene kan brukes for å tilpasse funksjoner som allerede er nyttige.

Omstabling

Nå som klassen har nye symboler, kan de prøve å løse en av de mer krevende stablene. Gruppene kan samarbeide om det ikke er nok kopper i en gruppe.

8

Symbol-ark

9

Koppestablearket, Ekesemplen på koppestabling

10

 11

12

Trapeser

 13

Rettigheter og copyright

Klikk på bildet for å komme til Thinkersmith sine nettsider

Klikk på bildet for å komme til Thinkersmith sine nettsider