Koding i skolen

Koding, eller programmering, er det vi kaller de språkene som lar oss kommunisere med datamaskiner, der vi skriver algoritmer for å få datamaskinen til å gjøre det vi vil. Det finnes tusenvis av ulike programmeringsspråk, tilpasset ulike formål. I skolesammenheng er det de blokkbaserte språkene Scratch og MakeCode som dominerer, sammen med tekstspråket Python.

På denne siden finner du forslag til årsplaner, undervisningsopplegg, opplæring, studiesteder og andre ressurser som er relevant for deg som jobber i skole og SFO.

kodetimen

Vi setter stor pris på anonyme tilbakemeldinger i det nye vurderingsskjemaet (august 20) eller i lærernettverket vårt! Ønsker du å bidra til å utvikle innholdet på siden, send oss en mail!

Kom i gang

Kodetimen er skreddersydd for å kunne gjennomføres på én skoletime. Kodetimen som arrangement går av stabelen i desember, men ressursene er fritt tilgjengelig hele året.

super:bit er et samarbeid mellom Lær Kidsa Koding, Vitensenterforeningen og NRK Super, med midler fra Sparebankstiftelen DnB.

Alle 6. klasser i landet får(!) en pakke med utstyr til nærmere 20 000 kr, mot at man deltar på kurs hos sitt lokale vitensenter.

superbit.no

Vi har skrevet en oppgavesamling med korte, konkrete oppgaver, knyttet direkte til kompetansemålene som omhandler koding i LK20, én oppgave pr trinn fra 1. til 10. trinn.

Du finner den her!

Her har vi samlet over 150 oppgaver i blant annet Scratch, micro:bit og Python, med lærerveiledning, kompetansemål og alt man behøver for å komme i gang!

oppgaver.kidsakoder.no

Lær Kidsa Koding arrangerer med ujevne mellomrom konferanser for lærere og andre som ønsker å lære mer om koding i skolen. I konferanseoversikten ser du hvor og når neste konferanse finner sted.

Ønsker du en konferanse nær deg? Ta kontakt!

Undervisningsopplegg

1.-2. trinn: Robotdyra

1.-3. trinn: BeeBot

3.-4. trinn: Lage eggedosis

4. trinn+: e-Tekstil

Lag et stein, saks, papir-spill med microbit!

Lag geometrisk kunst i Scratch

Bruk åpne datasett fra SSB

Elevene er danseroboter som programmeres av læreren!

Lær om luftbåren smitte med micro:bit

Lær grunnleggende Python med turtle-biblioteket

Lag geometrisk kunst med turtle-biblioteket i Python!

Har du forslag til flere opplegg vi kan dele? Si i fra!

Bruk sin/cos til å simulere månelanding

Bruk sin/cos til å lage animasjon av et vaiende flagg

Lag fraktalkunst med Python

  • Har du tips til flere oppgaver vi kan legge ut her? Si i fra!

Årsplaner

Vi har samlet alle kompetansemålene for 1.-10. trinn som inneholder programmering i denne oversikten

Har du en årsplan for vgo vi kan dele her, ta kontakt!

Hvorfor koding i skolen?

Koding, eller programmering, er det vi bruker når vi ønsker å få datamaskiner til å gjøre en jobb for oss. I dag er samfunnet gjennomsyret av teknologi som baserer seg på koding; mobiltelefonen, PC-en, sosiale medier og internett, bilen, toget, sjukehuset, skolen, trafikklysene, forskning og vitenskap – alt er avhengig av at teknologien er der og fungerer som den skal. Og for at den skal gjøre det, noen ha skrevet koden som forteller datamaskinene hva de skal gjøre!

Det har blitt sagt at koding er det nærmeste vi kommer superkrefter, for om du kan kode, kan du utrette ting som før var utenkelige.

Det finnes tusenvis av programmeringsspråk, noen svært spesifikke med helt konkrete bruksområder, og noen svært generelle, som kan brukes til “alt”. Språkene som i all hovedsak benyttes i norsk skole, er det blokkbaserte Scratch, og tekstbaserte Javascript (JS) og Python. MakeCode, som finnes til blant annet Minecraft Education Edition og BBC Micro:bit, er et “skall” med blokker som plasseres oppå tekstkode som JS og Python. På den måten kan man svitsje mellom blokkbasert og tekstbasert koding på en elegant måte. MakeCode bygger på en teknologi som heter Blockly, som vi finner på mange forskjellige nettsider, som amerikanske code.org og norske blockuino.no.

Når vi koder, skriver vi algoritmer. En algoritme er helt enkelt en oppskrift eller instruksjon som forteller datamaskinen hva den skal gjøre. Vi mennesker følger slike algoritmer daglig. Du har garantert din egen tannpussalgoritme, og hvis du ikke følger bilkjøringsalgoritmen når du setter deg bak rattet, kommer du ikke veldig langt. Når du strikker, baker eller snekrer, følger du også gitte algoritmer for å ende opp med et sluttprodukt som kan brukes. Datamaskinene trenger svært eksplisitte algoritmer, der vi mennesker har tenkt fremover og tatt høyde for alle omstendigheter som kan oppstå. Dette er en del av det vi kaller “algoritmisk tenkning”- eller computational thinking på engelsk.

Eksempelkode i Scratch

Eksempelkode i Scratch

  1. Koding: Koding eller programmering er det vi kaller språket vi bruker når vi skal instruere digitale enheter om hva vi ønsker at de skal gjøre. Vi vet at noen mener at det er en definisjonsforskjell på de to begrepene, men vi mener det blir litt pedantisk.
  2. Blokkbasert språk: Blokkbaserte programmeringsspråk er språk som benytter seg av grafiske blokker (tenk lego eller puslespillbrikker) med ferdige instruksjoner som må settes sammen i riktig rekkefølge for å oppnå ønsket resultat. Fordelen med blokkbaserte språk er at man unngår syntaksfeil, skrivefeil i koden, som kan skape mye hodebry for en nybegynner. Ulempen er at det ikke er veldig effektivt å jobbe med i større prosjekter. Det originale blokkbaserte språket, Scratch, ble utviklet ved MIT i Boston, i et forsøk på å gi førsteårsstudenter en bedre forståelse av hva koding er, og å lære seg grunnleggende programmeringsstrukturer.
  3. Tekstbasert språk: De aller fleste programmeringsspråk er tekstbaserte. Det betyr kort og godt at man skriver koden med tastaturet. Ulempen er at man fort kan få syntaksfeil, og at læringskurven kan være veldig bratt. Fordelen er at når man etterhvert begynner å bli komfortabel med å skrive kode, går det mye raskere å produsere ny kode enn når man jobber blokkbasert.
  4. Algoritme: En algoritme er kort og greit en oppskrift for hvordan noe skal gjøres. Bakeoppskrifter og strikkeoppskrifter er opplagte algoritmer om du skal få velsmakende boller eller riktig størrelse på genseren. Det du kanskje ikke har tenkt på, er at du som regel følger den samme algoritmen hver gang du står opp om morgenen, når du pusser tennene, eller når du kjører bil. Spesielt bilkjøringsalgoritmen bør vi være veldig nøye med å følge, ellers blir det ikke noen trivelig biltur.

Her finner du en utfyllende begrepsliste!

Det overordnede målet med koding i skolen er ikke at vi skal utdanne programmerere. På samme måte som at elever skal kunne noe om musikk, matematikk, poesi eller kroppsøving, skal elevene kunne noe om koding. Samtidig er et sentralt punkt i den nye læreplanen å lære seg algoritmisk tenkning, som også er sentralt i programmering. Algoritmisk tenkning er å kunne tenke fremover, bryte ned større problemstillinger i mindre og mer håndterbare størrelser og evaluere og feilsøke eget arbeid. I matematikken kjenner vi godt til begrepet “problemløsning”, og det er en naturlig del av det overordnede begrepet “Algoritmisk tenkning”.

Les mer om algoritmisk tenkning i LK20 hos Udir.

Det som skiller koding i skolen i Norge fra mange andre land, er at det ikke er kodingen i seg selv som er målet, men en ønskelig bieffekt av det vi ønsker å oppnå. Det egentlige målet er, i tillegg til å være et verktøy for læring i realfag og praktisk-estetiske fag, å skape borgere som har den nødvendige digitale kompetansen til å forstå og kunne mene noe om digital teknologi, dens utvikling og rolle i samfunnet.

Økt digital kompetanse i samfunnet kan bidra til raskere tilpasning til nye krav, muligheter og utfordringer i både yrkesliv, privatliv og i samfunnet som helhet. Det kan la oss utvikle offentlige og private produkter og tjenester som fører samfunnet fremover. Det kan bidra til flere borgere som har god digital kompetanse og kan mene noe kunnskapsbasert om digitale verktøys rolle i samfunnet, evner å se saker fra flere sider, og tar gode, kunnskapsbaserte beslutninger på egne og andres vegne.

Koding er et både et språk og et verktøy som må læres og forstås for å kunne brukes fornuftig og effektivt når det trengs, uavhengig av fag. Derfor må man passe seg for å kun bruke kodingen til å nå det ene kompetansemålet i matematikk eller naturfag i året, for så å ikke snakke om det før til neste år igjen. Som med regneartene, skriving og lesing, må man jobbe med det jevnt og trutt gjennom året, og da helst tverrfaglig.

Vi anbefaler å rydde plass i timeplanen til en fast “kodetime” i uka, for å sørge for kontinuitet og stabilitet i opplæringa. Man er selvsagt ikke nødt til å sitte og kode hver uke, men arbeidet bør knyttes mot algoritmisk tenkning, skaperglede, engasjement og utforskertrang. Det er heller ikke meningen å låse kodingen til denne ene timen i uka. Man kan selvsagt bruke kodingen når som helst og hvor som helst ellers også, selv om man har en fast kodetime i uka. Mål for arbeidet kan hentes fra mange fag, som kunst og håndverk, norsk, engelsk, naturfag, eller musikk, i tillegg til matematikk, som har fått det største ansvaret for koding i LK20.

I tillegg til å bruke koding som et verktøy i kreative og skapende prosesser, må vi også reflektere kritisk over teknologiens rolle i samfunnet; når er det riktig å bruke digital teknologi, og hva er det riktig å bruke den til? Vi kan for eksempel relativt lett iverksette massiv overvåkning av alle landets innbyggere, for å blant annet forebygge kriminalitet. Men bør vi gjøre det? Hva sier Menneskerettighetene og Grunnloven om en slik inngripen i folks privatliv? Hvilke andre formål kan det tenkes at myndighetene kan bruke all denne dataen til, og er vi sikre på at vi får vite alt den brukes til? Er det forskjell på å la en privat aktør lagre data om deg, og å la en stat lagre data om deg? Dette er store og kompliserte spørsmål det ikke er lett å svare på, men jo flere som har den nødvendige kunnskapen om digital teknologi, jo bedre kan vi diskutere problemstillingene og finne gode løsninger.

Flere ressurser

Mer

Vi har to kanaler:

  • Lær Kidsa Koding tar seg av litt mer overordnede ting for frivillige og andre voksne i og rundt Lær Kidsa Koding.
  • Hjemmekodeklubben er rettet mot praktisk bruk for barn og unge, med fokus på instruksjonvideoer i hvordan du lærer koding i forskjellige språk.

Vi har snart 3000 medlemmer i lærernettverket vårt. Her kan du spørre om hjelp, dele ideer og undervisningsopplegg, og finne inspirasjon!

Bli med i vårt lærernettverk på Facebook!

Det finnes flere nettbaserte kurs for barn og unge som ønsker å lære koding. Her er tips til noen slike steder hvor du kan lære mer. Har du forslag til gode nettressurser vi burde fortelle om? Gi oss beskjed!

Aftenposten har samlet sammen alt(!) av digitale læringsressurser under nettstedet “Edtechguiden”!

Følg lenken og kryss av for “Programmering” i menyen til venstre, så får du opp alle tilgjengelige læringsressurser.

Til Edtechguiden!

Annet relevant

Vi har siden 2018 hatt et prosjekt i Hedmark, der en lærer har vært frikjøpt i 50% stilling for å løfte koding i skolene, finne ildsjeler til nye kodeklubber og mye mer. Er du interessert i å ta i bruk Hedmarksmodellen der du bor? Les mer her!

Elever som går IKT-servicefag på videregående skoler har i dag  en gyllen mulighet til å både lære seg selv programmering og lære bort programmering til andre elever, i skoletiden. Her finner dere et opplegg for hvordan dette kan gjennomføres.

Koding etter skoletid går ut på at man kurser og lønner ungdomsskoleelever til å holde kurs for fjerdeklassinger rett etter skoletid, som et gratis fritidstilbud.

Les mer om koding etter skoletid her!

For faglig flinke elever er det ofte vanskelig for skolen å gi et tilpasset tilbud, men på nettet finnes mange gode ressurser som elever kan bruke til å lære seg programmering, informatikk og kreativ bruk av datamaskinen. Skolen kan med liten innsats spille en viktig rolle ved å introdusere elevene til disse mulighetene. Lær Kidsa Koding ønsker å tilby rådgivning til skoler som vil hjelpe flinke elever, ta gjerne kontakt. Vi har en egen nettside med tips til materiell og oversikt over arrangementer for elever som allerede kan noe programmering. Denne kronikken har flere tanker omkring elever som trenger større utfordringer.

Faglitteratur

Stig Halvorsen har sendt oss en mappe full av norske masteravhandlinger om koding i skolen.

Du finner alle avhandlingene her!

Her er en oversikt over forskjellige rapporter, utredninger og forskning om koding og digitale ferdigheter, samlet i en mappe

Har du kommentarer, spørsmål eller ønsker du å bidra til å gjøre skolesidene våre bedre? Send oss en mail, eller ta kontakt på Facebook!