Press "Enter" to skip to content

Kod skall byggas utav glädje…

…av glädje bygger man kod.

(Och ja, jag vet att det inte passar så bra med melodin. Kom igen, jag är inte musiklärare direkt…)

Det verkar finnas ett “matematikparadigm” inom programmeringsdidaktiken. Tanken är, om jag förstått saken rätt, att programmering “egentligen” är matematik, eller åtminstone logik. Det har som följd att de allra flesta programmeringslärare jag talat med mestadels använder sig av uppgifter med matematikanknytning. Ekvationslösningar, algoritmer fibonnaccisekvenser och primtal.

Nå; jag är den förste att erkänna att det finns en skönhet i matematiken; att matematisk/logisk problemlösning är intressant, roligt och meningsfullt. Jag tycker det, men den något gråtrista verkligheten är att väldigt många elever inte tycker att matematik är ett roligt och givande ämne.

Man kan givetvis argumentera för att man genom att sätta matematiken i ett sammanhang i och med programmeringen skapar intresse hos eleverna, men min erfarenhet visar precis tvärtom: De som redan gillar matte gillar också programmering, men de som har svårt för matematik, de som har dåligt matematiskt självförtroende, knappast tycker att det blir mer intressant för att det kläs i programmeringsdräkt. Snarare tvärtom, programmeringen sammankopplas med något plågsamt.

Det här är, i mina ögon, ett problem. Visst är det god övning för en programmerare att implementera en sökalgoritm, men det tillhör i mina ögon inte grunden för programmering. Jag skrev igår ett lektionsupplägg som utgår från en annan syn på programmering, där man istället kopplar programmeringen direkt till logiskt tänkande, till problemlösning, och till lekar. För mig är programmering ett estetiskt, laborativt ämne. Programmering har mer gemensamt med bild och att spela datorspel än med att lösa matematiska problem.

Min teori är enkel: Det man tycker känns meningsfullt, i den kontext man befinner sig, uppfattas som roligt. Det som är roligt lär man sig enklare, och får större lust att hålla kvar även efter skolan. Det betyder att det första vi som programmeringslärare bör göra är att försöka tända intresset, skapa en lust och en glöd inför ämnet. Strunt samma om vi inte följer den traditionella programmeringsundervisningen. Om vi inte får in precis allt som brukade ingå. Så länge vi följer Skolverkets kursplaner har vi ryggen fri.

År 2011 är det svårt att hitta en gymnasieelev, oavsett program och kön, som inte spelar dator- eller tv-spel. Killar spelar mer traditionella högbudgettitlar, tjejer spelar mer s.k casualspel, småspel som är enkla att bara spela en liten stund. Men nästan alla spelar. Det är med andra ord ett intresse nästan alla elever har gemensamt, i stort sett uniformt. Och det intresset kan vi programmeringslärare knyta, med små och enkla medel, knyta till vårt ämne. Utan att det kostar ett dugg för skolan i materiella resurser.

Vilket annat ämne kan skryta om det? Så varför tar vi inte vara på elevernas intresse?

Jag brukar förklara det såhär: Om eleverna får programmera spel på programmeringen, eller i multimedian, så får de något konkret som de generellt både kan och vill visa för bänkgrannen, klasskompisar, vänner och släktingar. Det man producerar blir meningsfullt för eleven på ett annat sätt än en välimplementerad sorteringsalgoritm. Programmeringen blir en källa till stolthet, något man drivs framåt i. Det är sällan elever är elaka mot varandras spel; framför allt ickeprogrammerande elever brukar bli väldigt imponerade av att deras kamrater numera kan betitla sig spelskapare, och därmed placerar sig teoretiskt i samma fack som killarna på Dice, Starbreeze eller Mojang. Eleverna förvandlas från passiva konsumenter till spel till kritiska producenter, som kan analysera och dekonstruera spellogik. De går från passivt upplevande i spelkulturen till ett aktivt deltagande.

Så får vi då helt enkelt en generation programmerare som bara kan göra spel? Naturligtvis inte. Som alla programmerare vet är det lätt att hoppa mellan språk och uppgifter när man väl kan ett språk, och en sorts uppgift. De läxor man lär sig när man programmerar spel är direkt överförbara på annan programmering. Spelprogrammeringen blir en väg för att få eleverna engagerade och intresserade.

Och blir väl de engagerade… ja, då har man inte bara elever som lärt sig programmera tillräckligt mycket för att klara provet – vi har programmerare, som för med sig sin kunskap in i framtiden.

2 Comments

  1. Freddie Juza Freddie Juza December 6, 2011

    Jag tror att det stora problemet med att använda programmeringslektioner för att sortera siffror på skärmen är att det är målet med övningen, vilket i sig gör att målet inte fyller någon funktion. Det är lika givande som att räkna mattetal för sakens skull. Spelprogrammering är ju fantastiskt på det sättet att ett spel innehåller det mesta som är bra att kunna med programmering och en hel massa matematik om man börjar leka med grafik.

    Ta hänga gubbe till exempel där du från första början kan skriva ett program som låter dig gissa bokstäver i ett ord som du innan spelet startar skrivit in och lagrat i en sträng. Detta koncept går ju att ta vidare längre, varför skriva in orden när du kan ha en textfil med ordet i? När du väl har skrivit ordet i textfilen, varför inte skriva in flera ord i filen och låta spelet välja ord utifrån vilken rad i textfilen ordet står. Varför inte blanda orden och låta spelet välja själv? Samma sak med en scoreboard, och en gubbe som faktiskt sakta hängs i takt med att man svarar fel.

    Fördelen med detta är att istället för att tvångsmata någon med trista “mattetal” så kommer man naturligt att stöta på problem som antagligen går att lösa och vips är det inte läraren som berättar hur något fungerar utan att eleven har något kontext att applicera kunskapen på i stället är det eleven frågar hur man kan sortera ett scoreboard på bästa sätt.

    • micke micke December 7, 2011

      Det är precis så jag tänker också. Det blir meningsfullt och roligt, man ser ett resultat som man dessutom kan och vill visa för andra. Och som du säger, man kan alltid utveckla – matteuppgifterna är ofta stela; är man klar så är man klar och så var det inte mer med det. Hangman skulle jag kunna dryga ut hur mycket som helst, med grafik, kontroll av spelarinput, externa filer, API-programmering mot t.ex Facebook, Omimplementera som app till androidmobil, göra den objektorienterad… Övningen kan varierar i oändlighet.

      Det betyder också en närmast oändlig potential för individualisering. Varje elev gör sitt bästa, vi jobbar över en viss tid. De elever som tycker programmering är svårt hinner inte lika långt; men alla har hela tiden något att göra. Det enda som sätter gränsen är när läraren vill byta övning eller kursen tar slut.

      Sedan finns det alltid elever som har svårt att komma igång, som inte riktigt hittar motivationen. Även med spel. Men jag tror att problemet blir mindre än om man kör algoritmlösning och mattetal.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.