Rutnätsprogrammering

Analogt arbete

Begrepp

Denna lektion har två nya och viktiga begrepp:

Algoritm - en lista med instruktioner för att slutföra en uppgift

Program - en algoritm som har blivit kodad till något som en maskin kan läsa av

Introduktion rutnätsprogrammering

Introduktion rutnätsprogrammering

I denna aktivitet, ska vi guida varandra till att tillverka en bild, utan att visa originalet av bilden.

Vi behöver, papper med 4x4 rutnät. Start är i rutan uppe till vänster, vi guidar vår “maskin” med enkla instruktioner.

Dessa instruktioner inkluderar:

  • Flytta en ruta höger

  • Flytta en ruta vänster

  • Flytta en ruta upp

  • Flytta en ruta ner

  • Fyll i ruta med färg

Exempel: Så här skriver vi en algoritm för att instruera en vän (som låtsas vara en maskin) att färglägga ett ofärgat rutnät så att det får samma mönster som på bilden nedan


Detta är tillräckligt enkelt, men det skulle innebära väldigt mycket skrivande för att utforma en instruktion för ett rutmönster som nedan bild:

Med ett litet substitut så kan vi göra detta mycket enklare! Istället för att skriva ut hela meningar för varje instruktion, så kan vi använda pilar.

I detta exempel nedan, pilen symboliserar “program”koden och orden är algoritm bitar. Detta betyder att vi kan skriva algoritmen: “flytta en ruta höger, flytta en ruta höger, fyll i ruta med färg” och detta skulle motsvara vårt program:

Genom att använda pilar, kan vi göra om koden från den tidigare bilden på ett mycket enklare sätt.

Öva tillsammans

Starta upp din klass att programmera genom att rita eller projektera följande kod-nyckel på tavlan eller skärmen.

Välj en enkel bild som denna för att använda som exempel.

Detta är ett bra början för att introducera alla symbolerna i kod-nyckeln.

Börja med att fylla i rutmönstret inför klassen -- ruta för ruta --, därefter be dem beskriva vad du just gjorde.

Du kan säga algoritmen högt, därefter kan du göra om de verbala instruktionerna till ett program.

Exempel på algoritm:

“Flytta höger, Fyll i ruta, Flytta höger, Flytta ner,

Fyll i ruta, Flytta vänster, Flytta vänster, Fyll i ruta,

Flytta ner, Flytta höger, Fyll i ruta, Flytta höger”

Någon i klassen kanske upptäcker att där är ett onödigt steg, men låt dem hållas till efter programmeringen är gjord. Led klassen genom översättningen av algoritmen till ett program:

Klassrummet kan bli fyllt av surrande med förslag. Om klassen verkar förstå kärnan av övningen, så öppnar det upp för en bra möjlighet att diskutera alternativa vägar för att skapa samma bild/mönster. Om eleverna fortfarande är osäkra så är det bättre att spara detta till ett annat lektionstillfälle och då arbeta med ett annat exempel.

Om klassen kan säga algoritmen och definierar de korrekta symbolerna för varje steg så är de mogna för att gå vidare. Beroende på din klass och deras ålder, så kan du antingen låta dem göra ett mer komplicerat mönster tillsammans (se bild ovan) eller gå vidare till att arbeta i par med deras Rutnätsprogrammering (4x4)

Lektionstips

Låt klassen föreställa sig att din arm är en Automatic Realization Machine (ARM). Idéen med algoritmer och program vill då förverkligas ännu mer om eleverna känner att de verkligen kontrollerar dina rörelser.

Paraktivitet

Variant A

  1. Dela upp eleverna i par

  2. Låt varje par få en bild från från arbetsbladet (bild 1-6)

  3. Diskutera algoritmen för att rita bilden med din kompis. Start - ruta högst upp till vänster

  4. Konvertera/översätt algoritmen till ett program genom att använda symbolerna från kod-nyckel.

  5. Byt program med ett annat par och rita in mönstret enligt program.

  6. Välj en annan bild och prova igen

Öva mer - självtest

Utöka lärandet

Dessa aktiviteter kan användas för att öka elevens lärande. Aktiviteten kan användas som en diagnos för att se vad eleven lärt sig. Aktiviteten kan göras i eller utanför klassrummet för att träna mer eller bara för att befästa lärandet.

Bättre och bättre

  • Har din klass provat att göra egna bilder/mönster?

  • Kan de lista ut hur man skriver program till bilden de själva skapat?

Klass utmaning

  • Som lärare, rita en bild i ett 5x5 rutmönster

  • Kan klassen koda detta tillsammans med dig?


Digitalprogrammering

Här kommer ni jobba med Blockprogrammering via Code.org

Introduktion

Fråga dina elever om de är bekanta med Angry Birds. Förklara att eleverna ska skriva ett program för att hjälpa Angry Bird att hitta grisen.

· Att hjälpa fågeln till grisen kräver att sätta blocken i en väldigt specifik ordning eller sekvens

· Kan du lösa pusslet med så få block som möjligt?

Lektionsöversikt

I en serie av pussel, som bygger på den analoga uppgiften Rutnätsprogrammering, kommer eleverna att träna digitalt på dessa algoritmer.

Med hjälp av karaktärer från spelet Angry Birds kommer eleverna att skapa sekvenser av algoritmer. Det går ut på att skapa ett program som tar en fågel från en sida av labyrinten till en gris på andra sidan av labyrinten. För att göra detta kommer eleverna att bygga block tillsammans för att styra fågeln i lineära raka steg samt höger och vänster.

Lektionsmål

Eleven ska:

Skapa en serie av steg med information till datorn. Datorn arbetar med stegen ett i taget i den ordning de har skrivits in, uppifrån och ned.

Skapa en algoritm genom att sätta ihop sekvenser av steg för att slutföra uppgiften.

Uppstart

Introduktion blockprogrammering

Fråga dina elever om de är bekanta med Angry Birds. Förklara att eleverna ska skriva ett program för att hjälpa Angry Bird att hitta grisen.

• Att hjälpa fågeln till grisen kräver att man sätter blocken i en väldigt specifik ordning eller sekvens.

• Kan du lösa pusslet med så få block som möjligt?

Utökat lärande

Tillverka egna labyrinter

Dela in eleverna i par eller små grupper och låt dem designa egna labyrinter och sedan utmana varandra att skriva program för att lösa dem.

Vill man kan man även skapa rollspel och göra labyrinter i naturlig storlek utanför klassrummet.

Framtaget på Nyhemskolan av Göran Söderlund, Carina Heijdenberg och Christer Johansson