Programmera på riktigt

Relevanta dokument
Arbetsområde: Jag får spel

formulera och lösa problem med hjälp av matematik samt värdera valda strategier och metoder,

Jörgen Lagnebo PLANERING OCH BEDÖMNING MATEMATIK ÅK 9

Kursplan Grundläggande matematik

Samband och förändringar Olika proportionella samband, däribland dubbelt och hälften.

Del ur Lgr 11: kursplan i matematik i grundskolan

Förslag den 25 september Matematik

MATEMATIK 3.5 MATEMATIK

Jörgen Lagnebo PLANERING OCH BEDÖMNING MATEMATIK ÅK 8

formulera och lösa problem med hjälp av matematik samt värdera valda strategier och metoder,

MATEMATIK 5.5 MATEMATIK

Indelning av grundläggande vuxenutbildning i matematik i delkurser c, d, e och f. 150 verksamhetspoäng vardera.

Centralt innehåll. I årskurs 1.3

ämnesområden. Funktioner och räta linjens ekvation. Hur funktioner kan användas för att undersöka förändring, förändringstakt och andra samband.

ESN lokala kursplan Lgr11 Ämne: Matematik

Kursplanen i matematik grundskolan

Matematik - Åk 9 Funktioner och algebra Centralt innehåll

Betyg i årskurs 6. Grundskolans läroplan Kursplan i ämnet matematik

Talföljer och cirklar: Algoritmer, geometri och mönster 2 av 4

FÖRSLAG TILL KURSPLAN INOM KOMMUNAL VUXENUTBILDNING GRUNDLÄGGANDE NIVÅ

Lokal pedagogisk planering i matematik för årskurs 9

MATEMATIK 3.5 MATEMATIK

Skolverkets förslag till kursplan i matematik i grundskolan. Matematik

Matematikplanering 3 geometri HT-12 VT-13 7 a KON

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Syfte. Malmö stad Komvux Malmö Södervärn PRÖVNING. prövning grundläggande matematik

Studenter i lärarprogrammet Ma 4-6 I

Lgr 11 matriser i Favorit matematik 4 6

Kurskod: GRNMAT2 Verksamhetspoäng: 600

Arbetsområde: Från pinnar till tal

matematik Syfte Kurskod: GRNMAT2 Verksamhetspoäng: KuRSplanER FöR KoMMunal VuxEnutBildninG på GRundläGGandE nivå 55

Terminsplanering årskurs 6 Matematik Ärentunaskolan

Extramaterial till Matematik X

Lgr 11, miniräknare och skrivmaterial. 33 p 20 p. Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

22,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: Matematik 3hp. Studenter i inriktningen GSME. TentamensKod:

Matematiska lägesmått med en micro:bit

Slump och statistik med Scratch

Kursplan för Matematik

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Användarhandledning Version 1.2

Statistik, sannolikhet, algebra och funktioner, 3 hp. Studenter i lärarprogrammet F-3 III, 12F380 ht17 Varberg

Slump och statistik med Scratch. Se video

PROGRAMMERING I SKOLAN Utbildning av kollegor på Carlssons skola CECILIA CHRISTIANSEN ULRIHCA MALMBERG

Om Lgr 11 och Favorit matematik 4 6

Remissversion av kursplan i matematik i grundskolan. Matematik. Syfte

Matematiska lägesmått med en micro:bit

Matematik Steg: Bas. Mål att sträva mot Mål Målkriterier Omdöme Åtgärder/Kommentarer

Provmoment: Tentamen Matematik och matematikdidaktik, 3 hp, tillfälle 1

Om LGR 11 FÖRMÅGOR CENTRALT INNEHÅLL. De matematiska förmågor som undervisningen i åk 1-9 syftar till att eleverna ska utveckla.

Programmera ett övergångsställe

Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens

Digitalt lärande och programmering i klassrummet

Koda ett mattetest 5 av 5. Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Koda ett mattetest 5 av 5

Föreläsning 2. Operativsystem och programmering

JavaScript Block Editor:

Dagens innehåll Bedömning för lärande i matematik. PRIM-gruppen. Katarina Kjellström Inger Ridderlind Anette Skytt

7F Ma Planering v2-7: Geometri

Ma7-Per: Geometri. Det tredje arbetsområdet handlar om geometri.

Programmering från början

Hjälpmedel: Miniräknare, skrivmateriel (ex. linjal, gradskiva, passare) och Lgr 11

8A Ma: Geometri. Det tredje arbetsområdet handlar om geometri.

Programmering eller Datalogiskt tänkande

Programmering. Analogt och med smårobotar. Nina Bergin

MATEMATIK. Ämnets syfte. Kurser i ämnet

Om LGR 11 FÖRMÅGOR CENTRALT INNEHÅLL. De matematiska förmågor som undervisningen i åk 1-9 syftar till att eleverna ska utveckla.

9A Ma: Statistik och Sannolikhetslära

8F Ma Planering v2-7 - Geometri

9A Ma: Geometri. Det tredje arbetsområdet handlar om geometri.

Kunskapskrav. Materialet består av flera olika komponenter.

Målet med undervisningen är att eleverna ges förutsättningar att:

7E Ma Planering v45-51: Algebra

Om LGR 11 FÖRMÅGOR CENTRALT INNEHÅLL. De matematiska förmågor som undervisningen i åk 1-9 syftar till att eleverna ska utveckla.

Grundläggande matematik fo r grundlärare med inriktning mot arbete i grundskolans a rskurs 4-6, 15 hp VT ho gskolepoäng

Lokal pedagogisk planering i matematik för årskurs 9

9E Ma Planering v2-7 - Geometri

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in. En uppgift per blad och inga svar på baksidan av bladen Lycka till!

Om LGR 11 FÖRMÅGOR CENTRALT INNEHÅLL. De matematiska förmågor som undervisningen i åk 1-9 syftar till att eleverna ska utveckla.

Ma7-Åsa: Statistik och Sannolikhetslära

Vad är algoritmer? Lektionen handlar om att få en grundläggande förståelse för vad en algoritm är. Vad är algoritmer?

JAVAUTVECKLING LEKTION 4

Bedömning för lärande i matematik

Planering Matematik åk 8 Algebra, vecka Centralt innehåll

Ma7-Per: Algebra. Det andra arbetsområdet handlar om algebra och samband.

Ladokkod: TentamensKod: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Studenter i lärarprogrammet GF(11GF20) 46 p G: 28 p VG: 38 p

EV3 Design Engineering Projects Koppling till Lgr11

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM

Koda ett mattetest 4 av 5. Lektionen handlar om att utveckla mattetest så det fungerar för alla multiplikationstabeller. Koda ett mattetest 4 av 5

8F Ma Planering v45-51: Algebra

Mönster och Algebra. NTA:s första matematiktema. Per Berggren & Maria Lindroth

48 p G: 29 p VG: 38 p

Extramaterial till Matematik Y

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Lokal pedagogisk planering i matematik för åk 8

Varför programmering i läroplanerna?

Om Lgr 11 och Favorit matematik 4 6

Matematik. Mål som eleverna skall ha uppnått i slutet av det fjärde skolåret. Mål som eleverna skall ha uppnått i slutet av det femte skolåret

Koda ett mattetest (lektion 4 av 5)

Optimering av olika slag används inom så vitt skilda områden som produktionsplanering,

Programmering från början

Transkript:

Programmera på riktigt Hur gör man på högstadiet? Jan Skansholm

Vad säger läroplanen för grundskolan? Eleven ska ges möjlighet att utveckla sin förmåga att använda digital teknik, kan använda såväl digitala som andra verktyg och medier för kunskapssökande, informationsbearbetning, problemlösning, skapande, kommunikation och lärande, får använda digitala verktyg på ett sätt som främjar kunskapsutveckling. Tolkning: Digitala verktyg (ordbehandlingsprogram, webbläsare, etc.) används som hjälpmedel vid inlärningen. Gäller för alla ämnen.

Vad säger kursplanen i matematik? Digitala verktyg ska inte bara användas som hjälpmedel, utan man ska också programmera. System som scratch, code.org och liknande kan användas på låg- och mellanstadiet. På högstadiet ska man programmera på riktigt. Central skrivning: Algebra: Hur algoritmer kan skapas och användas vid programmering. Problemlösning: Hur algoritmer kan skapas, testas och förbättras vid programmering för matematisk problemlösning. Tolkning: Lär ut textbaserad programmering. Använd begrepp och exempel kopplade till matematiken.

Är programmering matematik? Typexempel i matematik: Linda har fyra äpplen och Maja tre. Hur många äpplen har de tillsammans? Typexempel i programmering: Skriv ett program som läser in hur många äpplen två barn har. Programmet ska som resultat visa hur många äpplen de två barnen har tillsammans. Programmet ska utformas så att man kan köra det flera gånger och ge olika indata varje gång.

Är programmering matematik, fortsättning Programmering använder matematik, men det är ett praktiskt ämne. Man måste lära sig att se mönster. Man bygger upp sina program med hjälp av olika byggstenar. Man konstruerar sina program.

Hur utformar man programmeringsundervisning? På samma sätt som undervisning i andra ämnen seriöst. Inte bara kul spel eller något man lägger in för att fylla ut lektionen. Man börjar med grundläggande begrepp och bygger på med mer avancerade begrepp och konstruktioner efter hand. Kräver planering. Bra läromedel kan, som i andra ämnen, vara ett gott stöd.

Praktisk verksamhet Man lär sig att programmera genom att öva. Man lär sig inget av att bara titta på. Helst ska varje elev utföra uppgifterna själv, i sin egen takt på sin egen dator. Eventuellt kan två elever samarbeta om de har liknande förutsättningar och om båda deltar aktivt. Programmering lämpar sig inte för arbete i större grupper.

Lärarens förarbete Läraren bör ha löst alla uppgifter själv i förväg. Läraren måste ha bekantat sig med den typ av datorer som eleverna använder.

Förutsättningar Verksamma professionella lärare i matematik Saknar i många fall erfarenhet av programmering Ska undervisa

Mål Ge lärarna egna, grundläggande men tillräckliga, kunskaper i programmering. Ge lärarna ett konkret och praktiskt verktyg som de kan använda i sin egen undervisning.

Verktyg Boken Programmera på riktigt (Finns i två versioner, för lärare respektive elever.) Filer med övningsuppgifter Filer med lösningar till uppgifter

Bokens egenskaper Täcker in kursplanen (och lite till). Ger eleverna grundläggande generella kunskaper i programmering som de kan bygga vidare på. Använder ett av de vanligast använda programspråken: JavaScript. Skapar program med moderna, händelsestyrda, användargränssnitt. Ska fungera praktiskt i klassrummet. Inte beroende av någon extern webbplats, men man kan arbeta online om man vill. Inga registreringar eller avgifter behövs. Fungerar till och med om det lokala nätverket krånglar. Kräver inga installationer av speciell programvara. En webbläsare räcker. Kan användas på alla vanliga datorer.

Ambitionsnivåer Small: Täcker inte in alla kraven i kursplanen, men ger en god, stabil början. Meningsfull, även om man inte går vidare. Medium: Täcker in det viktigaste i kursplanen, men inte riktigt allt. Har man nått hit är det OK. Large: Täcker in allt i kursplanen. Extra Large: Överkurs för snabba och intresserade lärare och elever.

Bokens pedagogiska upplägg Nya begrepp bygger hela tiden på sådant man lärt sig tidigare. Eleverna ska hela tiden vara aktiva. För de flesta moment gör eleverna följande: Provkör ett färdigt program. Studerar programkoden. Gör eventuellt ändringar i koden och provkör igen. Får en förklaring av de nya begreppen. Löser uppgifter med liknande problem, där det nya momentet ingår. Läraren kan naturligtvis varva detta med korta gemensamma genomgångar och repetitioner.

Bokens innehåll

Nivå Small Mål: Känna till lite datorhistoria Kunna redigera och ändra programtext Kunna köra program Kunna hitta vanliga fel Kunna skriva program som läser indata och som gör matematiska beräkningar Kunna anropa färdiga funktioner för att rita

Första lektionen Mjukstart, väcka intresse Diskussion, programmerade apparater i vår omgivning Lite historia. Tidig programmering (vävstol, självspelande piano, etc.) Första elektroniska datorerna (ENIAC) Program, från nollor och ettor till högnivåspråk (Java, C, JavaScript ) Utdrag ur kursplanen Kunskaper om historiska sammanhang där viktiga begrepp och metoder i matematiken har utvecklats. Matematik kopplad till den tekniska och digitala utvecklingen.

Olika typer av program Program som körs på egen dator. Kallas numera ofta appar. program Program OS Program som körs på webben. Client-Server. Svaret kan innehålla ett program, skript. Körs i webbläsaren. webbserver webbläsare webbadress html-kod med skript Programmering i olika programmeringsmiljöer.

Vår programmeringsmiljö Vi kör våra program direkt i webbläsaren, utan att anropa någon server. Vi sparar våra program lokalt, på den egna datorn. skript webbläsare Alternativ: Vi kör våra program på en extern webbplats och sparar våra program på nätet.

Förberedelser Vi behöver: Webbläsare, helst Chrome. Kan installeras i förväg. Finns alltid i Chromebooks. Texteditor, finns inbyggd i systemet (Anteckningar, Textredigerare, ) Kan användas, men Caret (tillägg i Chrome) är bättre för JavaScript. Filer till uppgifter från Studentlitteraturs hemsida. Eleverna: Skapar en arbetsmapp på sin dator. Laddar ner filer. Lägger eventuellt till texteditorn Caret. Utveckla kunskaper i att använda digitala verktyg.

Köra program Alla program kan startas med hjälp av filen start.html. Exempel: Programmet hej. Händelsestyrt program. Kan användas som mall för de flesta program i fortsättningen.

Variabler och typer En variabel är en behållare som kan innehålla data En variabels typ bestäms av det man tilldelar den: let n = 5; // Number let s = Hej! ; // String let r = document.createelement("h3"); // Object Variabelbegreppet. Reella tal.

Felhantering Alla som programmerar råkar ut för fel. Viktigt att känna igen vanliga fel, lära sig att hitta dem och att rätta dem. Syntaxfel, när man inte har följt programspråkets regler. Exekveringsfel, inträffar när man kör programmet. Logiska fel, fel formel eller algoritm har använts. Hjälpmedel finns i texteditorn Caret och i webbläsaren. Felaktiga programkonstruktioner markeras och en förklaring ges. Rimlighetsbedömning

Enkla beräkningar Läsa numeriska indata Använda aritmetiska uttryck Operatorer, +, -, *, /, %, ** Parenteser Anropa matematiska standardfunktioner, t.ex. sqrt (kvadratrot) let a = Number(svar1); let b = Number(svar2); let c = Math.sqrt(a**2 + b**2); Visa numeriska resultat Algebraiska uttryck, formler och ekvationer. Potensform. Beräkning av area, omkrets och volym hos geometriska objekt. Slumptal.

Enkla geometriska figurer Anropa färdiga funktioner för grafik. Utnyttja koordinatsystem vid placering av figurer. Använda vinklar för att rotera. Rita figurer med hjälp av linjer Koordinatsystem. Vinklar. Avbildning och konstruktion av geometriska objekt. Skala vid förminskning och förstoring.

Nivå Medium Mål: Kunna formulera algoritmer och uttrycka dem i programkod. För att man ska kunna översätta algoritmer till ett program, är det tre konstruktioner som måste finnas i programspråket: Man måste kunna utföra ett steg i taget. Man måste kunna välja olika alternativ. Man måste kunna upprepa.

Att välja För att skapa alternativa vägar i ett program används oftast en s.k. if-sats: Exempel: let pris; if (alder < 12) { pris = 3145; } else { pris = 4295; }

Logiska uttryck Villkoret som styr vilken väg man tar är ett s.k. logiskt uttryck. Använder jämförelseoperatorer, ==,!=, <, <=, > och >= Använder de logiska operatorerna && (och), (eller) och! (icke) Exempel. a > 0 && b > 0 (ar % 4 == 0 && ar % 100!= 0) ar % 400 == 0

Att upprepa För att upprepa kodrader använder man en while- eller for-sats. Exempel: let summa = 0; let k = 1; while (k <= n) { summa = summa + k; // Öka summan med k k = k + 1; // Öka k med 1 } let kapital = 1000; for (let ar = 1; ar <= n; ar = ar + 1) { kapital = kapital + kapital * 0.01 * ranta; }

Vad är en algoritm? En exakt beskrivning av hur man löser ett visst problem. Innehåller ett antal instruktioner som steg för steg talar om hur man ska göra för att nå målet. Kan uttryckas på olika sätt: - Pseudokod (blandning av naturligt språk och matematiska symboler) - Bilder och symboler - Strukturdiagram (flödesschema) Strategier för problemlösning, Hur algoritmer kan skapas, testas och förbättras vid programmering för matematisk problemlösning.

Pseudokod Exempel. Beräkna summan 1+2+3+ n Läs in ett värde till n. Använd en variabel summa som sätts till 0 och en räknare k som sätts till 1. Upprepa följande två rader så länge som k är mindre än eller lika med n: Öka summa med k. Öka k med ett. Visa summa som resultat.

Strukturdiagram Beräkna summan 1+2+3+ n

Stegvis förfining Dela in problemet i mindre delproblem som man kan lösa var för sig. Delproblemen kan i sin tur delas upp i mindre delproblem. Fortsätt tills alla delproblem är lösta och översatta till programkod.

Förbättringar av algoritmer När en algoritm fungerar kan man ibland göra ändringar som gör att den blir mer effektiv; man gör optimeringar. Man ska normalt inte göra optimeringar i början, när man konstruerar algoritmen.

Nivå Large Mål: Kunna konstruera egna funktioner Kunna dela upp program i olika delar Kunna hantera multipla data (statistik, talföljder etc.)

Deklaration av funktion Exempel. Funktion som räknar ut medelvärdet av två tal: function medelv(a, b) { return (a+b)/2; } Exempel. Funktion som räknar ut siffersumman i ett tal: function siffsum(n) { let sum = 0; while(n > 0) { let rest = n % 10; sum = sum + rest; n = (n - rest) / 10; } return sum; } // addera sista siffran // ta bort den sista siffran

Anrop av funktion let x = 2.0; let y = 2.5; let z = medelv(x, y); 2.0 2.5 medelv a 2.0 b 2.5 2.25 medelv(x, y) Hur funktioner kan användas för att undersöka förändring, förändringstakt och andra samband.

Arrayer En behållare som innehåller flera värden, s.k. element. Elementen är normalt av samma typ. Arrayer kallas ibland fält på svenska. En enkel variabel: 3 En array: 5 2 0-4 19 Tabeller hur de kan tolkas och användas för att beskriva resultat av egna och andras undersökningar.

Tillämpning, talföljder Exempel. Fibonaccis talföljd. Varje tal är summa av de två föregående. De första två talen är 0 respektive 1. let f = []; f.length = 20; f[0] = 0; f[1] = 1; for (let i = 2; i < f.length; i = i + 1) { f[i] = f[i-2] + f[i-1]; } Hur mönster i talföljder och geometriska mönster kan konstrueras, beskrivas och uttryckas generellt.

Tillämpning, statistik Beräkna medelvärdet. function medel(a) { let sum = 0; for (let i = 0; i < a.length; i = i + 1) { sum = sum + a[i]; } return sum / a.length; } Hur lägesmått och spridningsmått kan användas för bedömning av resultat vid statistiska undersökningar.

Tillämpning, statistik, fortsättning Beräkna standardavvikelsen. s = n 1 -- x n å ( i m) 2 i = 1 function stdav(x) { let m = medel(x); let sum = 0; for (let i = 0; i < x.length; i = i + 1) { sum = sum + (x[i] - m) ** 2; } return Math.sqrt(sum / x.length); }

Nivå Extra Large Mål: Förstå hur skrivbara tecken lagras i datorn och kunna hantera texter Kunna avläsa och presentera datum och klockslag Kunna läsa data från textfiler Kunna skapa mer avancerad grafik, t.ex. cirklar, bågar och diagram Kunna konstruera rörliga figurer Kunna fånga upp musklick och interagera med användaren

Texter och String-variabler En String-variabel innehåller en text. let s1 = "Hej!"; let s2 = "Anropa heter \"call\" på engelska"; H s1: e j! Varje tecken (skrivbar symbol) har ett unikt nummer, en teckenkod. Det är teckenkoderna som lagras i datorn. Internationell standard, Unicode, bestämmer vilka nummer olika tecken har.

Datum Använd ett objekt av typen Date: let d = new Date(); let dat = d.tolocaledatestring(); // ger åååå-mm-dd" let t = d.tolocaletimestring(); // ger "tt:mm:ss"

Läsning av textfiler I ett JavaScript-program som körs i webbläsaren kan man läsa textfiler som finns på den dator där webbläsaren körs. Men användaren måste godkänna. Skriva till filer går inte utan vidare av säkerhetsskäl.

Cirklar och bågar Ritas enklast med funktionen arc. p.arc(50, 60, 40, 0, 2*Math.PI); p.arc(50, 60, 40, Math.PI, 1.5*Math.PI); p.scale(1, 0.6); p.arc(50, 60, 40, 0, 2*Math.PI); Avbildning och konstruktion av geometriska objekt.

Cirklar och bågar, fortsättning Fler exempel: Kombinera linjer och cirklar: Rotera: p.rotate(0.25*math.pi); Kombinera flera cirklar och bågar: Avbildning och konstruktion av geometriska objekt.

Rörliga figurer Demo:

Diagram Tabeller och diagram.

Sammanfattning Programmering är ett seriöst ämne. Programmering kan, med rätt upplägg och väl valda exempel, kopplas till matematiken. Programmering är praktiskt, kräver övning. Lärarna måste själva ges tillräckliga kunskaper. Läromedel finns som stöd, både till elever och lärare.

Men framför allt: Programmering är kul! Ta tjuren vid hornen och sätt igång!

Kontaktuppgifter skansholm.com books@skansholm.com studentlitteratur.se Fortbildning: sigrid.ekblad@studentlitteratur.se Lärobok: Programmera på riktigt för elever på högstadiet Kursbok: Programmera på riktigt för lärare på högstadiet