Programmering med Scratch

Scratch er et grafisk programmeringssprog, som kan bruges til at lave sprite-baserede spil. Spillets program bygges op vha. af prædefinerede blokke, som samles ved at trække dem over på et tegnebræt vha. musen.

Eksempel på Scratch programstump

Konceptuelt minder det lidt om Lego, i den forstand at man med forholdsvis få forskellige brikker kan bygge næsten hvad som helst, helt op til ens egen fantasi.

Vi valgte at indroducere det på skolen dels for at give børnene en introduktion til programmering, dels for at skabe en kontekst for spændende og vedrørende matematik-, teknik- og naturvidenskabsundervisning. Grundlæggende drejer programmering sig om modellering, og dermed forståelse af hvordan tingene i verden hænger sammen.

Og det må siges at virke. Dels fastholder det børnenes opmærksomhed længe ad gangen og over flere dage. Dels får de meget hurtigt en fornemmelse for grundlæggende programmeringskoncepter såsom løkker og if-udtryk, og i nogen grad flertrådet programmering. Derudover er der i selve det at skulle tegne/ændre sprites, finde, åbne og lukke filer en del læring også.

Programmeringen lægger op til et væld af tværfaglige læringsmuligheder. Bl.a. kom vi ind på hastigheder og accelerationer, fik lært en masse engelsk, og læst en masse dansk. Scratch kan nemlig programmeres på en række forskellige sprog.

Scratch-community’et er bygget op på en sådan måde, at det lægger op til, at man deler sine værker. Der er derfor rig mulighed for at lade sig inspirere af andre, sågar “remixe” andres programmer – og børnene introduceres således for denne meget nutidige læringsform.

Børnene har indtil videre udviklet to programmer, Elverpigen og Jeu version 1, som begge er work in progress.

Scratch har også en del begrænsninger, hvoraf visse er deciderede fejl og mangler:

Der er bl.a. fejl i udviklingsprogrammet, så det ikke opfører  som on-line vieweren. Hvis man f.eks. trykker både højre-pil og pil-op, opfører programmet sig som om man vedbliver at trykke på højre-pilen.

Derudover kan det være svært at debug’e, fordi værktøjerne er lidt vel simple. Alt i alt gør de det sværere for børnene at arbejde selvstændigt, og der kræves derfor en del kvalificeret voksendeltagelse for at få et forløb til at køre glat.

Mere konceptuelt er det lidt ærgerligt, at man ikke har inkluderet funktionsbegrebet i sproget. Man kan derfor være nødt til at copy+paste en del kode, med risiko for på den måde at introducere børnene for nogle dårlige vaner.

På den anden side har sprogets udviklere skulle træffe et valg, og valget har så været at holde sproget det enklere. Hvis man vil anvende en mere avanceret version, kan man altid prøve Build Your Own Blocks. Det er dog ikke helt så ligetil at installere og har ikke i samme grad et community tilknyttet.