Unplugged - Skattjakt ute i rutnät

I den här övningen ska eleverna skapa ett eget spel och programmera en kompisrobot som ska ta så många poäng som möjligt på spelplanen. Under Workshop 1 på Hagaborgsskolan innebar det att det var dags för lärarna att röra lite på sig! Den här övningen startade med en genomgång inne i konferensrummet och genomfördes sen ute vid det stora målade rutnätet på skolgården.

Material:

  • Linjerade papper och penna
  • Färgade papper - gula och svarta
  • Ärtpåsar eller annat tungt.

Förberedelse:

Innan övningen startade pratade vi om villkorsstyrning med If-satser. För att effektivisera, optimera koden kan man ta hjälp av villkorsstyrning. If-satser använder vi faktiskt till vardags i helt vanliga situationer, utan att vi kanske tänker på det. Till exempel: Vi tittar ut genom fönstret och IF det regnar THEN tar paraply när vi går ut, ELSE gå ut utan paraply. På svenska kan vi använda begreppen OM och ANNARS. Jag visade ett skissat exempel på ett rutnät där det låg utlagt skatter (gula rutor) och hinder (svarta rutor) och ett exempel på kod för att få spelaren att röra sig över planen och plocka poäng.  Vi testade sedan att sätta in villkor för att effektivisera koden. OM du kommer fram till en gul – plocka upp den. OM du kommer fram till en svart – hoppa över. Det behövdes bara fem rader kod för att komma lika långt. 

Jag förberedde rutnätet på gården genom att lägga ut gula och svarta papper. Jag använde ärtpåsar för att hålla dem kvar i vinden. Man skulle även kunna bestämma att ärtpåsarna är skatter och hinder om man har ärtpåsar i två olika färger, så slipper man ha pappret. Rutnätet är 10x10 rutor, målade på skolgårdens asfalt. Jag försökte placera skatterna så att det fanns en spridning och vissa hinder nära skatterna för att försvåra så att de tvingades hoppa för långt och få en omväg.

Genomförande:

Lärarna delades in i grupper med tre personer i varje. Två hjälptes åt att programmera – skriva kod på linjerat papper. Den tredje, som agerade robotkompis fick sedan testa deras kod och plocka poäng. Lärarna uppmanades att testa att skriva sin kod med eller utan villkor för att se vilken skillnad det gjorde i antal poäng de hann plocka upp. De fick nämligen även begränsningen att de enbart fick använda 10 rader kod när de gjorde sitt spel. Varje ny händelse skrivs på en ny rad, ex. Fram 5 (byt rad) Vänd höger (byt rad)… 

Ibland behövde de debugga sin kod när de märkte att det inte blev som de tänkt. Sedan turades de om att programmera alt. vara robot. Eftersom vi var flera grupper och hade en begränsad tid att testa övningen bestämde vi att de räknade poängen utan att plocka med sig ”skatterna”. Om man har mer tid på sig kan eleverna plocka med sig poängen och sedan placera ut dem igen efter avslutad bana. En annan variant kan vara att det ligger en hög med gula papper vid varje skatt så att de kan ta med ett papper och det ändå finns skatt kvar till nästa grupp att plocka upp.

Avslutning:

Vi samlades och sammanfattade övningen och förmiddagen. Här kan man med fördel välja att låta några grupper visa upp sina lösningar och resonera kring optimering av koden osv.

Reflektion:

Några av grupperna använde både loopar och villkor för att optimera koden. Testade och testade igen för att försöka hitta smarta lösningar. Processen, det datalogiska tänkandet blev väldigt synligt. De bröt ner problemet i mindre bitar, funderade på var på banan de skulle fokusera och var utgångspunkten skulle ligga för att fånga så många skatter som möjligt. De funderade över olika alternativ till lösningar och testade sina lösningar. Flera debuggade när det uppstod fel i koden och till slut fick roboten testa koden och ta poäng. Otroligt häftigt att stå bredvid och observera!

En sak som kan förtydligas ännu mer innan övningen startar är att det svarta hindret inte räknas som ett steg när man går/hoppar över det. Några testade att bara fortsätta gå över hindret som om det var en vanlig ruta när villkoret ”OM svart – hoppa över” användes. Vi resonerade oss gemensamt fram till att det gav mer för spelet om man behövde hoppa över rutan och fortsätta räkna på nästkommande ruta istället. Annars blev det inte lika mycket utmaning.

Att använda villkorstyrning på det här sättet kan ses som ett väldigt förenklat sätt, det håller jag med om, men jag tycker ändå att övningen ger en första inblick i att programmera med villkor. Eleverna tränar på att se VARFÖR det är smart att använda villkor för att effektivisera koden och de får programmera med hela kroppen!

Om övingen görs i en elevgrupp skulle jag absolut rekommendera att först låta eleverna jaga skatter i rutnätet utan att ha förklara villkorsstyrning för att sedan, efter genomgången om villkor, låta dem testa igen och se hur många fler poäng de lyckas ta. Rutnätet är en utmärkt arena att träna på att programmera varandra enbart med pilar till en början för att så småningom gå över till textrader, loopar och villkor.

Varianter:

En liknande variant av övningen finns med i UR-serien Programmera mera med Karin Nygårds. Där genomförs övningen med hjälp av färgade papper som banor runt i klassrummet. Övningen skulle även kunna genomföras i ett rörelserum, idrottssal eller aula där man har större yta att röra sig på. Vita papper kan symbolisera de tomma rutorna om man vill arbeta med ett rutnät. Annars kan man använda sig av olika slingrande banor av färgade papper där de vita pappren är neutrala steg. Olika uppdrag, poängssytem och hinder gör att övningen kan varieras i det oändliga!