Digitalt lärande och programmering i klassrummet Innehåll Vad är programmering och varför behövs det? Argument för (och emot) programmering Programmering i styrdokumenten Kort introduktion till programmering o Några grundbegrepp Skillnader och likheter mellan olika verktyg Datalogiskt perspektiv hur lär man sig programmera? o Vad kräver programmering? o Vad är det som eleverna egentligen ska lära sig? 1
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. Skolverket om Digital kompetens i styrdokumenten http://www.skolverket.se/skolutveckling/resurser-forlarande/itiskolan/digital-kompetens-1.246272 Förslag med förändringar i läroplaner, kursplaner, ämnesplaner >> 2
Läroplan för grundskolan Skolan ska ansvara för att varje elev efter genomgången grundskola: kan använda såväl digitala som andra verktyg och medier för kunskapssökande, informationsbearbetning, problemlösning, skapande, kommunikation och lärande, Kursplaner - Matematik Centralt innehåll Algebra Hur entydiga stegvisa instruktioner kan konstrueras, beskrivas och följas som grund för programmering. Symbolers användning vid stegvisa instruktioner. (åk 1-3) Hur algoritmer kan skapas och användas vid programmering. Programmering i visuella programmeringsmiljöer. (åk 4-6) Hur algoritmer kan skapas och användas vid programmering. Programmering i olika programmeringsmiljöer. (åk 7-9) Problemlösning Hur algoritmer kan skapas, testas och förbättras vid programmering för matematisk problemlösning. (åk 7-9) 3
Kursplaner Biologi, Fysik. Kemi Centralt innehåll Biologins/Fysikens/Kemins metoder och arbetssätt (åk 7-9) hur simuleringar kan användas som stöd vid modellering. Kursplaner Samhällskunskap Syfte Vidare ska undervisningen ge eleverna möjlighet att förstå digitaliseringens betydelse för samhällsutvecklingen och för den personliga integriteten. Centralt innehåll Information och kommuikation (åk 7-9) samt hur information i digitala medier kan styras av bakomliggande programmering. 4
Kursplaner Svenska Syfte Eleverna ska även ges möjligheter att kommunicera i digitala miljöer med interaktiva och föränderliga texter. Centralt innehåll Berättande texter och sakprosatexter Texter i digitala miljöer för barn, till exempel texter med länkar och andra interaktiva funktioner. (åk 1-3) Texter i digitala miljöer, till exempel texter med länkar och andra interaktiva funktioner. (åk 4-6) Texter i digitala miljöer med länkar och andra interaktiva funktioner. (åk 7-9) Kursplaner Teknik Centralt innehåll Tekniska lösningar Vad datorer används till och några av datorns grundläggande delar för inmatning, utmatning och lagring av information, till exempel tangenter, skärm och hårddisk. Några vanliga föremål som styrs av datorer. (åk 1-3) Några av datorns delar och deras funktioner, till exempel processor och arbetsminne. Hur datorer styrs av program och kan kopplas samman i nätverk. (åk 4-6) Tekniska lösningar som utnyttjar elektronik och hur de kan programmeras. (åk 7-9) 5
Kursplaner Teknik Centralt innehåll Arbetssätt för utveckling av tekniska lösningar Att styra föremål med programmering. (åk 1-3) Att styra egna konstruktioner eller andra föremål med programmering. (åk 4-6) Hur digitala verktyg kan vara stöd i teknikutvecklingsarbete till exempel för att göra ritningar och simuleringar. (åk 7-9) När kan man börja? Hur tidigt som helst! Bli producent direkt, inte bara konsument. o 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örja så tidigt som möjligt: o Unga barn (upp till 8-10 år) har ännu relativt homogena datorvanor -> enklare grupper att hantera. o Nästan alla använder datorer, de flesta för att spela -> gemensam nämnare för nästan hela klassen. 6
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. Kort introduktion till programmering grundbegrepp och terminologi 7
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 åt gången. Varje sats ger instruktioner om en viss sak: o Vad datorn ska göra. o Hur datorn ska veta vilka uppgifter den ska göra. o Behandling av data. 8
16-09-14 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. o Tolkning, assemblering, kompilering: beskriver översättningsprocessen o Binärfil, maskinkod, kompilerad kod: beskriver det som datorn kan läsa Ofta ingår flera steg: Scratch -> Flash -> ActionScript -> maskinkod 9
16-09-14 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? 10
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.) Sträng (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. 11
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 12
16-09-14 Programmeringskompetens förmågor + färdigheter + attityder 13
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. 14
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. 15
16-09-14 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ändiga data Att tolka omgivningen Kan reflektera över sitt eget arbete Lär sig hela tiden Otroligt kreativ 16
16-09-14 Att utvärdera lösningar Kunskap handlar ofta om fakta, 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. 17
16-09-14 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. 18