Programmering er på full fart inn i offisielle lærerplaner helt ned på barneskolenivå. Utfordringen er at lærere har lite kunnskap om faget, noe som igjen gjør det vanskelig å lære bort. Dette ønsker forskere ved Høgskolen i Østfold å gjøre noe med.

Forskerne ønsker å lage verktøy som kan gi støtte i programmeringsundervisningen. Fra venstre; høgskolelektor Ann-Charlott Beatrice Amundsen Karlsen, høgskolelektor Tore Marius Akerbæk og førsteamanuensis Susanne Koch Stigberg. Alle jobber ved Institutt for informasjonsteknologi og kommunikasjon ved Høgskolen i Østfold. Foto: HiØ.

I den nylig publisert artikkelen Towards a Metaphor-Based Tangible Toolkit for Learning Programming Concepts viser forskerne fra høgskolen hvordan et sett med metaforer kan egne seg til å forklare grunnleggende konsepter innenfor programmering.

– I en stadig mer digitalisert verden er programmering mer og mer viktig å forstå, sier høgskolelektor Tore Marius Akerbæk.

Programmering er ganske abstrakt og kan derfor være vanskelig å forstå. Forskerne har som mål å finne flere måter å lære programmering på, slik at det blir enklere å begripe hva som faktisk skjer inne i en datamaskin under programmering.

Sammen med høgskolelektor Ann-Charlott Beatrice Amundsen Karlsen og førsteamanuensis Susanne Koch Stigberg ønsket han derfor å lage verktøy som kan gi støtte i programmeringsundervisningen og en bedre forståelse for faget både for de som skal de som skal lære bort og de som skal lære det.

– Vi ønsker at verktøyene vi lager skal bidra til å illustrere det tankesettet du må bruke for å forstå programmering, sier Akerbæk.

Vil gjøre det abstrakte mer konkret

– Målet vårt har vært å utvikle et nytt sett læringsverktøy som består av konkreter, altså fysiske gjenstander som illustrerer et konsept, for å motivere og utforske algoritmisk tankegang, forteller Akerbæk.

KORT FORKLART

Algoritmisk tenkning

Algoritmisk tenkning innebærer å bryte ned komplekse problem til mindre, mer håndterlige delproblemer som lar seg løse. Det inkluderer å organisere og analysere informasjon på en logisk måte og å lage fremgangsmåter (algoritmer) for å komme fram til ønsket løsning. Kilde; Udir.

Programmering

Programmering består av å designe, skrive, teste, feilsøke og vedlikeholde kildekoden til et program som skal tolkes av en datamaskin. Kilde; Wikipedia

De fleste programmeringsspråk, akkurat som andre språk, består av en viss grammatikk. Konseptene kan forstås som grammatiske regler eller som primære strukturer i koding.

– Vi ønsker også å lage konkretene som i seg selv illustrerer og forsterker forståelsen av programmeringskonseptet ved å være modeller av gjenkjennelige ting, sier han.

Og legger til:

– En datamaskin må ha presise kommandoer for å forstå hva vi snakker om. Derfor er det viktig å forstå gramatikken og skrive programmeringsspråk riktig. Og derfor er denne grammatikken ekstra viktig innenfor programmering.

Forskerne ønsker derfor å tilby flere måter å skape forståelse for denne grammatikken på.

Programmering er for mange kjent som «skriving av kode» og er grunnspråket for store deler av kommunikasjonen mennesker gjør med teknologi.

Det finnes flere fysiske verktøy ment for å motivere og utforske programmering og algoritmisk tankegang, eksempelvis LEGO MindBots og små roboter som kan styres via mobilapplikasjoner ala mBot.

– Disse viser seg å fungere fint som motivasjon for å utforske algoritmisk tankegang, men har ikke egenskaper som utvider forståelsen av konseptene i den algoritmiske tankegangen, forklarer høgskolelektoren.

KONSEPTER. Høgskolelektor Ann-Charlott Beatrice Amundsen Karlsen viser frem ett av de mest grunnleggende konseptene i programmering, kalt variabler. De er digitale kontainere som inneholder en verdi. Verdien av kontaineren eller boksen kan endres. Metaforen som gjerne brukes er en presang. Når du får en gave, vet du ikke hva den inneholder. Den må pakkes opp for å finne ut hva som ligger i den. Om du gir en gave, vet du hva den inneholder og er lettere å bruke. Du vet hvem du skal gi den til, hva du trenger for å åpne den osv. Nøyaktig samme prinsipp er det med variabler i programmering. Foto: HiØ.

Fikk hjelp av studenter til å finne de rette verktøyene

For å finne frem til de rette verktøyene som kan brukes til programmering intervjuet forskerne lærere som underviser i programmering.

De arrangerte også workshops med studenter innen IT-utdanning og profesjonelle programmerere.

Gjennom disse tiltakene fikk forskerne samlet et sett metaforer som deltagerne bruker eller har brukt for å forklare konsepter innen programmering.

HiØ-forskerne plukket ut og analyserte datasettet de hadde samlet inn, før de igjen valgte ut et sett metaforer som de mente best egnet seg som konkreter.

Metaforene fungerer som konkrete eksempler for å videreutvikle en fysisk verktøykasse som læringsressurs for programmeringsundervisning. Metaforene er tilpasset fysisk representasjon av grunnleggende programmeringskonsepter.

– Vi mener at dersom de fysiske verktøyene er «like» programmeringskonseptenes egenskaper, vil det øke forståelsen av selve konseptet, sier forskeren.

Kompetansegap som må tettes

Utfordringen i dag er at mange av de som skal undervise i programmering, ikke kan programmering.

– Vi mener undervisere innen programmering vil kunne få god inspirasjon og ideer av resultatene gjennom dette forskningsprosjektet. Og forhåpentligvis fører resultatene til ytterligere utvikling av undervisnings- og læringsverktøy, sier Akerbæk.

Målet er at verktøykassen som utvikles også skal gi inspirasjon til andre forskere som studerer læringsverktøy innen programmering og algoritmisk tankegang.

Skal utvikles videre

Settet med metaforer vil utforskes videre for ytterligere verifisering.

– Vi har gjennomført en pilottest gjennom 3D-simulering av metaforene som ga gode resultater. Nå ser vi frem til å produsere flere prototyper av de fysiske verktøyene og deretter teste de ut på både studenter og lærere, sier Akerbæk.

På bildet ser du en modell fra verktøykassen til forskerne som viser hvordan du innen programmering tar et konkret tall og legger i boksen å dermed få direkte tilbakemelding på hvilke konsepter du da berører og hvordan en kode kan se ut. Foto: HiØ.

Akerbæk forteller at resultatene av ytterligere evaluering vil brukes som grunnlag for «the tangible toolkit»: en endelig og håndgripelig verktøykasse for utforskende læring av programmeringskonsepter.

– Håpet er at vi kan skape noe som ikke har vært skapt før i forhold til læring, og at vi kan gjøre læringshverdagen enklere for mange, avslutter Akerbæk.

Litteraturhenvisninger

Karlsen, Ann-Charlott Beatrice Amundsen; Akerbæk, Tore Marius & Stigberg, Susanne Koch (2022). Towards a Metaphor-Based Tangible Toolkit for Learning Programming Concepts. Lecture Notes in Computer Science(LNCS). ISSN 0302-9743. doi: 10.1007/978-3-031-05657-4_6.