Programmering i praksis
Slik kan du kombinere programmering og tverrfaglighet
Fagartikkel: Eksemplene omfatter temaer hvor programmering kan inngå som en naturlig del, og vil forhåpentligvis initiere ideer hos leseren til flere temaer der programmering kan integreres i undervisningen.
Gjennom praktiske øvelser i programmering vil elevene kunne erfare skaperglede og utforskertrang – samtidig som læreplanens mål om tverrfaglighet kan bli en realitet.
Etter innføringen av fagfornyelsen har programmering blitt en del av læreplanmålene i flere fag. I læreplanen (overordnet del) står det også at skolene skal legge til rette for læring innen tverrfaglige temaer.
Jeg ønsker derfor i denne artikkelen å gi noen eksempler på hvordan en kan kombinere programmering og tverrfaglighet. Eksemplene omfatter temaer hvor programmering kan inngå som en naturlig del, og vil forhåpentligvis initiere ideer hos leseren til flere temaer der programmering kan integreres i undervisningen.
Selv om det er matematikkfaget som har fått hovedansvar for programmeringen, kan flere benytte programmering i sitt fag og slik skape nysgjerrighet og undring. Dersom en ikke har programmert før, er nok det mest naturlige å starte opp med blokkprogrammering. Når en har kommet et lite stykke på vei, kan en starte opp med programmering i Python1, som er et tekstbasert språk. Jeg vil lenger nede i artikkelen sammenlikne Scratch2 og Python og se på forskjellen i syntaks mellom de to programspråkene.
En micro:bit er en liten programmerbar enhet som kan programmeres og kan drives av USB-tilkoblingen eller en egen batteripakke. Programmeringen kan gjøres i en simulator som er gratis å bruke.
Det ferdige programmet kan kjøres i simulatoren og kan også lastes ned fysisk på micro:biten via USB-tilkoblingen eller til nettbrettet via bluetooth. Tilgang til simulatoren og andre ressurser finner du på nettstedet microbit.org.
Noen av de viktigste funksjonene til micro:biten er
• display med 25 LED-lys i en matrise på 5*5
• fem porter for sensorer og servoer
• kompass
• akselerometer
• radiosender og mottaker som kan knytte seg til flere micro:biter
• bluetooth
• temperatursensor
Scratch og micro:bit
Blokkprogrammering i Scratch kan gi elevene mange muligheter til å lære grunnleggende programmering. Programmet kan enkelt lastes ned eller kjøres online på de aller fleste digitale enheter, noe som kan bidra til en brukervennlig tilnærming til programmering. Siden språket er visuelt, kan det hjelpe elevene på en annen måte enn ren tekstprogrammering. En bygger opp programmet ved hjelp av ferdigprogrammerte blokker omtrent på samme måte som en setter sammen legoklosser. Når de ulike ferdigprogrammerte blokkene er satt sammen, utføres handlingen.
Les denne! 5 råd for å komme i gang med programmering i skolen
Programmet gir rom for at elevene kan være skapende, kreative og utforskende. Eksempler på hva programmene kan gjøre, er: styre en Lego-robot, utføre matematiske beregninger, visualisere ulike problemstillinger ved hjelp av grafikk med mer. Dette er læringsprosesser som er i tråd med den overordnede delen i læreplanen, der det legges vekt på skaperglede, engasjement og utforskertrang (Udir, 2020).
Når en skal programmere mikroprosessoren micro:bit, gjøres det enklest ved hjelp av ferdigprogrammerte blokker. En kan også gjøre det ved hjelp av JavaScript eller Python, men for de aller flest praktiske tilfeller holder det å sette sammen blokker. I likhet med Scratch er det relativt enkelt å «stable» sammen et program. Utfordringen kan av og til være å finne de ulike blokkene en leter etter. I utgangspunktet er det ikke så lett å se det visuelle av programmet siden en har kun en matrise som består av 25 LED-lamper, men derimot kan en lettere lage små programmer som lar seg bruke i praktiske sammenhenger. Det finnes en del ekstra utstyr, for eksempel servomotorer, som gjør at micro:biten kan styre bevegelser som igjen kan inngå i ulike prosjekter.
Tverrfaglighet med micro:bit
Jeg skal i det følgende gi noen eksempler på hvordan bruk av micro:bit kan bidra til målet om tverrfaglig arbeid slik det kommer til uttrykk i de ulike delene av læreplanen. I læreplanen for naturfag for 4. trinn står følgende mål: «utforske, lage og programmere teknologiske systemer som består av deler som virker sammen», og «utforske observerbare størrelser som fart og temperatur og knytte dem til energi». Videre står det for 7. trinn: «utforske, lage og programmere teknologiske systemer som består av deler som virker sammen», og for 10. trinn: «utforske, forstå og lage teknologiske systemer som består av en sender og en mottaker».
Eksempel: skritteller med muligheter for utvidelse
De aller fleste mobiler har i dag innebygget helseapper som regner ut gjennomsnittsfarten ved for eksempel løping. For å få elevene til å lage sin egen versjon av slike apper, tar jeg utgangspunkt i følgende program som beregner avstanden etter et bestemt antall steg. Vi setter sammen følgende blokker:
Blokkene til venstre i figuren gir beskjed til micro:biten som har et innebygd akselerometer, at når den ristes, så øker variabelen steg med 1. Jeg lager meg variabelen som jeg kaller Antall meter. Når micro:biten ristes, registrerer akselerometeret bevegelsen, og antall skritt økes med 1. For å bestemme tilbakelagt strekning må steglengden tilpasses brukeren. Dersom steglengden for eksempel til en ungdom er 0,6 meter, multipliserer vi antall steg med 0,6. Her kan en prøve seg frem individuelt. Ved at vi bestemmer at når knapp A trykkes, skal antall meter vises på skjermen, har vi laget en avstandsmåler. Med dette som utgangspunkt kan nå programmet vårt utvides. Ved at elevene gis mulighet til å utforske, kan de nå utvide programmet. Utvidingen kan for eksempel være:
• beregne energien brukt på tilbakelagt strekning ved at de henter inn data for energiforbruk ved for eksempel rolig gange eller løping
• beregne gjennomsnittsfarten på turen ved å lage en tidtakerfunksjon og hente inn de nødvendige blokkene som beregner tilbakelagt strekning dividert med tiden
Eksempel: bruk av temperaturmåleren
Siden micro:bit har innebygd temperaturmåler, kan den brukes på flere måter. I første del av eksempelet lager vi en variabel som heter temperatur. Laster vi denne ned i programmet vårt, vil temperaturen vises kontinuerlig.
Vårt program kan nå være med på å illustrere drivhuseffekten. Dersom vi legger vår micro:bit inni en gjennomsiktig plastpose med en glødelampe over, vil micro:biten registrere at temperaturen øker. En utvidelse kan nå være at vi legger vår micro:bit oppå ulike underlag inne i posen. For eksempel et sort ark, aluminiumsfolie og så videre. Elevene kan nå forske på hvilket underlag som gir den største oppvarmingen. Mulige utvidelser:
• koble opp to micro:biter som kommuniserer fra ulike omgivelser hvor temperaturkurvene blir opptegnet
• bygge små hus i ulikt materiale og se på ulik isolasjonsevne
• overvåke om temperaturen i et rom ligger innenfor et bestemt område, hvis ikke, utløses en alarm
Eksempel: bruk av lysmåleren
På flere og flere veistrekninger rundt omkring blir gamle gatelys erstattet med LED-belysning, noe som vil redusere energibruken. I flere og flere hjem blir den klassiske glødepæren faset ut til fordel for LED-lys. I samfunnet finnes det flere elektriske installasjoner som tennes når mørket faller på. Jeg skal i dette eksempelet se på hvordan vi kan utnytte vår micro:bit til en utforskende elevaktivitet.
Den blå blokken gjør at programmet vårt kjører hele tiden. Den grønne blokken gjør at dersom lysnivået er høyere enn 140, slukkes dioden. Når lysnivået er lavere enn 140, tennes dioden. Forslag til videre utforsking:
• Koble micro:bit til en bil, for eksempel Bee-Bot3, Blue-Bot4 eller liknende. Lag en tunnel som bilen kjører inn i. Når det blir mørkt, slår lyset seg på.
• Utvid programmet ved å koble på flere dioder.
Eksempel: fuktmåler
Vårt relativt korte program kan være utgangspunkt for å måle hvor fuktig jorden i potteplanten er. Programmet måler spenningen mellom stiftene i plantejorden og gir oss en verdi i displayet. Mulige utvidelser:
• Lag et program som gir alarm dersom jorden i potteplanten blir for tørr. Elevene kan nå lage et enkelt vanningssystem ved hjelp av servomotorer.
• Mål om ferskvann leder strøm bedre enn saltvann.
• Ta med micro:bit for å måle fukt i grener på trær om våren når væsketransporten er stor.
Forslag til flere aktiviteter
• Lag et kompass som viser himmelretningen med våre LED-lamper.
• Lag spillet stein, saks, papir. Når vår micro:bit ristes, vises grafikk av for eksempel en saks.
• Lag et spill som fanger en «fallende prikk».
Scratch og Python
Både Scratch og Python gir store muligheter for å kunne tegne opp geometriske figurer, lage mønster, gjøre matematiske beregninger, gjennomføre tverrfaglige prosjekter og så videre. Dette gjør at elevene for eksempel kan lage sine egne treningsdatabaser innenfor et vidt spekter av områder. Det å kunne lage sine egne programmer vil gjøre at elevene får et eierforhold til problemstillinger og løsninger. Når en jobber med Python, krever det mer nøyaktighet av brukeren enn for eksempel bruk av Scratch. Dersom ikke tegnsettingen er riktig, vil ikke programmet kunne kjøres, mens i Scratch er dette og mye annet forhåndsprogrammert i blokkene. Det er derfor svært gunstig å bruke dette programmet på barnetrinnet og et lite stykke inn i ungdomstrinnet.
Disse programmene er så ulike at det kan bli noe søkt å sette dem opp mot hverandre, men hvis jeg skal trekke frem noe, så kan det være at feilmeldingene kan være mer krevende å tolke i Python enn de man får i Scratch. Python gir på sin side en bedre oversikt, ettersom blokkene i Scratch krever mye plass.
For den som vil bli flinkere å programmere, kan det nok være en fordel å lære seg Python, ettersom dette gir større fleksibilitet med hensyn til hva en kan programmere. Man vil dessuten lettere kunne dra nytte av erfaringene man får her, når man senere skal bruke andre tekstbaserte programmeringsspråk.
Jeg vil i de to neste eksemplene vise hvordan de to programmene kan se ut innen et tema i geometrien. Jeg har brukt adressen www.trinket.io for å skrive programmet i Python. Dette er et hensiktsmessig sted å starte blant annet fordi en ikke trenger å tenke på hvilke programmer en trenger for å kjøre sitt Python-program.
Eksempel: arealberegning
Begge de programmene som skal vises her, har som formål å regne ut arealet av et rektangel. Brukeren blir bedt om å taste inn lengden og bredden. Programmet skal så skrive ut hva arealet blir med de gitte opplysningene.
Som en ser av programmene over, er Scratch-programmet større i fysisk omfang. Jeg har satt piler mellom de delene i programmet som utfører det samme. Jeg har selv laget variabelnavnene Lengde og Bredde.
Eksempel: tegning av geometriske figurer
I dette eksempelet har jeg laget to forskjellige programmer i Scratch og Python (se figur neste side). Det første programmet, uten løkke, tegner opp en regulær trekant. Vi tegner opp en linje som er 50 piksler lang, så dreier vi 120 grader for deretter å gjenta denne prosedyren tre ganger. I vårt Python-program henter vi først inn tegnebiblioteket ved å skrive import turtle. De to andre programmene med løkke gir oss mulighet for å velge hvor mange kanter vi ønsker å få tegnet opp. Grunnen til at vi bruker en løkke, er for å slippe å skrive den samme koden flere ganger.
Jeg har her lagt inn hvor mange kanter en ønsker å få tegnet opp. Snuvinkelen bestemmes da ved at vi fordeler 360 grader med hvor mange linjer vi ønsker å få tegnet opp. Løkken i Scratch er kanskje lettere å lese enn løkken i Python, men det vil ta deg relativt kort tid å sette deg inn hvordan range-funksjonen fungerer.
Da er det bare å sette i gang!
Jeg har i denne artikkelen tatt for meg noen temaer som det kan være fint å starte opp med, hvor programmering kan inngå som en naturlig del i faget. Hvis du ikke har programmert tidligere, håper jeg at programmene vil gi deg motivasjon til å prøve det ut. Dersom du allerede har erfaring med programmering, håper jeg du kan dra nytte av hvordan du kan tenke ut nye prosjekter hvor programmering inngår som en naturlig del.
NOTER
1 Kan kjøres i en Python-editor (trinket) som lar deg programmere direkte i nettleseren. Programmet er gratis å bruke. https://www.trinket.io
2 Scratch er et gratis visuelt programmeringsspråk som kan bli brukt av alle som er interessert i programmering. På hjemmesiden til Scratch kan du få inspirasjon til programmer du kan lage. https://scratch.mit.edu.
3 En Bee-Bot er en gulvrobot som lar seg programmere enkelt på robotens rygg med tastetrykkene venstre, høyre, fremover, bakover og kjør.
4 En Blue-Bot er en gulvrobot som kan kommunisere via bluetooth. Dette gjør at den kan styres fra et nettbrett eller en PC. Den kan også programmeres med enkle knappetrykk på robotens rygg.
LITTERATUR
Utdanningsdirektoratet. (2020). https://www.udir.no/lk20/overordnet-del/opplaringens-verdigrunnlag/1.4-skaperglede-engasjement-og-utforskertrang/?lang=nob
Om forfatteren:
Pål-Erik Eidsvig er utdannet ved Universitetet i Oslo ved Matematisk institutt. Han arbeider nå ved Universitetet i Sørøst-Norge ved Institutt for matematikk og naturfag. Eidsvig har tidligere lang erfaring fra ungdomsskole og videregående skole med ulike realfag. Han har også mer enn 15 års erfaring med nettbasert undervisning i matematikk.