Scratch

Fortbildning för lärare

Introduktion till Scratch

Scratch är ett visuellt programmeringsspråk för barn som utvecklas av forskargruppen Lifelong Kindergarten under MIT Media Lab. Filsofin bakom Scratch inbegriper att användare ska dela med sig av den kod de skapar. De ska kunna studera kod andra gjort och remixa program. För tillfället finns det knappt 14 miljoner registrerade användare, vilket möjliggör ett sådant kunskapsutbyte.

Med ett visuellt programmeringsspråk skapar du program genom att pussla ihop grafiska kodblock på ett sätt som påminner om att bygga LEGO. På detta vis kan barn lära sig den logiska strukturen bakom programmering utan att behöva skriva kod. Utöver Scratch finns det även en mängd andra visuella programmeringsspråk varav Berkelys Snap och Googles Blockly bör nämnas.

Eftersom det är så enkelt att börja programmera med Scratch, kan man utgå från de idéer barnen själva har om vad de vill programmera och ha genomgångar om variabler, loopar, villkorssatser, logik, med mera, i takt med att frågor dyker upp.

Sköldpaddsprogrammering och tickmodellen

De första försöken med att låta barn programmera gjordes på 60-talet av Seymore Papert. Papert skrev om sina ursprungliga pedagogiska idéer och programmeringsspråket LOGO i artikeln Teaching Children Thinking (pdf). Barnen fick skriva korta kommandon som bland annat styrde en mekanisk apparat kallad "sköldpadda", därav namnet sköldpaddsprogrammering.

YouTube: Logo's Yellow Turtle

Skölpaddsprogrammering bygger på kommandona "gå" och "vänd". Genom att undvika koordinatsystem ligger sköldpaddsprogrammering nära barns uppfattning om rörelse och erbjuder en ingång till geometri som skiljer sig från sedvanlig skolmatematk. Om detta skriver Papert i MINDSTORMS Children, Computers and Powerful Ideas (pdf) från 1980.

Den verklighet dagens barn befinner sig i, skiljer sig avsevärt från de förhållanden som rådde då Papert gjorde sina experiment. Enligt Statens Medieråd är debutåldern för internetanvändning 3 år och 27% av alla barn under 2 år spelar spel på digitala apparater (för referens se Ungar & medier 2015). Med utgångspunkt från deras egen erfarenhet av digitala miljöer, vill de flesta barn programmera dataspel som innehåller någon sort rörelse och för den sortens programmering räcker sköldpaddsprogrammering inte till. Vill man programmera händelsestyrd rörelse med sköldpaddsprogrammering, krävs det en hantering av vinklar som de flesta barn inte klarar av. För mer avancerad modellering som gravitation, duger sköldpaddsprogrammering inte alls.

Felaktig fysik - Förslag på nybörjarprogram från Scratchs hemsida.

För att göra en korrekt studs i Scratch, där vinklar mäts i medurs riktning från den positiva y-axeln, ska vinkeln förändras från α till 180°-α vid en studs. Den matematik som behövs för att förstå varför det ska vara på detta vis är emellertid för svår för barn på mellanstadiet.

Infallsvinkeln är lika med reflektionsvinkeln.

För att kunna hantera händelsestyrd rörelse ska vi gå igenom en modell för att programmera rörelse kallad "tickmodellen". Tickmodellen bygger på vektorer istället för vinklar och beskrevs av Andrea diSessa i boken Changing Minds från 2001. Tickmodellen är lätt att överföra från Scratch till programmeringsspråk som inte har kommandona "gå" och "vänd".