fredag 13 december 2013

Att lära barn programmera

Intresset för att lära barn programmera verkar vara stort för tillfället (se till exempel NyTeknik, ComputerSweden, Tekniska Museet, Sveriges Radio). Jag och min åttaåriga dotter har ett programmeringsprojekt tillsammans. Vi använder Scratch, ett grattis, webb-baserat programmeringsspråk från MIT. Vi försöker göra ett enkelt SpaceInvaders-spel av klassisk modell.

Språket baseras på sprites, ikoner. Dessa hämtas från ett bibliotek eller laddas upp. Till vårt spel har vi tre sprites: ett monster som anfaller, en stridsvagn som försvarar genom att skjuta tennisbollar.
Varje sprite har ett eller flera script kopplat till sig. Stridsvagnen har tre script: när man trycker ner höger-pil så flyttas vagnen tio steg till höger och vänster-pil ger tio steg till vänster. När man startat spelet (den gröna flaggan) kommer stridsvagnen om den träffas av ett monster att spela ett ljud samt försvinna. Spelet är slut.
Script byggs ihop av förutbestämda pusselbitar av olika typer. Dessa är färgkodade för lättare översikt och går inte heller att bygga ihop hur som helst. Ett script kan startas med en Händelse. Här finns också möjlighet att skicka meddelanden mellan sprites för mer komplicerade händelser. Att göra det är dock inte okomplicerat och flera scripts har krävt ganska mycket testning för att få att fungera.
Bland Kontroll-bitarna finns olika loop-konstruktioner och if-then-else.
Språket stödjer även att man definierar och använder lokala variabler. Monstret har bland annat scriptet nedan. Vi använder variabeln y för att få den typiska nedåtgående rörelsen för den invaderande monster-flottan. Annars är klon-hanteringen (för att få till en hel flotta) en av de delar som ännu inte fungerar i vårt program.
På Scratch-hemsida betonas också andra aspekter av den rådande kulturen inom programmeringsvärlden. Användare uppmuntras att dela sina projekt med andra och att använda andras projekt för att skapa något nytt. På den centrala frågan om huruvida min dotter lär sig programmera av detta har jag ännu inget svar. Hon tycker att det är roligt att hålla på med Scratch och blir väldigt glad när vi löser ett problem och går framåt. Men hur mycket hon skulle klara själv vet jag inte, det är nog bara tiden som kan svara på av vilken nytta detta är.

Inga kommentarer:

Skicka en kommentar