Digitalt lärande och
programmering i klassrummet
Innehåll
• Programmering
• Vad är programmering och varför behövs det?
• Argument för (och emot) programmering
• Kort introduktion om programmering
• Några grundbegrepp
• Skillnader och likheter med olika verktyg
• Datalogiskt perspektiv - hur lär man sig programmera?
• Vad kräver programmering?
• Vad är det som eleverna egentligen ska lära sig?
Programmering, JA!
• Programmering tränar logik och analytisk förmåga samt problemlösning.
• Allmännyttiga färdigheter som ingår i alla ämnen!
• Att växa upp omringad av digital teknik innebär inte att eleverna lär sig förstå
hur den fungerar. Hjälp eleverna ta steget från konsument till producent.
• Ta vara på elevernas intresse för teknik: arbeta med projektformer som känns
relevanta.
• Ge flera elever chansen att vara bra!
• Ge eleverna bättre förutsättningar att förstå och kritiskt analysera olika digitala
medier.
• Visa på nya yrkeskategorier och på vilka färdigheter det kräver att, till
exempel, bli spelutvecklare.
När kan man börja?
• Hur tidigt som helst! Bli producent diret, inte bara konsument.
• BeeBot & BlueBot, Daisy the Dinosaur, Scratch Jr fungerar
från förskoleålder
• Var inte för ambitiös. En liten insats kan ha stor inverkan
• Argument för att böra så tidigt som möjligt:
• Unga barn (upp till 8-10 år) har ännu relativt homogena
datorvanor -> enklare grupper att hantera.
• Nästan alla använder datorer, de flesta för att spela. ->
gemensam nämnare för nästan hela klassen.
Spelprogrammering
• Varför arbeta med spel?
• Brett innehåll: Konkretisera och utforska innebörden av begrepp
inom olika skolämnen.
• Lätt att variera samma struktur med olika tema -> repetition utan att
det blir tråkigt.
• Använder naturligt både bild och ljud.
• Tar vara på elevernas kreativitet och skaparglädje.
• Projekten har hög personlig relevans - coolt att kunna.
• Bekant material för eleverna - färdig koppling till abstrakta begrepp.
Kort introduktion till programmering
- grundbegrepp och terminologi
Olika verktyg
Gemensam struktur
• Program består av instruktioner givna i en bestämd form = syntax.
• Programmeringssyntax varierar från språk till språk men strukturen är ofta
väldigt lika:
• Program består av satser i en viss ordningsföljd handlingar/instruktioner/
kommandon.
• Programmet följer vanligtvis instruktionerna en i gången.
• Varje sats ger instruktioner om en viss sak:
• Vad datorn ska göra.
• Hur datorn ska veta vilka uppgifter den ska göra.
• Behandling av data.
Programmeringsspråk
Programmeringsspråk?
• Maskinkod består av nollor och ettor. Verkligheten vi vill beskriva består av
något annat.
• Högnivåspråk = språk som är skrivna för människor.
• Programmeringsspråk måste översättas innan datorn kan utföra
instruktionerna.
• Tolkning, assemblering, kompilering: beskriver översättningsprocessen
• Binärfil, maskinkod, kompilerad kod: beskriver det som datorn kan läsa
• Ofta ingår flera steg: Scratch -> Flash -> ActionScript -> maskinkod
Abstraktion
• Det handlar om att dölja de tekniska detaljerna bakom
händelser:
• Hur räknar man ut kvadratroten av ett tal?
• Hur sorterar man en namnlista i alfabetisk ordning?
• Hur ritar vi Scratch-katten på skärmen?
Det behöver vi inte bry oss om!
Data
Data
• Syftet med program är att styra processer och information, alltså hantera data.
• Genom att inspektera data från interna och externa processer får vi också veta
hur arbetet går och vilket läge programmet befinner sig i.
• Hur data används och hur den ska hanteras beror på vilken sorts data det
är:
• Tal (finns olika sorter: heltal, små och stora decimaltal, osv.)
• String (lagrar text: ord, meningar, bokstäver)
• Boolesk datatyp (lagrar: sant eller falskt, 1 eller 0)
• Variabler är vårt sätt att hantera data, som små minneslappar.
Vad datorn ska göra
• Ett enda handlingsförlopp: beskriv allting steg för steg.
• Slingor är framför allt ett sätt att skriva tydligare och
kortare kod.
⬆↩⬆⬆↪⬇⬇⬇⬇
Hur vet datorn vad den ska göra?
• Alternativa handlingsförlopp behövs för att hantera situationer som
till exempel:
• Inte är fullt kända på förhand.
• Förändras under tiden att vi utför uppgiften (till exempel för att vår
kod påverkar den).
• Vi behöver kunna beskriva hur vi väljer mellan olika handlingsförlopp.
• Med hjälp av villkorssatser och sensorer (=data) kan vi känna av
situationen och agera på ett ändamålsenligt sätt.
Villkor
• Ett sätt att formulera frågor till datorn
• Svaret måste alltid vara “ja” eller “nej”
för datorn måste kunna fatta beslut utifrån
det
• Står det ett hinder framför roboten? JA -> dansa twist
• Kolliderade vi just med en haj? NEJ -> simma vidare
• Är x > 100?
JA -> göm sprajten
Gul och grön? JA!
Gul? JA!
Grön? JA!
Övning
Programmeringskompetens
Programmeringskompetens
förmågor + färdigheter + attityder
Programmeringskompetens
Analys och problemlösning
+
Att kunna formulera sig exakt
+
Att våga experimentera och utforska
Förmågor: analys och problemlösning
• Att spjälka upp uppgifter i mindre delsteg.
• Att kunna tänka igenom alternativa händelseförlopp.
• Att definiera vad som kännetecknar olika situationer.
Att kunna formulera sig med hjälp av
programkod
• Program är instruktioner till datorn och att programmera är att
formulera instruktioner.
• Det kluriga: man måste beskriva exakt hur saker skall utföras.
• Hur man beskriver händelser steg för steg
• Hur man utför en uppgift med en viss uppsättning verktyg.
• Hur man beskriver förväntade resultat på ett tillräckligt
specifikt sätt så de går att verifiera.
Våga experimentera och utforska
• Attityder är minst lika viktiga som teoretisk kunskap och
färdigheter.
• Programmering är en kreativ process:
• Man måste våga experimentera. “Jag vill göra själv.”
• Se problem som utmaningar.
• Arbeta iterativt för att utveckla lösningar.
Vad lönar det sig att göra med datorer?
Datorn är bra på:
Att lösa väldefinierade
problem: logik
Räknar bra
Slarvar inte och jobbar
supersnabbt
Kan göra många saker
samtidigt
• Människan är bra på:
• Att hantera ofullständig
data
• Att tolka omgivningen
• Kan reflektera över sitt
eget arbete
• Lär sig hela tiden
• Otroligt kreativ
Att utvärdera lösningar
• Naturvetenskaplig kunskap handlar om hur saker är.
• Man kan ha rätt och man kan ha fel.
• Inom designvetenskap (som programmering ingår i) handlar
kunskap istället om hur man gör för att åstadkomma ett visst
resultat utifrån en given utgångssituation.
• Inte rätt eller fel utan snarare bra eller mindre bra lösningar.
• Värderingsfråga vilken sorts lösningar som är eftertraktade.
Summering
• Programmering är att formulera instruktioner som beskriver:
• Vad datorn ska göra.
• Hur datorn ska veta vilka uppgifter den ska göra.
• Behandling av data.
• Programmeringskompetens handlar alltså om:
• Förmågan att analysera problem
• Färdigheter att formulera lösningar
• Attityder till att arbeta iterativt och testa sig fram
• Fokus på undervisningen kan ligga på ett, eller flera av dessa områden.