Ti prosjekter – fra Scratch og Python til micro:bit, Arduino og 3D-printing. Ingen fast rekkefølge – velg det som passer ditt trinn og dine elever.
| Prosjekt | Kategori | Trinn | Tid | Antall deler | Hva elevene lager |
|---|---|---|---|---|---|
| 🎨 Tegn med kode | Python | 6.–9. trinn | 5 × 45 min | 5 oppgaver | Animert scene med pygame – figurer, løkker, tastatur og kreativt prosjekt |
| 🗡️ Tekstbasert eventyrspill | Python | 6.–9. trinn | 5 × 40 min | 5 oppgaver | Terminalspill med valg, inventar, kamp og funksjoner |
| 🪙 Myntkast og sannsynlighet | Python | 6.–8. trinn | 3 × 30 min | 3 oppgaver | Simulering koblet til matematikk – store talls lov |
| 🎲 Terningkast og statistikk | Python | 7.–9. trinn | 3 × 40 min | 3 oppgaver | Sumfordeling, analyse og terningspill med Yatzy-logikk |
| 🧮 Mattetrener med while-løkke | Python | 7.–10. trinn | 3 × 40 min | 3 oppgaver | Feilsøking og bygging av egen treningsapp med while-løkke |
| 🌐 Lag din første nettside | HTML | 5.–10. trinn | 6 × 25 min | 6 oppgaver | Et komplett nettsted med to sider, bilder, lister og lenker |
| 🐱 Lag spill med Scratch | Scratch | 4.–8. trinn | 6 × 30 min | 6 oppgaver | Et komplett spill med bevegelse, poeng, kloner og game over |
| 🔴 Programmering med micro:bit | micro:bit | 5.–10. trinn | 6 × 35 min | 6 oppgaver | LED, akselerometer, radio, servomotor og elektrisk krets |
| 🔵 Kom i gang med Arduino | Arduino | 8.–10. trinn | 6 × 40 min | 6 oppgaver | Trafikklys, temperatursensor, ultralydsensor og servomotor |
| 🟣 3D-printing med Tinkercad | 3D-print | 5.–10. trinn | 4 × 60 min | 6 oppgaver | Eget 3D-designet objekt – fra idé til ferdig printet produkt |
Importer pygame, start det og lag et farget vindu med en tittel. Hva skjer hvis du endrer tallene?
Farger i pygame er tre tall (rød, grønn, blå) fra 0–255. Lag egne fargevariabler og fyll bakgrunnen.
Bruk draw.circle, draw.rect, draw.polygon og draw.line til å plassere former på arket. Koordinatsystemet starter øverst til venstre.
Kombiner figurer til noe gjenkjennelig – en fotballbane, et ansikt, en by. Bruk kommentarer til å forklare hva hver del er.
Tegn scenen på nytt med én endring mellom hver frame. Bruk display.update() og Clock.tick(FPS) for å styre hastigheten.
Kom i gang med pygame: importer biblioteket, initialiser det og vis et farget vindu på skjermen.
import pygame, sys – henter inn bibliotekpygame.init() – starter opp systemetpygame.display.set_mode((bredde, høyde)) – lager vinduetpygame.display.set_caption("tittel") – setter vindustittelark.fill(farge) – fyller bakgrunnen med en fargepygame.display.update() – viser det du har tegnetrød = (255, 0, 0)I pygame starter (0,0) øverst til venstre. X går til høyre, Y går nedover. Forstå dette før du tegner figurer.
Lær de viktigste tegnefunksjonene i pygame og forstå hva hvert argument betyr.
En animasjon er bare mange bilder etter hverandre. Lær å tegne scenen på nytt med en liten endring mellom hver frame.
ark.fill(farge) på nytt = sletter forrige bildedisplay.update() = vis det nye bildetClock.tick(FPS) = vent litt (kontrollerer hastighet)FPS = 3 gjør det raskereNå vet du nok til å planlegge og bygge en hel animert scene fra bunnen. Hva vil du vise?
Installasjon, differensiering og tekniske tips for Python/pygame i klasserommet
pip install pygameimport pygame; pygame.init() – ingen feil = okDel 1–4: 40–45 min per del. Del 5 (kreativt prosjekt): 60–90 min. Totalt ca. 4–5 skoletimer om man tar alle delene.
La elevene vise hverandres animasjoner på slutten av timen – det motiverer og gir gode ideer. Mu Editor anbefales fremfor IDLE for nybegynnere.
Definer liv, penger og inventory som variabler. Print dem ut slik at spilleren alltid ser statusen sin.
Bruk input() til å stille spørsmål og if/elif/else til å reagere på svaret. Husk .strip() og .lower()!
En liste er en samling av ting: inventory = ["kniv"]. Bruk .append() for å legge til og .remove() for å ta bort.
Bruk if "kniv" in inventory: for å sjekke hva spilleren har. Ulike gjenstander gir ulike utfall.
Importer random og bruk random.randint(1, 10) for å lage tilfeldige tall. Perfekt til kampscener og utfordringer.
Lag de grunnleggende spillvariablene: liv, penger og inventory. Det er spillets "hjerne" – alt bygger på dette.
liv = 100liv = liv - 20 eller liv -= 20inventory = ["kniv", "skjold"]print() viser tekst og verdier til spillerenliv, penger og inventorySpillere tar valg. Lær å stille spørsmål med input() og reagere ulikt basert på svaret med if/elif/else.
.strip() fjerner mellomrom foran og bak.lower() gjør alt til små bokstaverEn inventory er bare en liste i Python. Lær å legge til ting, ta bort ting og sjekke hva som er der.
Importer random og bruk randint til å generere tilfeldige tall. Perfekt til kampscener, spørsmål og overraskelser.
Nå vet du nok til å planlegge og bygge et helt eget spill. Lag et kart på papir først – så koder du det.
Pedagogiske tips, differensiering og vanlige utfordringer
Del 1–4: 35–45 min per del. Del 5 (fullstendig spill): 60–90 min. Totalt ca. 4–5 timer for hele prosjektet.
Tekstspillet kjører i vanlig terminal/IDLE – trenger ikke pygame. Trinket.io fungerer utmerket for del 1–3 om maskiner ikke har Python installert.
Gå gjennom programmet linje for linje. Hva gjør range()? Hva teller variablene?
Hva skjer med fordelingen ved 10 kast vs 10 000 kast? Test og beskriv hva du ser.
Beregn og print hvor mange prosent som ble krone og mynt. La brukeren velge antall kast.
Bruk for-løkken og random til å simulere noe helt eget – regndager, lotteri eller basket.
Les og analyser et ferdig myntkast-program. Hva gjør hver linje? Hva skjer hvis du endrer antall kast?
for i in range(n) – gjenta noe n gangerrandom.randint(1, 2) – tilfeldig 1 eller 2Krone = Krone + 1Legg til prosent-utregning og la brukeren velge antall kast. Sammenlign resultater ved ulike antall kast.
Bruk for-løkken og random til å simulere noe eget – regndager, lotteri, basketball eller noe du finner på selv.
Tverrfaglig prosjekt som kobler programmering og matematikk
Prosjektet dekker kompetansemål i sannsynlighet. La matematikklæreren delta – simulering er et kraftig verktøy for å visualisere statistiske begreper.
Del 1: 30 min. Del 2: 30 min. Del 3: 35 min. Hele prosjektet kan gjøres på én dobbelttime.
Programmet har 11 variabler og en lang elif-kjede. Hva teller de? Hva er mulig sum med to terninger?
Hvilken sum kommer oftest? Hva sier matematikken? Sammenlign 1 000 kast med 100 000 kast.
Finn vanligste sum, legg til tre terninger, eller lær om dictionary som en mer elegant løsning.
Simuler et terningspill du kjenner – Ludo, Yatzy eller Poker. Koble til teoretisk sannsynlighet.
Analyser et program som kaster to terninger tusenvis av ganger og teller alle mulige summer fra 2 til 12.
randint(1,6)-kall = to uavhengige terningerc = a + b – summen av beggeFinn vanligste sum automatisk, prøv tre terninger, og lær om dictionary som en kraftigere datastruktur.
Simuler et virkelig terningspill – Ludo, Yatzy eller Poker – og sammenlign simuleringen med teoretisk sannsynlighet.
Kombinerer programmering med statistikk og matematisk analyse
Kjør programmet med 36 000 kast på tavle-PC og vis histogrammet live. Diskuter formen – er den symmetrisk? Hva kaller matematikere denne typen fordeling?
Del 1: 35 min. Del 2: 40 min. Del 3: 45 min. Alle tre delene passer over én dobbeltime og én enkelttime.
Forstå while True, nested if og hvordan valg og score fungerer. Finn de skjulte skrivefeilene!
Rett skrivefeilene, legg til avslutt-mulighet og beregn sluttresultat med prosent.
La brukeren velge regneart for hver oppgave. Legg til vanskelighetsgrad og sluttstatistikk.
Lag en treningsapp for et fag du velger – geografi, historie, engelsk eller noe annet.
Les et program med while-løkke og nested if. Forstå strukturen, finn skrivefeilene og forklar hva hvert konsept gjør.
while True – kjører for alltid til du avbryterfloat(input()) – tar imot desimaltallvalg in ('1','2','3','4') – sjekk mot flere verdierDebug koden, legg til avslutt-mulighet med break og beregn sluttresultat. La brukeren velge regneart for hver oppgave.
Bygg en treningsapp for et fag du velger – matte, geografi, engelsk eller noe annet. Bruk while-løkken og input til å lage et fullstendig program.
Feilsøking som pedagogisk metode og differensiering i matematikk
Normaliser det å gjøre feil – alle utviklere gjør det. Del 2 er designet for å gi elevene trygghet: kode kan ha feil, og det er alltid en løsbar situasjon.
Del 1: 35 min. Del 2: 35 min. Del 3: 50 min. Hele prosjektet passer i én dobbelttime + én enkelttime.
Lag filen index.html og skriv inn DOCTYPE, html, head og body. Åpne i nettleseren og se resultatet.
Legg til h1, h2, p-avsnitt og formater tekst med strong og em. Forstå hva mellomrom gjør i HTML.
Lag punktlister med ul og numrerte lister med ol. Når bruker man hvilken? Prøv lister inne i lister.
Bruk img-taggen med src og alt. Hent bilder fra nettet eller bruk egne filer. Kontroller størrelsen.
Lag lenker til andre nettsider, mellom egne sider og til steder på samme side med anchor-lenker.
Planlegg og bygg et fullstendig nettsted om et tema du velger selv, med alle elementene du har lært.
Opprett din første HTML-fil og forstå byggesteinene alle nettsider er laget av: DOCTYPE, html, head og body.
Legg til overskrifter i ulike størrelser, avsnitt og tekstformatering. Forstå hva mellomrom og linjeskift gjør i HTML.
Lag punktlister og numrerte lister. Lær når du bruker ul og ol, og prøv å lage lister inne i lister.
Legg til bilder fra internett og fra egne filer. Lær hva src og alt betyr, og kontroller størrelsen med width.
Koble sider sammen med a-taggen. Lag lenker til andre nettsider, mellom egne filer og til seksjoner på samme side.
Planlegg og bygg et fullstendig nettsted om et tema du velger – med flere sider, bilder, lister og lenker.
Ingen installasjon nødvendig – alt kjører i nettleseren
Elever kan publisere siden gratis via GitHub Pages eller Netlify Drop (dra-og-slipp). Ikke obligatorisk, men veldig motiverende for interesserte elever.
Del 1–5: 20–30 min per del. Del 6 (eget nettsted): 60–120 min. Hele prosjektet passer over 2–3 dobbelttimer.
Bli kjent med grensesnittet og styr en figur med piltastene ved å koble hendelse-blokker til bevegelse-blokker.
Legg til bakgrunner, bytt kostymer for animasjon og spill lyder. Gi spillet et eget uttrykk.
Bruk hvis-blokker i en evig-løkke til å oppdage berøring mellom figurer og lage game over.
Lag variabler for poeng og liv, og bruk tidtakeren til å lage et tidsbegrenset spill.
Bruk kloner til å lage mange kopier av en figur automatisk – perfekt for fallende gjenstander.
Planlegg og bygg et fullstendig spill med start, mål og game over – helt etter eget valg.
Bli kjent med Scratch-grensesnittet og lag ditt første program: en figur som styres med piltastene.
Gi spillet et visuelt uttrykk med egne bakgrunner, kostymeskift for animasjon og lydeffekter.
Bruk hvis-blokker i en evig-løkke til å oppdage berøring mellom figurer. Bygg et enkelt unnvikningsspill.
Legg til variabler for å holde styr på poeng og liv, og bruk tidtakeren til å lage et tidsbegrenset spill.
Bruk kloner til å lage mange kopier av en figur automatisk, og tilfeldige tall for uforutsigbar bevegelse.
Planlegg og bygg et fullstendig Scratch-spill med start, mål og game over. Del det med klassen etterpå!
Kontooppsett, klasseromsfunksjon og pedagogiske tips
Installer Scratch Desktop (scratch.mit.edu/download) for bruk uten internett. Prosjekter lagres lokalt – minn elevene på å ta backup til OneDrive/USB.
Del 1–5: 25–40 min per del. Del 6 (eget spill): 60–120 min. Hele prosjektet passer over 3–4 dobbelttimer.
Vis tekst, ikoner og animasjoner på LED-displayet. Reagér på knapp A, B og A+B med ulike hendelser.
Bruk den innebygde bevegelsessensoren til å registrere risting, helning og retning.
Send meldinger og tall trådløst mellom to micro:bit-er. Bygg et ping-pong-system eller quiz.
Koble en servo til Pin 0 og styr vinkelen med knapper eller akselerometeret.
Bygg en krets med ekstern LED, motstand, trykknapp og summer på breadboard.
Kombiner sensorer, radio og kretselementer til et eget kreativt micro:bit-produkt.
Lær å vise tekst, tall og ikoner på det 5×5 LED-displayet, og programér knapp A og B til ulike hendelser.
Bruk den innebygde bevegelsessensoren til å registrere risting, helning og orientering. Lag en digital terning!
Send meldinger og tall trådløst mellom to micro:bit-er på samme radiokanal. Bygg ping-pong eller quiz.
radio.send_string()radio.send_number()Koble en servomotor til Pin 0 og styr vinkelen (0–180°) med knapper eller akselerometeret. Bygg en mekanisk bom!
Bygg en ekstern krets med LED, 470Ω motstand, trykknapp og summer på breadboard. Forstå hvorfor motstanden er nødvendig.
Kombiner sensorer, radio, servomotor og elektrisk krets til et eget kreativt produkt. Planlegg på papir – bygg i virkeligheten.
Utstyrsliste, MakeCode-oppsett og sikkerhetstips for krets-delen
Koble alltid servo til ekstern batteripakke (3V), ikke bare USB. Servo trekker mer strøm enn micro:bit-pinnene leverer stabilt, og kan forårsake uventede restart.
Elektronikksett for skole (f.eks. Kitronik Inventor's Kit for micro:bit) inneholder det meste til del 4–5. Kjøpes billig fra Kjell & Company, Elfa eller Amazon.
Del 1–2: 30 min. Del 3 (radio): 40 min. Del 4–5 (servo/krets): 45–50 min. Del 6 (kreativt): 60–120 min.
Forstå setup() og loop(). Blink en LED og styr den med en knapp – klassisk «Hello World» for hardware.
Styr tre LED-er i sekvens med timing. Lær funksjoner, konstanter og tilstandsmaskiner.
Les temperatur fra TMP36, konverter til Celsius og vis på I2C LCD-skjerm.
Mål avstand med HC-SR04 og bygg en parkeringsassistent med LED og summer.
Styr en servomotor med en dreieknapp. Lær map()-funksjonen og Servo-biblioteket.
Kombiner sensorer og aktuatorer til et eget produkt. Planlegg på papir – bygg i kode.
Ditt første Arduino-program i C/C++. Forstå setup() og loop(), blink en LED og styr den med en knapp.
Styr tre LED-er (rød, gul, grønn) i korrekt trafikklys-sekvens. Lær funksjoner og konstanter i C++.
Les temperatur fra TMP36, konverter spenning til Celsius og vis på I2C LCD-skjerm. Legg til alarm-LED.
Mål avstand med HC-SR04 og bygg en parkeringsassistent – summer piper raskere jo nærmere noe er.
Styr en servomotors vinkel (0–180°) med en dreieknapp. Lær map()-funksjonen og Servo-biblioteket.
Kombiner sensorer, aktuatorer og logikk til et eget produkt. Fra reaksjonsspill til værstasjon – hva vil du bygge?
Utstyrsliste, installasjon, biblioteker og sikkerhetstips
Koble alltid en 220Ω (eller høyere) motstand i serie med ekstern LED. Uten motstand vil for mye strøm flyte og LED-en ødelegges – og i verste fall Arduino-pinnen.
La elevene simulere kretsen i Tinkercad Circuits (tinkercad.com/circuits) FØR de bygger den fysisk. Perfekt for å oppdage koblingsfeil uten risiko.
Del 1–2: 35–40 min. Del 3–4: 40–45 min. Del 5: 40 min. Del 6 (kreativt): 60–120 min. Totalt ca. 5–6 timer.
Naviger i 3D-rommet, plasser former på arbeidsplanet og lær de grunnleggende verktøyene.
Kombiner solide former og negative hull for å lage komplekse modeller. Lag et navneskilt.
Sjekk modellen og eksporter som STL-fil i millimeter. Forstå kva STL-formatet er.
Åpne STL i Cura, sett laghøyde, fyll og støtte – og eksporter G-kode til printeren.
Start printen, følg med på første lag, og etterbehandle det ferdige objektet.
Fra egen idé og skisse til ferdig 3D-printet objekt – hele arbeidsflyten selvstendig.
Naviger i 3D-rommet, flytt og skaler former, og lær hvordan arbeidsplanet fungerer. Ingen installasjon – bare nettleser.
Kombiner solide former og negative hull (Hole) for å skjære geometri ut av hverandre. Lag et navneskilt med 3D-tekst og hengehull.
Sjekk at modellen er printbar, forstå STL-formatet og eksporter i rett enhet (millimeter). Lever filen til læreren.
Åpne STL i Ultimaker Cura, velg laghøyde, fyllprosent og støtte, og eksporter G-kode klar for printing.
Start printen, følg med på første lag og etterbehandle det ferdige objektet. Forstå hvorfor første lag er det viktigste.
Hele arbeidsflyten selvstendig: idé → skisse → Tinkercad → STL → Cura → ferdig 3D-printet objekt du kan ta med hjem.
Alt du trenger å vite for å komme i gang med Tinkercad i klasserommet
For elever under 13 år: bruk alltid lærer-administrerte kontoer. La IKKE barn under 13 opprette egne Autodesk-kontoer. Sjekk at skolens personvernerklæring dekker bruk av Tinkercad.
Nettleser: Chrome eller Edge anbefalt. Krever WebGL – test på skolens maskiner på forhånd (get.webgl.org). Tinkercad er helt gratis og lagrer automatisk i skyen.
Last ned lærerveilednings-PDF for komplett tidplan, vurderingskriterier, feilsøkingstips for 3D-printeren og råd om filamentbehandling.
👩🏫 Last ned lærarveiledning (PDF)En ELEGOO eller Creality Ender 3-type printer (ca. 2000–3000 kr) er mer enn nok til skolebruk. PLA-filament er trygt, lukter lite og er enkelt å bruke. Typisk elevmodell (navneskilt, nøkkelring) tar 20–60 minutter å printe – planlegg slik at print starter tidlig i dobbelttimen. Cura lastes ned gratis fra ultimaker.com. Ha alltid spatel, tang og sandpapir tilgjengelig ved printeren.
Enkel Python-editor laget for elever. Har innebygd støtte for pygame og micro:bit. Gratis, ingen konfigurasjon. Anbefalt for 6.–8. trinn.
↗ Last ned Mu EditorIDLE følger med Python. Enkel å bruke for tekstprogrammer uten pygame. Last ned Python.org og IDLE er inkludert.
↗ Last ned PythonKraftig editor for mer erfarne elever. Støtter Python, HTML, JavaScript og mye mer. Krever manuell installasjon av utvidelser.
↗ Last ned VS CodeKjør Python direkte i nettlesaren – ingen installasjon nødvendig. Bra for tekstprogrammer. Perfekt på Chromebook eller lånte maskiner.
↗ Åpne Trinket.ioNettbasert kodemiljø som støtter Python, HTML, JavaScript og meir. Gratis basis-konto. Kan dele prosjekt med lenke – fint til innlevering.
↗ Åpne Repl.itDet offisielle Scratch-miljøet. Ingen installasjon – køyrer i alle nettlesarar. Elevar kan logge inn og lagre prosjekta sine i skyen.
↗ Åpne ScratchOffisiell desktop-app for Scratch – fungerer utan internett. Bra på skular med ustabil nettilgang. Lagrar lokalt på maskinen.
↗ Last ned Scratch DesktopRessurssider for lærere fra MIT. Undervisningsopplegg, læringsguider og fellesskap for Scratch-lærere. Gratis og åpen tilgang.
↗ Åpne ScratchEdDet offisielle programmeringsmiljøet for micro:bit. Støtter blokk-programmering og Python. Ingen installasjon – bare koble micro:bit til USB.
↗ Åpne MakeCodeMu Editor støtter direkte Python-programmering av micro:bit. Last ned, koble til og flash koden med ett klikk. Anbefalt for Python-elever.
↗ Last ned Mu EditorOffisiell side for micro:bit med prosjektideer, lærarressursar og dokumentasjon. Mange ferdiglagde oppgåver sortert etter alder og nivå.
↗ microbit.org/teachDet offisielle utviklingsmiljøet for Arduino. Gratis og tilgjengelig for Windows, Mac og Linux. Last ned og installer – inkluderer alle drivere.
↗ Last ned Arduino IDENettbasert Arduino-editor – ingen installasjon nødvendig. Krever en (gratis) Arduino-konto. Bra på maskiner der man ikke kan installere programmer.
↗ Åpne Cloud EditorFullstendig referansedokumentasjon for alle Arduino-funksjoner. Uunnværlig når elevene skal slå opp hvordan en funksjon brukes.
↗ Arduino ReferenceSimuler Arduino-kretser i nettleseren uten fysisk utstyr! Perfekt til å teste kode og kretser før man bygger dem i virkeligheten.
↗ Tinkercad CircuitsGratis nettbasert 3D-modelleringsprogram fra Autodesk. Ideelt for elever – enkelt grensesnitt, automatisk lagring i skyen. Krever WebGL-støtte.
↗ Åpne TinkercadDet mest brukte slice-programmet for FDM-printing. Gratis, støtter de fleste printermodeller og har gode standardprofiler for PLA.
↗ Last ned CuraKraftig og gratis slice-program fra Prusa. God støtte for mange printertyper, avanserte støttestrukturer og fin forhåndsvisning av lag.
↗ Last ned PrusaSlicerGratis database med tusenvis av 3D-modellar å laste ned og printe. Bra for å inspisere andres modellar og finne inspirasjon til eigne prosjekt.
↗ Åpne PrintablesMozillas referanseside for HTML, CSS og JavaScript. Bransjestandardens dokumentasjon – forklarar alle HTML-taggar med eksempel. Gratis.
↗ Åpne MDNInteraktive HTML-, CSS- og JavaScript-opplæringar med «Try it yourself»-editor. Enklare enn MDN – veldig bra for nybegynnere.
↗ Åpne W3SchoolsHTML-prosjektet krever bare en teksteditor og en nettleser. Notepad++ er gratis og fargekoder HTML-syntaks – anbefalt fremfor vanlig Notepad.
↗ Last ned Notepad++Nettbasert editor for HTML, CSS og JavaScript – sjå resultatet live medan du skriv. Ingen konto nødvendig for å teste. Bra til demonstrasjonar.
↗ Åpne CodePen