Programmeringsundervisning i skolor med webbaserad konstprogrammering

 

Dagens barn och ungdomar är flitiga användare av datorer, smarta mobiler och surfplattor. De är duktiga på att använda tekniken men har begränsad kunskap om hur det fungerar ”under huven”. För att bli bättre teknikanvändare, men framförallt för att kunna bli framtidens teknikproducenter, förespråkar nu många att barn och ungdomar bör lära sig att programmera. I Sveriges tas nu många initiativ till ”coder dojos” där frivilliga personer eller organisationer bjuder in barn att under handledning få prova på programmering. En del teknikkunniga föräldrar hjälper också sina barn att utforska programmering hemma. Ett sätt att nå fler barn är att introducera programmering i skolan.

Det saknas dock kunskap om vad barn lär sig genom olika insatser och hur det påverkar deras intresse och attityd till att lära sig programmera samt hur man bästa ska utvärdera detta. I detta projekt har vi undersökt hur vilka metoder som kan användas för att undersöka vad barnen lär sig om datorprogram och programmering och om deras intresse för och attityd till programmering ändras när de får programmera.

Vi utgick ifrån konstprogrammering, dvs bildskapande med kod, då vi tror att det är en bra bas för introduktion till programmering. Ett skäl är persistensen i bilden. Programmet får en fysisk form som kan skrivas ut och finns kvar även när strömmen är avstängd. Ett annat är att barn och ungdomar ägnar mycket tid åt att skapa bilder på olika sätt och att de flesta har stor vana vid att måla. En annan fördel är att bildskapande med kod utgår ifrån kompakta program som ger ett ”riktigt” resultat med väldigt få rader kod. Ytterligare ett skäl är att bildskapande med kod även kan göras med mycket avancerad programmering och därmed låta intresserade utforska mer komplicerade programmeringssätt. Slutligen är procedurell generering av grafiska element en viktig del i vår produktion av t ex spel, filmer och snart alla ingenjörsämnen samt arkitektur och design.

Projektet bygger på konstprogrammeringsspråket Processing, som utvecklats på MIT för introduktion till programmering. Det är en vanligt förekommande plattform för bildskapande med kod och det finns stora mängder kod tillgängligt t.ex. via tjänster som openprocessing.org. Koden kan köras i många olika fria tjänster för webbaserad utveckling via processing.js och kräver ingen installation av lärare eller elever. Vi använde och anpassade en befintlig plattform som finns vid Institutionen för Datavetenskap vid Linköpings universitet. codeart.ida.liu.se körs i en browser och är öppen för vem som helst att använda.

Vi använde enkäter, observation och fokusgruppsintervjuer för att undersöka attityd och syn på egenförmåga att lära sig programmera, samt kunskapstest som dels bestod i ett digitalt skriftligt prov bestående av fritext och flervalsfrågor, dels som en fri uppgift där eleverna skulle skriva helt ny kod utan att utgå ifrån ett exempel.

Programmeringsundervisningen och undersökningen genomfördes i två klasser i åk6 om totalt 65 elever. Enkätundersökningen visade att överlag är det fler positiva än negativa elever och i snitt är killar lite mer positiva än tjejer. Om man jämför de som aldrig provat på att programmera förut men de som provat på lite är snittet för attityden 3,92 (lite positiv) för de som provat på, och 3,19 (neutral) för de som inte provat innan. Elevernas syn på sin egenförmåga att lära sig programmera undersöktes och killarna hade i medel 2,89 (nära neutral) och tjejerna 2,56 (mellan lite svag och neutral). Överlag är det fler elever som har svag än stark syn på sin egenförmåga och det är fler killar som har stark syn på sin egenförmåga än tjejer. Om man tittar på gruppen som har provat på programmering tidigare så är de i medelvärde 3,1 jämfört med 2,55 för de som ej provat innan. En större andel (7 av 13) av de som har provat på tidigare har stark egenförmåga jämfört med (7 av 41) av de som ej provat på.

Intervjuer med eleverna visade också att egenförmågan varierar beroende på attitydstillhörighet. De med negativ attityd uppgav att de glömt bort det mesta och trodde att de skulle glömma bort det igen även om de lärde sig mer. De tror dock att det går att lära sig mer programmering och att det troligtvis blir lite lättare när de väl kommer in det, men att lära sig skriva avancerad kod upplever de ligga alldeles för långt bort för deras förmåga. De med positiv attityd till programmering tror sig kunna bli riktigt bra på att programmera och kanske till och med skriva avancerad kod i framtiden förutsatt att de får öva mer.

Enkätfrågorna som undersökte vad eleverna kunde om programmering och vad datorprogram är visade på en markant ökning när det gäller förståelse för vad programmering är efter att de haft 3 undervisningstillfällen. Detta tycks vara både positivt och negativt, bra i den meningen att fler förstår vad programmering är men dåligt eftersom intervjuerna visade att många var besvikna. Nedan följer några citat från intervjuerna med de som hade negativ attityd till programmering:

”Asså typ mer action eller vad man ska säga.”
”Jag förväntade mig inte siffror.”
”Jag visste att det fanns något som hette programmera. Men jag trodde inte att det var såhär.”

Det som framhölls som negativt med att lära sig programmera var främst att det var komplicerat, långtråkigt och svårt att veta hur man ska göra. Det som framhölls som positivt var främst att kunna göra animeringar och många andra saker samt färgläggning.

Oavsett attitydtillhörelse, hade alla elever en positiv syn på programmering i framtiden och tycker att det är viktigt att folk lär sig det, även om de med negativ attityd inte nödvändigtvis anser att de själva behöver göra det.

”Jag tror det kan vara viktigt faktiskt eftersom, som jag sade förut, datorer och iPads, teknologi liksom, det är väl viktigt för alla kommer att använda det och det kommer användas mer och mer medan tiden går för det utvecklas hela tiden.”
”För programmeringen har ju utvecklats nu på senaste tiden så den stoppar väl inte så man kan ju behöva veta mer om det.”
”Vet man hur man gör kan det vara väldigt viktigt men det är också väldigt svårt.”

Majoriteten av deltagarna i fokusgrupperna, med undantag för några, tycktes nå en konsensus om att programmering bör vara ett valfritt ämne i skolan, liknande elevens val, men att de ändå ska finnas där. Från en litteraturstudie framkom fyra viktiga aspekter som också stämmer med våra observationer. Den första är att det är viktigt med låga trösklar, detta för att stärk elevens syn på egenförmåga och tro på att kunna lära sig programmera. Det andra är att fokusera på konceptuell förståelse framför syntax, något som speglas i att det nu finns flera projekt som undersöker att lära ut ”Computational thinking” som en grund snarare än programmering i sig. Det tredje är att ha tillgång till bra lärmiljöer/lärplattformar, som t ex erbjuder visualisering, metaforer, förenklad syntax, hjälp och tips. Den fjärde är att det kan vara bättre att börja i låga årskurser då synen på den egna förmågan grundas tidigt och kan bli ett hinder för de som ser sig själva som dåliga på detta.

Projektet genomfördes av Annika Silvervarg vid Linköpings universitet.