Programmering for skolebørn: Næste skridt efter Scratch er svært

Der er ingen helt glidende overgang fra de første skridt ud i programmering med blokke i Scratch til fuld kodeskrivning i Python eller Javascript.

Der bliver sandsynligvis behov for mange flere, som kan arbejde med softwareudvikling. Ifølge brancheorganisationer og virksomheder er der allerede nu mangel på softwareudviklere, og det har flere gange fået rejst debatten om, hvorvidt børn skal undervises i programmering.

Men det kan være en opgave, som er vanskelig at løfte.

I hvert fald hvis man gerne vil give mere end blot de allermest motiverede elever en introduktion, der rækker ud over programmering af små spil med det populære værktøj Scratch.

Scratch er udviklet af MIT og er beregnet til at lære børn og andre nybegyndere de grundlæggende principper i programmering med logik og løkker.

Programmeringen sker ved at sammensætte blokke af logik til et program, og eleverne skal altså ikke skrive koden selv, men i første omgang blot lære, hvordan et program skal konstrueres.

»Vi har lavet et forløb for 5. klasser her på skolen - altså for elever, der er cirka 11 år gamle. Vi bruger hovedsageligt Scratch, da det er nemt at bruge og efterhånden supporterer mange ting,« siger lærer og uddannet ingeniør Søren Svendstorp Lund fra Øster Farimagsgade Skole.

Arduino sætter barren højt

Han kan trække på sin ingeniørbaggrund med erfaring fra assembler, Fortran og Turbopascal i undervisningen, fordi han derfor har forståelsen for programmering, selvom det ikke er de mest anvendte sprog i dag.

»Vi har også brugt Arduino, som bruger en simpel form af C++. Her er barren sat meget højt, men jeg har hørt, at der er lavet en compiler til Scratch, som understøtter Arduino,« siger Søren Svendstorp Lund.

Læs også: Ny Lego-robot skal introducere børn til programmering - med pruttelyde

En af de store udfordringer er, hvad eleverne kan gå videre til, hvis de vil prøve kræfter med noget, der ikke er baseret på blokprogrammering.

Men hvor Scratch er teknologineutralt i den forstand, at det handler om at lære, hvad en IF-betingelse eller FOR-løkke er, så er det sværere at undgå specielle fortolkninger af programmeringsstil med selv de mest simple programmeringssprog.

»Opgaven i folkeskolen er at vise ungerne, at man kan være kreativ med teknik og software, ikke at lære dem at kode i et bestemt sprog. Det må andre tage sig af,« siger Søren Svendstorp Lund.

Kreativitet fremfor kode

Den indstilling deler Henrik Guldbrandt, som er lærer på Skibet Skole i Vejle:

»Jeg går mere efter, at eleverne skal lære at være kreative med computeren, end at programmere. Vi har for eksempel også prøvet at lave hjemmesider med Wix,« siger Henrik Guldbrandt.

Både Henrik Guldbrandt og Søren Svendstorp Lund har også været i kontakt med Coding Class, som er et initiativ fra It-Branchen, hvor fagfolk er gæsteundervisere på skolerne for at give eleverne en introduktion. Men det format har sine begrænsninger.

»Vi havde et par gæstelærere ude, som underviste i web og Javascript. Det syntes eleverne var svært, og så tænder det dem ikke så meget,« forklarer Henrik Guldbrandt.

Coding Class er tænkt som en introduktion, men det kan være vanskeligt for lærerne at følge op på forløbet, da lærerne ikke er uddannet til at undervise i eksempelvis Javascript og dermed ikke kan gøre meget for at holde eleverne til ilden eller hjælpe dem videre.

»Som lærer skal man også have forudsætningerne på plads ud over interessen. De seks timer, de havde med et par eksperter var ikke nok til at få tændt eleverne. Hvis jeg skulle lære dem Javascript eller Python, så skulle jeg selv kunne det, og det kan jeg ikke,« siger Henrik Guldbrandt.

Coding Pirates starter med spil

Folkeskolen er ikke det eneste sted, hvor børn kan få en introduktion til programmering. De frivillige undervisere i Coding Pirates har gennem de senere år oprettet kurser i mange kommuner, og der er lige nu mere end 2.000 på venteliste.

Coding Pirates bruger også Scratch som det første trin, men derefter er det lidt forskelligt, hvad der fungerer bedst for børnene.

»De første ting laver vi med Scratch. Det er det nemmeste at komme i gang med, og de får øjeblikkelig feedback,« fortæller datalogistuderende Benjamin Rotendahl, som gennem tre år har været frivillig i Coding Pirates.

Når børnene har lavet de første ting i Scratch, så kan de eksempelvis prøve kræfter med mere tekstbaseret kodning ved hjælp af Javascript-biblioteket Processing, som er enklere end komplet kodning i Javascript, men er mere udfordrende end Scratch.

»Det er godt, hvis man synes, Scratch er nemt. Man kan lave nogle simple spil, som ser fede ud,« siger Benjamin Rotendahl.

Et andet værktøj er Game Maker, som ligesom Scratch også hovedsageligt består af blokprogrammering, men suppleret med tekstkodning, og det er samtidig en introduktion til en objektorienteret tankegang.

Unity ikke beregnet til at lære af

Til gengæld er to af de værktøjer, som man ofte ser anbefalet til de mere øvede børn, Unity og webprogrammering, ikke noget, der har givet gode erfaringer.

»Unity er ikke så godt som mellemtrin. Det tager lang tid at lære. Hvis man kan finde ud af det, så sætter man pris på det, men ellers bliver det til ren magi, hvordan man eksempelvis holder styr på objektreferencer. Der kan virkelig komme noget slamkode ud af det,« siger Benjamin Rotendahl.

Unity bruges til spiludvikling, og er egentlig ikke decideret rettet mod nybegyndere, men kan bruges til både de helt enkle og de mest avancerede spil. Det betyder også, at Unity ikke er beregnet til at være et pædagogisk værktøj, men et arbejdsredskab, som forudsætter en vis viden og forståelse.

»Vi har også kørt lidt webudvikling med nogle få hold. Hos nogle af børnene falder det i god jord, men for mange føles det lidt som at skulle lave en dansk stil,« siger Benjamin Rotendahl.

Webudvikling med HTML, CSS og Javascript anbefales ofte til begyndere, fordi værktøjerne er frit tilgængelige, og der kan komme et synligt resultat ud af det. Ulempen er, at det kræver meget arbejde med layoutet i HTML og CSS for at nå frem til noget, der ser professionelt ud.

Algoritmik i første time

Mens børnene oftest bliver introduceret til programmering med spil, så har Benjamin Rotendahl også været frivillig i universitetets gymnasietjeneste. Til de unge i gymnasiet er det nemmere at gå ind i mere klassisk tekstbaseret programmering.

»De sidder med nogle problemer i matematikfaget, som er fine, og det behøver ikke være visuelt. Det er sådan et sted, hvor jeg altid får lyst til at hive Python frem, fordi det har en let syntaks i forhold til for eksempel Javascript,« siger Benjamin Rotendahl.

Han anbefaler at holde sig inden for funktionel programmering i begyndelsen, fordi det er ligger tæt op af, hvad eleverne i forvejen kender fra matematik, og ikke kræver forståelse for begreber som klasser og nedarvning.

»Jeg bruger som regel den første time på ren algoritmik. Det svære er ikke at skrive koden, men at vide hvad den skal gøre. Derfor er algoritmer og flow vigtigt,« siger Benjamin Rotendahl.

På gymnasietrinnet er det også muligt at introducere eleverne til machine learning. Selvom der kan ligge tung matematik bag visse algoritmer inden for machine learning, så er der også andre områder af faget, som er mere ligetil, især for elever som i forvejen sidder med vektorer i matematikfaget.

»Jeg har givet en machine learning-introduktion med at bygge en Perceptron, som kunne bruges til at hjælpe med at diagnosticere brystkræft. Det er godt at vise sådan et eksempel på, hvordan det kan bruges til noget,« siger Benjamin Rotendahl.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (25)
Tommy Mogensen

For mig er næste step efter scratch helt klart Stencyl eller appinventor.

Det er fedt når man starter på scratch da de oplever at de bare forstår det lynhurtigt.
Når de er blevet gode til scratch og de så vil noget mere så bliver det rigtig svært med scratch.
En simpel ting som at lave en mand som hopper naturligt kræver meget tid.

Med Stencyl får de lov til at opleve den samme fede følelse af at man lynhurtigt får lavet noget som virker igen og det giver et programmerings-selvtillid boost.

http://koron.dk/spil4/

Ovenstående kan laves på ca. 2 timer hvis man holder deres fokus.

Appinvetor er noget mere tørt men man kan udvikle apps(ikke godt til spil) til android enheder lidt på samme måde som man arbejder i Stencyl

Hans Schou

Min 13-årige datter har været igennem Scratch, men har ikke rigtigt interesse i det mere. Vi har prøvet med lidt Arduino, og også Scratch+Arduino, men det fængede ikke. Så har hun selv lånt bogen Sådan koder du : lær computerprogrammering trin for trin. Den fortæller om Scratch, Python, HTML og Javascript. Hun lavede straks HTML og Javascript eksemplerne, og jeg spurgte om hun ville lave sin egen hjemmeside selv med HTML. Nej, hun ville bare vide hvad det var og prøve det. Hendes hjemmeside er i øvrigt lavet med Google Sites.

Jeg tror ikke, at hun kommer til at programmere ret meget i sit liv.

Jan Gundtofte-Bruun

[...] jeg spurgte om hun ville lave sin egen hjemmeside selv med HTML. Nej, hun ville bare vide hvad det var og prøve det. [...] Jeg tror ikke, at hun kommer til at programmere ret meget i sit liv.


Men skal hun det (siger jeg, der elsker at programmere)? Der tales så meget om, at vi (i Danmark/vesten) skal "et niveau op" og "bare outsource" kodearbejdet til Billigstan -- det kan man synes om hvad man vil, MEN: en god projektleder ved hvad hun kan forvente af programmører, ikke fordi hun har læst om det i en bog, men fordi hun har prøvet det på egen krop. Og det virker som om at din datter har lige dét mindset. Det er da ikke så dårligt?

Brian Jørgensen

Jeg forstår ikke hvorfor det kun skal være nemt tilgængeligt og slet ikke ligne virkeligheden.
Skal vi så også blot lære vores børn blok tysk, blok fransk, blok fysik og blok idræt, fordi det ikke skal forstås, men man skal blot vide at man kan være kreativ med det?
"Men børnene har ikke interesse i det! og bla bla bla" - Nej selvfølgelig har de ikke det, men det har de så sandelig heller ikke i de andre fag.
Min holdning er at vores børn skal starte fra scratch ikke med Scratch.

Jesper Jepsen

Er det ikke nemt og let fordøjeligt har du 28 unger der selv finder på noget at lave og det er ikke noget der er særlig praktisk. Ungerne og deres forældre er i dag vant til at fanger det ikke de første 10 sek så zapper de vidre og er der ikke resultat/succes inden for meget kort tid så.. videre til noget mere spændende se det er netop virkeligheden. Så det er det lærene er oppe imod og skulle de formaste sig til at kræve noget af ungerne så har de først forældrene på nakken over at der stilles krav til ungerne dernæst politikerne fordi forældrene klager og derefter forskere der råber op i øst og vest uden at vide ret meget om virkeligheden så er det så underligt at lærerne ikke orker at sætte hårdt mod hårdt og kræve noget af ungerne når resten af systemet ikke bakker op?

Ivo Santos

Nu er det så ærligt at Microsoft nedlage Visual Basic, men det jeg syntes er godt med Visual Basic er at man kan lave simple ting ret hurtigt uden at man skal kunne alt for mange avancerede ting.

Det tog ikke mig langt tid at lave et simpelt CD katalog program i det sprog, men jeg var godt nok nødt til at være ultra kreativ da jeg skulle lave en C version.
I Visual Basic er en dynamisk liste sådan set meget nemt at lave og sikkert også i andre sprog, men i C!, så skal man lave det hele fra bunden, sådan lidt i stil med at man selv skal fremstille mursten fra bunden og brænde dem selv bagefter.

Karin Høgh

Der sker altså rigtig meget på dette område - og der er mange programmeringssprog og værktøjer,der kan skydes ind mellem Scratch og Arduino.

Hvis ikke journalisten eller kommentatorerne har hørt om micro:bit så kan jeg fortælle, at det er den med sine mange forskellige programmeringssprog, der satses på i skolerne i dag. Den har været tilgængelig hele skoleåret i Danmark, og både lærere (også ikke ingeniører) og elever (piger såvel som drenge) kaster sig over den.

Der er gratis vejledninger på dansk, og prisen er helt i bund, så barrieren kan ikke komme meget længere ned.

http://podconsult.dk/microbit/BBC_microbit_ebog_it-og-leg.pdf

Jacob Christian Munch-Andersen

Jeg tror at en stor del af det som gør det svært at komme videre er nogle ikke så heldige valg i sproget.

Scratch er designet til at køre langsomt, tilsyneladende udelukkende for at man kan skrive kode som kører i en passende hastighed uden eksplicit hastighedsstyring. Resultatet er at let komplicerede programmer kører for langsomt, og i øvrigt er det helt generelt noget rod at styre hastigheden i sit program. Man har på denne måde slagtet det meste af sprogets praktiske anvendelighed for at undgå en enkelt simpel begynderfejl.

Al kode er knyttet til et visuelt element. I stedet for en global kodestak med mainloop osv. skal man dele sin kode op efter hvilket element den interagerer med. Det bliver til noget klyt som er svært at overskue når man har mange elementer.

Begge dele flytter Scratch længere væk fra gængse programmeringssprog, man når hurtigere til det punkt hvor Scratch ikke er godt nok til ens ambitioner, samtidig med at man har lært en kodestil som ikke duer til andre miljøer.

Jesper Frimann

Så det er det lærene er oppe imod og skulle de formaste sig til at kræve noget af ungerne så har de først forældrene på nakken over at der stilles krav til ungerne dernæst politikerne fordi forældrene klager og derefter forskere der råber op i øst og vest uden at vide ret meget om virkeligheden så er det så underligt at lærerne ikke orker at sætte hårdt mod hårdt og kræve noget af ungerne når resten af systemet ikke bakker op?


Det tror jeg du har ret i. Men det afhænger lidt fra skole til skole. Den skole min den store (7 år) går på må lærerne gerne stille krav til eleverne, og det gør man så også skal jeg hilse at sige, og der er ikke uro i klasserne.

Det jeg har leget lidt med min den store er code.org's Hour of code.

https://code.org/learn

Min den ældste prøvede den første minecraft, da han var sådan omkring 6, og var ret glad for det.

// Jesper

Martin Rytter

Hvis børn skal lære at programmere, så er det ikke bare et spørgsmål om, at de skal præsenteres for den rette teknologi (Scratch, Basic, whatever).

Det er min påstand, at det er langt vigtigere, at de møder en voksen, som ved noget om at programmere, og som kan være inspirationskilde. Denne voksen kan være en lærer i folkeskolen, men de er nok desværre forholdsvist sjældne (nej, det er på ingen måde ment som en kritik af lærerne!). Det kan også en voksen derhjemme, i fritidsklubben eller et helt andet sted.

Jeg tror ikke det er klogt bare sådan uden videre at beslutte, at nu skal alle børn lære at programmere i folkeskolen. Hvis man alligevel tager en beslutning om at lave et fag for alle, så risikerer man, at en masse børn kommer til at have programmering på skoleskemaet, uden at de lærer noget særligt af det. Det bliver let hop og leg uden noget klart formål.

Vil man lære alle børn i folkeskolen at programmere, så må man enten se på massiv efteruddannelse af lærere, eller også må man finde nogle folk udefra. Jeg er ikke sikker på, at nogle af disse muligheder er realistiske. Derfor er jeg nok mest tilhænger af, at man giver så meget frihed som muligt til skolerne, så der er plads til at man kan oprette valgfag i programmering på de skoler, hvor man prioriterer det her område, og hvor man har de rette folk at undervise og inspirere. Og så vil jeg naturligvis opfordre til, at forældre med teknologiinteresserede børn sørger for, at deres børn for lært at programmere på den ene eller den anden måde.

Jesper Frimann

Hvis børn skal lære at programmere, så er det ikke bare et spørgsmål om, at de skal præsenteres for den rette teknologi (Scratch, Basic, whatever).

Enig. Selv om de da så absolut kan bruges til at 'fange interessen'. Jeg mener også, at man er nødt til at se på matematik faget, således at man kan få noget af det matematik ind lidt tidligere, som er prereq. for at kunne lave basal programmering.

// Jesper

Chris Bagge

Jeg er aktiv i idrætslivet. Her har en af vores ældre medlemmer, der i sit erhvervsliv var aktiv i undervisning udtrykt: "Man skal brænde for en sag for at tænde en glød". Derfor ser jeg spørgsmålet hvordan vi får nogen der brænder for "programmering" til at opnå undervisningskompetencer og involvere sig, eller at få nogle lærere til at være mere engagerede i faget.

Der er brug for mange der kan det, men det betyder ikke at alle ska kunne det. Det er ikke alle der har evner til det lige som det også kun er en mindre del der har fornemmelse for matematik. Begge dele er abstrakte.

Herudover vil der være nok stadig være nogle store trin i læringen der skal overvindes. Det vigtigste er nok at de unge får en hurtig tilbagemelding på deres læring.

Morten Walsted

Hvis man slipper forestillingen om, at alle skal lære at kode og i stedet fokuserer på, at motivere til at skabe - så findes løsningen derude.

Hvis børn og unge motiveres til at skabe digitale produktioner, så vil de selv finde motivationen til at lære at kode når de oplever behovet for at kunne netop det. Her kan netop Unity anvendes. Det er ikke værktøjet, der dikterer om det kan anvendes. Det er selve anvendelsen af værktøjet, der betyder noget.

Jeg har, sammen med andre specialister, undervist over 2000 børn og unge i både grundskoler, efterskoler, ungdomsskoler og på gymnasiale uddannelser de sidste par år, og Unity har fungeret super godt til at opnå denne motivation for de unge.

Hvis de er motiverede, er der ingen grænser for, hvad vores unge mennesker kan lære.

Jesper Frimann

Hvis de er motiverede, er der ingen grænser for, hvad vores unge mennesker kan lære.


Jo, men igen så er der jo et fundament, der skal være i orden.
Med den argumentation kan du jo bare læse en vildt god bog højt for børn i 0'te klasse og så lærere de sig selv at læse og skrive.

IT er så stor en del af den verden vi lever i, at man bare er nødt til at kunne nogle grundlæggende ting om 'Hvordan Virker Det Faktisk'. Det kan godt være at vi ikke alle skal være Fysikere, Kemikere, Biologer, Litteratur forskere mm. men derfor er det jo en god ide at vi har et fundament, en dannelse.

Og det at have et PC kørekort til Window10 eller Mac er bare ikke dannelse. Det at kunne klick klick, drop drag, Så hvis du putter en IT dannelse på din entusiasme og motivations agenda. Så er jeg enig.

// Jesper

Scott Hill

Ja, det er længe siden at Danmark var kendt for programmeringssprog COMAL-80 og "skildpaddesprog" for at lære børn at programmere. Idag kan f.eks. LEGO's Mindstorm Robotter prorammeres med Mic´rost Visual Studio, men det kræver at man kan C++/Java7 J++ el. anden højniveausprog. Arduino can olgså emulere Windows 10 core services, og der er flere muligheder for at programmere bade Arduino og Raspberry PI uden at være expert I højniveau sprog.

Derfor har jeg forslået til CodingPirates at de indfører en Robot og IOT programmering forløb for lidt ældre børn som vil gerne lære en simple programmeringsprog for Robbotter og "dimser"

Log ind eller Opret konto for at kommentere
Pressemeddelelser

Welcome to the Cloud Integration Enablement Day (Bring your own laptop)

On this track, we will give you the chance to become a "Cloud First" data integration specialist.
15. nov 2017

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 2017

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017