Spring til sidens indholdSpring til sidens menuSpring til sidens bund• Top
• Indhold

Forstå computerprogrammering med Scratch

Resumé

Af Søren Holmberg, projektleder, Web 2.0-konsulent
06/08 2008

 

Scratch er et programmeringsværktøj udviklet af MIT, Massachusetts Institute of Technology, et af verdens førende tekniske universiteter. Formålet med værktøjet er at gøre det muligt for alle, uanset forkundskaber, at lære at programmere.

 

I stedet for en tyk kodebog med en masse instrukser og mange timers læring inden den første linje programkode kan skrives, er det tanken, at programmeringsværktøjet Scratch skal være lige så nemt at gå til som legoklodser.

 

Scratch er gratis at hente, og der er ingen brugerregistrering, eller andre ting der skal udføres, før man downloader softwaren. Man går blot til webstedet, hvor der allerøverst på forsiden findes en boks, der hedder Download Scratch.

Nemt for børn at gå til

Programmet er særlig egnet til at give børn - allerede fra 4.-5. klasse - en forståelse for, hvordan computerprogrammer generelt virker, og hvad der skal til for at skabe et computerprogram.

Scratch er bygget op, så man nemt kan komme i gang og undgå en masse programmeringsfejl. Det er perfekt til børns uimponerede og intuitive måde at lære på. Det er muligt at pille ved alle elementer og facetter af programmet og få det til at virke på mange forskellige måder, og fra Scratch website er der tusindvis af projekter, som man kvit og frit kan hente og lave om på. Du behøver derfor ikke som underviser at sætte dig ned og lave programmer fra grunden, som dine elever så kan bygge videre på. På Scratch websted er det muligt at udvælge efter kategori og få vist, hvilke programmer, der er relevante.

Part 1

Nyhedsbrev

Modtag Designværkstedets nyhedsbrev



Artikler af

Søren Holmberg
 (28/11 2007)

Før du går i gang

Inden du læser resten af artiklen er det en god idé at downloade Scratch og installere det på din computer. Download eventuelt også den tilhørende zipfil med programmeringseksemplerne fra artiklen. Linket finder du til sidst i denne artikel.

Inden vi rigtig tager fat, er det også en god idé lige at se den video Scratch- teamet har lagt ud på Youtube. Den er på engelsk men er alligevel velegnet til også at give børn en fornemmelse af, hvad Scratch er og kan.

Brugergrænsefladen i Scratch

Programmet Scratch, og de programmer man laver i det, virker både til pc og Mac. Det er derfor anvendeligt på langt de fleste skoler, da det fungerer ens på begge platforme.

Scratch er tilmed versioneret på dansk. Så lad os starte med at sætte sproget til dansk. Det gøres ved at vælge Language-knappen. Her fremkommer en menu med sprog.

Menu for sprogvalg i Scratchprogrammet …
 

Scripts
Som du vil kunne se, er der øverst til venstre i vinduet en række bokse med forskellige farver. De repræsenterer alle de områder, du kan arbejde med i dit Scratch-program. Boksene indeholder en masse byggeklodser, der er udformet, så de passer sammen i et bestemt mønster – det er dem, der skaber syntaksen, dvs. rækkefølgen af handlinger, i programmet. Disse byggeklodser trækker du ind under fanebladet Scripts, som du finder øverst midt i Scratch-programvindue. Når du trækker klodserne ind i Script-området skabes programmet, og du kan ved at trykke på det grønne flag til højre i programvinduet løbende se resultatet af din programmering.

Sprites
Byggeklodserne bestemmer, hvordan dine såkaldte sprites skal opføre sig og se ud. Sprites er et andet ord for de objekter, som befinder sig i det nederste højre hjørne af programvinduet. Som standard er der her en lille kat, når du laver et nyt Scratch-program.
Sprites kan også indeholde scripts. Det er scripts, som får spriten til at gøre bestemte ting. I det første eksempel er katten fyldt op med selve koden, der får programmet til at lave de tilfældige matematiske udsagn, som den der bruger programmet så skal tage stilling til. Det kommer vi tilbage til. Du kan under hver Sprite se, hvor mange scripts den indeholder.

Scene
Ikke overraskende er det her, det hele sker. Scenen kan også indeholde scripts. Når du laver et nyt program, er der en standardscene, som er placeret lige ved siden af Sprites nederst til højre i skærmen.
Du kan se selve Scenen, som det store hvide ”lærred” lige ovenover. Det er her, du løbende vil kunne se resultatet, mens du programmerer.
En scene kan have forskellige baggrunde. Du kan redigere i en baggrund ved at klikke på fanen Baggrunde lige ved siden af Scripts-fanen. Du kan importere billedfiler men også tegne direkte i Scratch, som gjort på billedet herunder.

Billededitor i Scratch
 

Programeksempel: Plat eller Krone

Det er ikke svært at komme i gang med at bruge Scratch. Selv med meget få virkemidler er det muligt at lave sit eget lille program.

Dette eksempel kan anvendes til elever ned til i 4.-5. klasse, da det kun indeholder én enkelt syntaks.

Vi arbejder her med muligheden for, at en sprite kan have flere forskellige udtryk. Udtryk er i virkeligheden et andet ord for udseende. Du kan med andre ord have en sprite, der skifter udseende, alt efter hvilke kommandoer du giver den.

Arbejdsgangen er sådan her:

1) Begynd med at åbne programmet coin flip.sb i Scratch. Du dobbeltklikker blot på filen, eller hvis du har Scratch kørende, vælger du åbn.

Scratch

Her er hvad du ser, når du har åbnet Scratch og filen coin flip.sb.

Klik på billede for at se en større version.

Vælg Sprite1 og betragt, hvordan de klodser der fremkommer under fanen Scripts i midten af programvinduet, er dem der danner programmets syntaks (handlemønster). Vælg herefter fanen Udtryk ved siden af fanen Scripts.

Betragt hvordan de 19 forskellige tegninger er lavet. De giver tilsammen et billede af, at mønten rent faktisk flipper, når man trykker på den.

2) Vælg igen fanen Scripts. Du vil lægge mærke til, at den første klods i syntaksen er det grønne flag. Når du trykker på det grønne flag, skifter mønten udseende til costume1, som er den tegning, hvor der står ”click to flip” på mønten. Samtidig sættes 2 variabler til nul, nemlig flipped og h/t? Den første variabel afgør, hvorvidt mønten flipper, eller om den har været flippet. Den sidste er den variabel, der fortæller hvilken side af mønten, der kom øverst. Når man klikker på mønten, aktiveres det næste script. Endnu en gang sættes h/t? til nul, i det tilfælde at mønten tidligere har været flippet, som f.eks. hvis man lavede bedst af 3.

3) Derefter skifter mønten udseende til costume1. Det gør selvfølgelig kun en visuel forskel, hvis man allerede har flippet mønten én gang.

Herefter gentages én sløjfe 7 gange og den næste sløjfe 9 gange, hvori der ventes 25/100 af et sekund, inden der skiftes til næste udtryk. Det skaber en animation, der illuderer, at mønten kommer op i luften og lander igen. De 7 og 9 gange animationen skifter, svarer til det antal udseender, der er tegnet til mønten, når den bevæger sig hhv. op og ned i luften.

4) Herefter sættes variablen h/t? til et tilfældigt tal mellem 1 og 2.

Hvis tallet er 1, skifter mønten udseende til costume18 og med 2 til costume19. Disse to udseender indeholder hhv. en tegning, der viser mønten som plat, og en der viser mønten som krone.

En kat du kan regne med – et programeksempel

Math Cat er et program der kort og godt går ud på, at brugeren skal tage stilling til et matematisk udsagns rigtighed. Man får point for hvert rigtigt svar.
Programmet her er lidt mere avanceret end det foregående eksempel, og det kan derfor være en fordel at have prøvet det øverste eksempel først eller have kigget på andre programeksempler fra Scratch websted. Det egner sig godt til at styrke børns lyst til at lære matematik og logik, da det giver dem mulighed for at designe deres egen regnequiz. Eksemplet kan nemt tilpasses, så det ikke blot er gangestykker, men også inkluderer division og almindelige plus- og minus-stykker.

Følgende gennemgang giver bedst mening, hvis du sidder med programmet foran dig, mens du læser.

Fra den zip-fil du brugte til forrige eksempel, og som du finder link til sidst i denne artikel, skal du nu finde filen Math Cat's Multiplication.sb og åbne den. Vælg den sprite der hedder Math Cat. Den indeholder hovedscriptet i programmet.

1) Indsæt grønt startflag. Ved at indsætte klodsen med det grønne flag sikrer du, at programmet altid kan startes af brugeren. I eksemplet her sætter det grønne flag to variabler: En der angiver, hvor mange korrekte gæt brugeren har haft, og en der viser, hvor mange forsøg, man har brugt.

2) Design variabler. Du kan designe variabler ved at vælge Variabler øverst til venstre og herefter vælge Lav en ny variabel. Variablen indeholder to klodser. En der øger værdien af variablen med det antal man angiver, og en der sætter variablen til nul. Fluebenet ud for variablen angiver, om den er synlig for brugeren, eller om det er en usynlig variabel, som kun bruges af programmet selv. Derefter startes en sløjfe, der gentager nogle handlinger for evigt - altså indtil programmet sluttes.

Først sættes de to variabler guessperiod og trueorfalse til 0. Disse to variabler bruges til at afgøre, om brugeren er ved at gætte et svar, eller om brugeren har afgivet et svar.

3) Derefter siger katten; Set the equasion! Så sender de to næste klodser besked om, at der skal skabes et regnestykke og et muligt svar. Disse beskeder sendes til en syntaks, som ligger i selve scenen. Du skal derfor nu klikke på Scene i boksen nederst til højre i skærmbilledet.

4) Her er to scripts. Det ene ”lytter” efter beskeden Set equasion, og det andet lytter efter Set possible answer. I Set equasion vælger du to tilfældige tal, som hver tildeles variablerne number1 og number2. Det er de to tal, som står på hver sin side af gangetegnet i scenen.

Set possible answer vælger et tilfældigt tal mellem 1 og 400. Derudover sætter den variablen Set guessed answer til number1 gange number2 plus en tilfældighed mellem -1 og 1.

5) Nu skal vi tilbage til spriten Math Cat. Klik på denne for at få dens syntaks frem under fanen Scripts. Du sætter variablen guessperiod til 1 og katten til at sige Guess.

6) Herefter sætter du programmet til at vente, indtil trueorfalse ikke længere er nul. Trueorfals-variablen bliver ændret med en syntaks, som ligger i henholdsvis true og false-knapperne. Det er de to knapper, brugeren trykker på for at vælge, om det angivne regnestykke er sandt eller falsk. Du kan se denne syntaks ved at klikke på knapperne nederst til højre i skærmbilledet. Når brugeren har klikket på en af de to knapper true eller false, ændres variablen attempted med 1, fordi man nu har brugt et forsøg. Derudover sættes guessperiod igen til nul, fordi brugeren nu har afsluttet sit gæt.

7) Herefter skal det afgøres, om det gæt brugeren har foretaget er korrekt. Der indsættes derfor en ”hvis. ellers.” (på engelsk if/else), som afspejler, at der skal ske nogle forskellige handlinger ud fra, om det afgivne svar var korrekt eller ej. Hvis trueorfalse-variablen var sat til 1, altså at brugeren havde klikket på true, og regnestykket var sandt - dvs. at variablerne number1 ganget med number2 er lig variablen guessed answer - så ændres variablen correct med 1, og øverst til venstre i scenen vil brugeren få tilføjet et point for et rigtigt svar.

Hvis brugeren gætter på, at svaret er falsk, altså at værdien i trueorfalse er sat til -1, fordi brugeren har klikket på false, indsættes der en ny, hvis/ellers. Hvis det er korrekt, at regnestykket er forkert, tilføjes brugeren et point og hele sløjfen startes forfra.

Hvis brugeren har gættet forkert, siger katten, sorry incorrect, og sløjfen startes forfra.

Del dine programmer med hele verden

Når du har programmeret i Scratch, kan du dele dit program med alle andre Scratch-brugere. Det kræver blot et login til websitet, som er angivet sidst i denne artikel.

Har du ikke allerede et login, kan du nemt lave et direkte fra Scratch. Du trykker blot på knappen Udgiv! øverst i menulinjen i Scratch, og så udfylder du simple informationer om dit projekt. Derefter kommer de til syne på Scratch websted, og alle andre brugere kan frit downloade dit projekt og arbejde videre på det.

Udgiv på Scratchs websted
 

Perspektiv i undervisningssammenhæng

Scratch duer ikke alene til at lave matematikprogrammer eller programmer, der kan afgøre, hvem der må være førstevælger i fodbold. Programmet sætter næsten ingen begrænsninger for, hvad man kan lave.

I denne begynderguide har vi ikke taget fat på to andre væsentlige ting ved Scratch, nemlig sansning og penne-værktøjerne. Disse to værktøjer gør det muligt at skabe programmer, der modtager mange forskellige input fra brugerne, og skabe endnu mere spændende oplevelser.

Det væsentlige er, at du ikke kan gøre noget forkert. Der er ikke mulighed for at ødelægge en masse ved at komme til at fjerne en forkert klods.
Det er også derfor Scratch egner sig så godt til den måde børn arbejder og lærer naturligt på, nemlig ved at prøve sig frem. Opbygningen med farvede klodser til scripts gør det nemt og logisk at forstå, hvad det er der sker, når programmet afvikles, og det at man kan se resultatet med det samme, gør at børnenes tålmodighed ikke bliver testet over evne, men at de hurtigt kan se, om det de har gjort er rigtigt, eller om de skal ændre noget.

Til slut vil jeg anbefale, at man som underviser kigger på en række af de tusindvis af gratis eksempler, der ligger på Scratch websted. Eksemplerne kan nemt ”pilles fra hinanden”, således at børnene kan få opgaver, der går på at fylde de manglende klodser i scriptet for at få programmet til at køre rigtigt.

Man kunne også give børnene en bestemt opgave. For eksempel lave et program, der får katten til at danse, et program hvor katten skifter farve osv. Mulighederne er mange, og det er i princippet kun underviserens og børnenes egen fantasi, der sætter grænserne.

Litteratur & links

Herfra kan man hente programmet:
http://scratch.mit.edu.

Scratch-teamets video på Youtube:
[www.youtube.com/watch?v=#174D95].

Login til Scratch. Når du er logget ind, har du adgang til andre brugeres Scratch-programmer:
http://scratch.mit.edu/channel/recent.

Download programeksempler brugt i artiklen:
http://sorenholmberg.wordpress.com/2008/01/04/scratch-download/.

Fortæl os, hvad du syntes om artiklen

Indhold

Længde

Teknik

Afsenderinformation
(skal udfyldes)