onsdag 27 augusti 2014

Lektion 1a: Ett eller noll

Läsårets första lektion i programmering höll jag för en klass sexor i måndags. Upplägget utgår från att eleverna i årskurs 6 har programmering varannan vecka. Optimalt hade varit att ha det i halvklass men på grund av schematekniska skäl fick det bli på det här viset.  Fördelen med att ha en klass varannan vecka är att jag kan spegla lektionen, samtidigt som jag har möjlighet att förbättra de saker som eventuellt går fel på det första tillfället. 

Arbetsmiljön
Lokalen som vi använder oss av är en provisorisk datorsal som jag som IKT - utvecklare har ansvar för. Det är långtifrån en optimal sal att arbeta med datorer i, speciellt då salen har den där karaktäristiska värmen som datorsalar tenderar att ha. Datorerna vi använder är bärbara HP - datorer som är 4 - 5 år gamla och som inte har batteri som fungerar. Detta medför att det i salen finns väldigt mycket provisoriskt kablage som inte är särskilt bra för arbetsmiljön. Min förhoppning ligger i att vi blivit lovade Chromebooks vilket jag tror kommer underlätta möjligheterna för eleverna att lära sig programmera i större utsträckning. 

Läromedel
Inledningsvis använder vi oss av det program som finns på http://learn.code.org/ som är en sida skapad av dataingenjörer från Google, Microsoft, Facebook och Twitter. Det intryck jag har fått från sidan är att den är en väldigt bra ingång för att börja med programmering tillsammans med eleverna. På sidan finns det "färdiga" genomgångar, som ger en bra resurser att undervisa i programmering både utan och med dator. Det är också lätt att få en översyn kring hur det går för eleverna, då jag som lärare kan skapa konto för alla elever där jag ser hur de ligger till i de olika övningarna. 

Begrepp
Under vårt första pass började jag med att diskutera ett antal olika begrepp som hör till programmering. Detta är viktigt för att eleverna ska kunna samtala med varandra på samma sätt som de samtalar i de andra ämnena. När jag har försäkrat mig om att det finns en viss förståelse kring vad begreppen innebär är det de jag återkommande använder när jag undervisar. Följande begrepp diskuterade vi under det första passet:
  • automatisera - något som händer automatiskt (vi använde liknelser från människroppen)
  • datavetenskap - vetenskap om allt som hör till data (se nedan)
  • dataingenjör - en ingenjör som arbetar med att lösa problem som hör ihop med data
  • data - information
  • dator - maskin som använder sig av data
  • miljö - allt omkring oss men även något som kan skapas med hjälp av data
  • gränssnitt - hjälper oss att arbeta med data (t.ex. pekskärm)
  • öppen kod - program och kod som är öppen för alla att använda
  • programmering - ett verktyg (språk) som gör att vi kan bestämma vad vi vill att datorerna ska göra med datan
  • simulering - här väljer jag att ta spelen FIFA, The Sims och Battlefield som exempel på simuleringar, dvs. ett sätt att föra över delar av verkligheten till data
Jag låter eleverna diskutera vad begreppen kan betyda innan jag lyfter upp det i helklass. I diskussionen i helklass ser jag till att det finns väldigt konkreta och tydliga exempel kring hur begreppen används och vilken betydelse de har. Under den första lektionen fick jag föra diskussionen i ganska hög grad men min tanke är att vi ska återkomma till dessa (och fler) begrepp längre fram där eleverna kommer att ta ett större ansvar. 

Binärt
Den andra delen av lektionen bestod av att vi diskuterade hur vi använder datorer (surfplattor, mobiltelefoner, etc.) idag, samt hur de egentligen fungerar. Eleverna är på ett vis väldigt vana användare av digital teknik men de har ofta inte en djupare förståelse kring hur det fungerar eller vilka möjligheter som tekniken ger utanför de sociala medierna. I denna del tar jag upp hur datorerna behandlar information och förklarar väldigt allmänt hur det binära talsystemet fungerar och vilken koppling det har till datorer och programmering. Ett bra exempel här är att låta en elev ställa sig och tända och släcka klassrummets lampor och förklara att när de är motsvarar det 1 och när de är  av motsvarar det 0. Detta är ett moment som är väldigt svårt för eleverna men genom att koppla det till elektrisk ström och varför datorer inte förstår saker på det sätt som vi gör, så får eleverna en viss känsla av hur det egentligen fungerar.

Efter min genomgång kring det binära systemet ger jag varje elev ett papper där de ser den binära koden för varje bokstav (versal) i det engelska alfabetet. A motsvaras exempelvis av 0100 0001. Varje nolla (0) och etta (1) är en bit och 8 stycken bits är en byte. Där får jag kopplingen till något som är greppbart för eleverna då de är bekanta med hur mycket som ryms på deras datorer eller mobiltelefoner. Genom att förklara att 1 kB (kilobyte) är 1 000 stycken A eller att 1 MB (megabyte) är 1 miljon stycken A* (se fotnot nedan), får eleverna en mindre abstrakt bild över hur mycket data (dvs. information) som vi låter våra datorer behandla.  

Övning 1: Tänka binärt och arbeta digitalt

Många av eleverna har svårt att förstå detta och under lektionen ställde jag mig själv frågan om detta egentligen var något vi behövde ägna någon längre tid åt. Då delade jag ut små lappar med 8 tomma rutor där de skulle skriva valfri bokstav (A - Z) binärt (dvs. med bits). Eleverna fick välja mellan att färglägga rutorna (en färg för 1 och tomt för 0) eller skriva ner det binära värdet i varje ruta (dvs. 1 eller 0). Det var här jag insåg att genomgången ändå gav resultat då jag lät eleverna arbeta precis som datorer. De såg en bokstav, omvandlade det till ett binärt värde och fick sedan i helklass omvandla det till en bokstav igen (de andra eleverna fick gissa). Övningen avslutades med att jag skrev ett namn helt binärt och visade hur datorn tittade på talraden genom att dela upp den i delar med 8 bitar i varje (dvs. en byte). 

Övning 2: Flappy Bird
Slutligen fick eleverna äntligen starta upp datorerna där de fick "programmera" en version av spelet Flappy Bird på http://learn.code.org/flappy/1. Eleverna fick hjälpa varandra så mycket som de ville, då jag snabbt insåg att det var en något för svår övning att börja med utan en grundligare genomgång. När de var klara med alla tio övningar i programmeringen av Flappy Bird fick de själva välja vad de ville göra på datorerna.

Sammanfattning

Första lektionen i programmering gav mersmak och goda insikter om hur jag ska fortsätta med projektet. Det som fungerade bäst var diskussionen kring begreppen och i viss mån övningen där eleverna fick arbeta som datorer. En bättre genomgång av programmeringsövningen hade behövts, vilket jag kommer att ha med mig när jag genomför detta nästa gång på fredag med två klasser i årskurs 5. 

Daniel Pamp

2014 - 08 - 27

*Jag är medveten om att när det gäller beräkning av kilobyte och megabyte så finns det det två olika sätt att räkna och de har i viss mån olika betydelse. Jag väljer dock att inte gå in på detta tillsammans med eleverna utan försöker hålla det så korrekt som möjligt utan att röra till det för mycket för dem. Läs mer på: 
http://sv.wikipedia.org/wiki/Kilobyte och http://sv.wikipedia.org/wiki/Megabyte




Inga kommentarer:

Skicka en kommentar