Jeg har lenge ønsket å lage et undervisningsopplegg som tar utgangspunkt i ekte data, og da jeg laget et undervisningsopplegg for R-tallet kom jeg over en tabell med data fra FHI som viser hvor mange som har testet negativt og hvor mange som har testet positivt hver eneste dag siden testingen begynte. Jeg tenkte å bruke disse dataene til å vise dem visuelt.
Kompetansemål matematikk etter 7.trinn
– bruke programmering til å utforske data i tabeller og datasett
Kompetansemål matematikk etter 8.trinn
– utforske hvordan algoritmer kan skapes, testes og forbedres ved hjelp av programmering
Krav til programmet
Programmet skal lese listene som er lastet inn, og hente ut en og en rad fra listen og visualisere dem som en strek på lerretet. Siden listen inneholder negative tester og positive tester, har jeg i dette opplegget valgt å summere negative og positive tester slik at jeg viser antall tester og positive tester i visualiseringen.
Listen som kommer fra FHI inneholder kolonneoverskrifter i den første raden, så jeg legger inn en kontroll på om det er tall eller tekst i rad 1. Om det er tekst slettes raden.
Steg 1 – hente inn lister
Steg en er å laste ned listene fra FHI som csv fil, og lagre dem på egen maskin.

Deretter skal vi importere dem til Scratch. For å laste inn listene, må vi definere listene. Jeg kaller den ene listen negative og den andre positive.

Når listene er definert, høyreklikker vi på listen og importerer filen. Den spør etter hvilken kolonne vi vil importere, og vi skriver inn kolonnenummeret vi ønsker.


Da er vi klar til å programmere litt. Men først litt forberedelser.
Steg 2 – hente inn pennverktøyet
Siden vi skal tegne stolper henter vi inn pennverktøyet i Scratch. Dette gjøres ned i venstre hjørne av programmet.
Steg 3 – klargjøre programmet
Vi trenger å gjøre noen småting for å klargjøre til kjøring av programmet. Vi begynner med å skjule figuren vår. Vi trenger ikke den.
Hver gang programmet kjøres må skjermen tømmes før start. Slå av pennen, og tøm skjermen. Deretter plasseres figuren (som er skjult) nederst i venstre hjørne, og vi lar ham peke oppover slik at tegner rett vei.

Steg 4 – test for tall
Før vi gjør noe som helst, må vi sjekke om det er tall eller tekst i den første raden. Om det er tekst må denne raden må fjernes. Det finnes ingen kodeblokk i Scratch som sjekker om det er tekst eller tall, så vi må lage en test som gjør jobben. Det gjør vi ved å legge til et tall og deretter trekke det fra.

Om det er tall vil svaret ble det samme som vi startet med. Om det er tekst vil det legge seg til. Ligger for eksempel tallet 12 i listen, blir det 12 + 1 – 1 = 12 om det er tall. Om det er tekst vil den legge til tallene. Ligger for eksempel bamse i listen, blir det bamse + 1 – 1 og det er ikke likt det som lå i listen. Vi vil da fjerne den første forekomsten i listen, slik at vi kan arbeide videre med tallene.
Vi lager en funksjon som gjør denne jobben for oss og sjekker først listen med negative tester og deretter en som sjekker listen for positive tester. Slår testen til skjer ingenting, hvis ikke fjerner den første raden i listen.

Om du synes denne koden er litt rar, så er det fordi Scratch ikke har en «ulik» blokk.
Steg 5 – tegne en stolpe
Visualiseringen av smittetallene gjøres i form av en stolpe. Scratch har ingen innebygget diagramtegner, så vi må benytte tegneverktøyet til å tegne stolpene i diagrammet. Denne funksjonaliteten legger vi i en egen funksjon som vi kaller stolpe og som skal ha et parameter seg inn, nemlig antall.
Vi har tidligere sagt at figuren vår skal ha retning 0, dermed vil figuren tegne oppover på lerretet. Vi begynner med å sette på pennen for å tegne. Deretter ber vi figuren bevege seg oppover på y-aksen ved å endre verdien på y-aksen. Hvor langt den skal bevege seg oppover, bestemmes av verdien som som blir sendt inn til funksjonen. For at den ikke skal gå ut av lerretet, så deler vi verdien på 150 (ingenting vitenskapelig bak dette tallet, bare hva som ser bra ut).

Deretter går vi tilbake til utgangspunktet, før vi begynte å tegne stolpen, og slår av pennen.
Steg 6 – selve jobben
Da er vi klar for å lage selve hovedprogrammet som skal kalle funksjonene vi har laget og holde styr på alt annet. Vi bygger videre på steg 3, og kaller funksjonen for å sjekke listen om det ligger tall eller tekst i første rad i listen.

For å kjøre gjennom listen rad for rad, trenger vi en teller, så vi oppretter en variabel som holder styr på hvilken rad vi skal hente ut data fra. Da er vi klar for løkken som skal kjøre gjennom listen så mange ganger som det er elementer i listen.

Den første stolpen vi skal tegne, er totalt antall testede. Siden den ene listen inneholder negative tester og den andre positive tester, må vi summere disse to verdiene og legge i en variabel, som kan kalles testede. Antall positive henter vi også ut og legger i en variabel som kan kalles positive.

Så er det tid for å tegne. Vi setter en farge på stolpen for antall testede, og kaller funksjonen vi laget i steg 5 med verdien antall testede.

Deretter endrer vi fargen for stolpen til antall positive, og kaller funksjonen på akkurat samme måte, men denne gangen ved antall positive i kallet.

Tilslutt endrer vi x-verdien med 1, slik at på neste runde vil stolpene komme et steg lenger til høyre, og vi endrer variabelen rad med 1, slik at vi får ut neste rad i listene.
Da skal programmet være klart til utprøving.

En variant av programmet er tilgjengelig på https://scratch.mit.edu/projects/519418768
Utfordringer
Dette programmet har mange muligheter for differensiering for elever som trenger litt utfordringer. De kan for eksempel:
– Legge inn kode som finner maksimalt antall testede
– Legge inn kode som finner maksimalt antall positive
– Importere datoene(kolonne 1 i filen) og hente ut datoen for høyest antall positive tester