Programmering undervisningsopplegg

Programmering i skolen

For noen år siden så jeg på programmering som mange ord i og tegn i en svart rute der jeg ikke forstod noe som helst. Men nå ser jeg på programmering på en helt annen måte. En må ikke ha studert informatikk i evigheter eller jobbe på et velkjent mediebyrå for å kunne programmere. Nå har jeg undervist om programmering til flere klasser og i utviklingstid på skolen jeg jobber på.

Programmering er ikke så vanskelig som en først tror. Jeg tror at alle kan forstå programmering, for det er faktisk noe en kan knytte til ting alle gjør daglig. Det skal jeg vise et eksempel på i et undervisningsforløp/undervisningsopplegg i dette innlegget.

Hva er koding?

Koding bruker vi ofte for ordet programmering. Vi bruker programmering når vi ønsker at en datamaskin skal gjøre noe for oss. Vi kommuniserer med datamaskina på et språk den forstår. De finnes mange ulike språk som datamaskiner forstår, dette kaller vi programmeringsspråk. Eksempel på programmeringsspråk er Scratch, Java og Python. I skolen i Norge bruker vi ofte Scratch som grafisk programmeringsspråk og Python som tekstbasert (det varierer selvsagt mellom skolene).
Jeg skrev nettopp to begrep grafisk programmeringsspråk og tekstbasert programmeringsspråk. Det letteste er å starte med det grafiske, dette kan vi bruke helt ned i barnehagen. Dette kan være bilder eller blokker der det står ulike ting, som f.eks gå fremover eller spill av lyd «3».

blokkprogrammering
På bilde over ser du et eksempel på grafisk programmeringsspråk, dette er tatt ut av programmet Wedo fra Lego Education. Dette er fint å bruke på småtrinnet og mellomtrinnet, merk at Wedo nå er faset ut og erstattet med Spike. Jeg har ikke sett på de nye bildeblokkene, men regner med det ikke er så ulikt.
På bilde over ser du eksempel på bildeblokker fra Scratch jr. Her bruker man faktisk også løkker i algoritmen.
blokkprogrammering
Over så ser du tre eksempel på ordblokker, dette er også grafisk programmeringsspråk. Ordblokker er fine å starte med i 4.klasse, men kan også brukes tidligere.

Den grafiske programmeringa kaller vi gjerne også blokkprogrammering. I blokkprogrammering bruker vi ferdige blokker som legges etter hverandre linje for linje.

Når du har lest og hørt om programmering kommer ofte ordet algoritme opp, men hva er egentlig det?

micro:bit
Bildet over viser begrepene program, algoritme og kommandoer.

Hva er en algoritme?

En algoritme kan enkelt beskrives som en oppskrift. Når du står opp, så har du en algoritme for hva du gjør før du går ut døra for å gå på jobb. Det samme gjelder når du skal bake, du har hva du trenger og hvilken rekkefølge det skal gjøres i. Det er fint å starte å introdusere begrepet algoritme når du skal starte å undervise i programmering. La elevene gjerne få en oppgave om å lage en algoritme for å smøre en skive med ost (det er med i undervisningsforløpet i dette innlegget). Ta gjerne en titt på den algoritmiske tenkeren på Utdanningsdirektoratet sin side: https://www.udir.no/kvalitet-og-kompetanse/profesjonsfaglig-digital-kompetanse/algoritmisk-tenkning/ Her forklares det veldig godt hva algoritmisk tenking er.

I barneskolen så vil elevene komme borti det vi i programmering kaller løkker, variabler og vilkår. Jeg skal forklare begrepene nærmere nå.

Hva er løkke?

En løkke er en del av en algoritme som gjentar seg. Vi bruker løkker når vi vil gjenta en del av et program uten å skrive den samme kommando flere ganger. Det finnes ulike typer løkker, men jeg kommer ikke til å gå mer i detaljer nå.

løkke programmering
I algoritmen ovenfor har vi brukt en løkke der det står gjenta fire ganger. Vi kunne også ha skrevet «gå 100 steg», «snu 90 grader», «gå 100 steg», «snu 90 grader», «gå 100 steg», «snu 90 grader», «gå 100 steg», «snu 90 grader». Det hadde tatt mye større plass og lengre tid.

Hva er en variabel?

En variabel er et ord eller en bokstav som brukes for å vise til noe annet. En slags plassholder eller kontainer som kan inneholde tekst eller tall. Vi kan bruke det om for eksempel ulike lyder, hastigheter eller alder. Når vi spør folk om hvor gamle de er, så vil dette variere, men alle snakker om det samme. Et annet eksempel kan være at dersom du handler smågodt, så vil summen på kassalappen variere etter hvor mye smågodt du kjøper. Det er da altså variabelen «beløp» som endrer seg.

Hva er vilkår?

Når noe kan ha ulikt utfall, så bruker vi vilkår. Om du spiser opp grønsakene, så får du is til dessert. Om du ikke spiser opp grønnsakene dine, får du ikke is til dessert. Dette kan være et eksempel på vilkår. Jeg er brukt mye forskjellig utstyr fra Lego Education. Når jeg har fått elevene til å kjøre en legorobot med en sensor som registrerer når noe er fremfor, har de brukt følgende vilkår «om det er noe fremfor Legoroboten, så stop». Vi har brukt bildeblokker, så dette begrepet kan introduseres tidlig. Jeg har også brukt det ved lyssensor, der det er ulikt utfall hva roboten gjør etter hvilken farge den registrerer.
Nå ble det ganske mye om programmering, men nå kommer undervisningsforløpet.

Undervisningsopplegg programmering:

Dette undervisningsopplegget passer for de som ikke har vært borti noe særlig programmering før, regn minst 135 minutter (3*45 min).  

  1. Hva er programmering? (15 minutt)
  2. Lag algoritme (30 minutt).
  3. Gå igjennom begrepene (20 minutt)
  4. Fysisk programmering (30 minutt)
  5. Code.org (40 minutt)

Hva er programmering? (15 minutt)
Start med å spørre om hva de vet om programmering fra før. Si så at nå skal dere lage en algoritme

Lag algoritme (30 minutt).
Introduser begrepet algoritme. Nå skal elevene lage an algoritme for å smøre en skive med ost. Jeg har selv gjort dette med mine elever. Jeg har tatt med meg oppskjært brød, smør, kniv, ostehøvel, ost og tallerken. Så har elevene fått i oppgave å lage en oppskrift på hvordan jeg skal gjøre det. En og en gruppe har fått prøve. Om de sier «ta smør på skiven» så er det kanskje greit i 3. trinn, men jeg ønsker det mer detaljert på mellomtrinnet som «løft opp kniven», «ta kniven bort til smøret», «ta kniven ned i smøret» osv.

Du velger selv hvor nøyaktig du ønsker at de skal være. Jeg gjennomførte da algoritmen de sa, om den ikke var nøyaktig nok, så stoppet jeg opp. Dette er en fin måte å vise at en datamaskin er «dum» helt til vi gjør den smart. Det viser også at du må være veldig nøyaktig når du koder.

Se denne videoen på NDLA og les om algoritmer (her er oppgaven jeg har skrevet om ovenfor): https://ndla.no/nb/subject:1:15af94d5-d647-4da9-aefc-f7e4b3bd44ff/topic:2:932c506f-8d6a-4626-88c9-5465b8aebd99/topic:2:88e37a5f-54cc-4087-aca2-4e9a4bce67dd/resource:0fce6cd6-0db5-47d5-b6ef-65021dbf2497

Gå igjennom begrepene (20 minutt)
Lag deg en presentasjon eller tegn på tavla osv.
– Løkke
-Vilkår
-Variabel

Fysisk programmering (30 minutt)
Før elevene starter med programmering på datamaskin/nettbrett, så kan det være greit å holde på med fysisk programmering. Det kan være at elevene skal lage en algoritme for at en elev skal gå fra pulten sin og bort til døren. Her er det fantasien som setter grenser. På forhånd må du ha laget blokker/bildekort til elevene, så de vet hvilke kommandoer personen skal forstå. Vi har laget et sett du kan laste ned her: Fysisk programmering – programmeringskort | Kunnskapskassen

Code.org (40 minutt)
Nå er elevene klare for å teste ut programmering digitalt. Jeg anbefaler å starte med oppgaver på Code.org eller noe fra Kidsa koder enten Scratch eller Micro:bit om dere har det. På Code.org er det flere ulike læringsløp i ulik vanskegrad. Jeg anbefaler at dersom elevene kan lese, at de gjør «kurs 2» Lenke: https://studio.code.org/s/course2 . Du kan tildele elevene oppgavene ved å gi de en kode eller legge de inn som elever. Elevene kan logge inn med microsoft-konto, men det kan også gjøres ute innlogging (men da har du ikkje oversikt over fremgang).

Undervisningsressurser:

Hva er dine beste tips til undervisning i programmering? Del med oss i kommentarfeltet

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

Handlekurv

Innlogging

Registrer


Dine personopplysninger brukes til å øke brukervennligheten på denne nettsiden, gi deg tilgang til administrasjon av din brukerkonto og andre formål som beskrevet i våre personvernregler.

Innlogging

Registrer


Dine personopplysninger brukes til å øke brukervennligheten på denne nettsiden, gi deg tilgang til administrasjon av din brukerkonto og andre formål som beskrevet i våre personvernregler.