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

Relevanta dokument
Aktiviteter Del 4. h succesivt anta mindre värden, som till exempel π. , och låta programmet summera sekanternas längder från x = a till x = b.

A4-papper där det på varje papper står en siffra, på ett papper står det ett decimaltecken. Det kan också finnas papper med de olika räknesättens

Programmering i matematik

Aktivitetsbank. Matematikundervisning med digitala verktyg II, åk 1-3. Maria Johansson, Ulrica Dahlberg

Aktivitetsbank. Matematikundervisning med digitala verktyg II, åk 7-9. Ulrihca Malmberg, Maria Johansson, Ulrica Dahlberg

Arbeta vidare med aritmetik 2018

PROGRAMMERING I MATEMATIK. Ämnets dag 2017 Göteborgs universitet, Matematiska Vetenskaper Åse Fahlander och Laura Fainsilber

Lös uppgiften med ett program, t.ex. print("jag kan ha köpt två bullar och en läsk och ska betala", 2 * , "kr.") T.ex. print(5 + 3 * 10) T.ex.

A: 3 B: 4 C: 5 D: 6 E: 7 Ryssland

4. Bestäm alla trippler n 2, n, n + 2 av heltal som samtliga är primtal. 5. Skriv upp additions- och multiplikationstabellen för räkning modulo 4.

Svar och arbeta vidare med Student 2008

Extramaterial till Matematik Y

Programmering i matematik på gymnasial nivå: workshop

NMCC Semifinal

Programmering i matematik

Programmera och hitta buggarna. Se video

Om programmering i matematikundervisning

Högstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag

Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid

Om programmering i matematikundervisning

Övning: hitta buggarna

Slump och statistik med Scratch. Se video

Student för elever på kurs Ma 4 och Ma 5

Extramaterial till Matematik X

Känguru 2019 Student gymnasiet

Slump och statistik med Scratch

Programmering, dans och loopar

Kortfattade lösningar med svar till Cadet 2006

matematik Lektion Kapitel Uppgift Lösningg T.ex. print(9-2 * 2) a) b) c) d)

Extramaterial till Matematik Y

Extramaterial till Matematik Y

PROGRAMMERING ÅK 9 INTRODUKTION

Om programmering i matematikundervisning

Kängurutävlingen Matematikens hopp

Programmering från början

Programmering F-3. -dansprogrammering. Del 1

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Programmering som språk

Lösningsförslag Cadet 2014

Svar och lösningar. Kängurutävlingen 2009 Cadet för gymnasiet

Programmera ett övergångsställe

Tynker gratisapp på AppStore

Kängurutävlingen Matematikens hopp

ENKEL Programmering 3

INDUKTION OCH DEDUKTION

Välkommen till Kängurutävlingen Matematikens hopp 17 mars Student för elever på kurs Ma 4 och Ma 5

UPPGIFT 1 ÖVERSÄTTNING

Undersökande arbetssätt i matematik 1 och 2

Grunderna i programmering loopar (lektion 2 av 5)

Programmering, dans och loopar

Grunderna i programmering - loopar 3 av 6

Matematikundervisningen har under

Matematiska uppgifter

Svar och arbeta vidare med Benjamin 2008

Extramaterial till Matematik Y

Programmering. Den första datorn hette ENIAC.

Programmera en mänsklig robot

Kängurutävlingen Matematikens hopp 2009 Benjamin för elever i åk 5, 6 och 7

Gruppledtrådar. Gruppledtrådarna ingår i lärarhandledningen till Prima Formula 6 Får kopieras! Bo Sjöström, Jacob Sjöström och Gleerups Utbildning AB

Hur fungerar en robot? (lektion 2 av 3)

A: måndag B: onsdag C: torsdag D: lördag E: söndag Grekland 2. Vilket av följande uttryck har högst värde?

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

Kortfattade lösningar med svar till Gymnasiets Cadet 2006

Grunderna i programmering - skapa instruktioner 2 av 6

Digitalt lärande och programmering i klassrummet

Hundrarutor, markörer, penna och miniräknare. På följande sidor finns hundrarutor för kopiering.

Undersök vad som är programmerat

Matematikboken UTMANINGEN. Lennart Undvall Kristina Johnson Conny Welén

Nämnarens adventskalender 2009, lösningar

Programmering och begrepp

Känguru 2012 Junior sivu 1 / 8 (gymnasiet åk 1) i samarbete med Jan-Anders Salenius vid Brändö gymnasiet

Känguru Student (gymnasiet åk 2 och 3) sida 1 / 6

Övningsuppgifter kapitel 8

Lösningar till utvalda uppgifter i kapitel 5

Kängurun Matematikens hopp

Kängurutävlingen Matematikens Hopp Benjamin 2003 Uppgifter

Programmering från början

Kvalificeringstävling den 26 september 2017

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

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

Geometri, talteori och kombinatorik

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

Klassrumsprojekt programmering - Digitalt lärande

matematik Programmering SANOMA UTBILDNING Daniel Dufåker Attila Szabo Niclas Larson

Kängurutävlingen Matematikens hopp

Kvalificeringstävling den 30 september 2008

Junior för elever på kurs Ma 2 och Ma 3

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

Trepoängsproblem. Kängurutävlingen 2011 Cadet. 1 Vilket av följande uttryck har störst värde? 1 A: B: C: D: E: 2011

A: 100 B: 1000 C: D: E: (Tyskland) A: 10 B: 11 C: 13 D: 14 E: 15 (Tyskland) a 2 A: B: C: D: E:

Elevuppgift: Bågvinkelns storlek i en halvcirkel

K A TRIN J Ä V E RBRING D I G I T A L K O M P E T E N S O C H P R O G R A M M E R I N G I F Ö R S K O L A N

LABBA MED PRIMTAL OCH DELBARHET. Andreas Wannebo

Utmanande uppgifter som utvecklar. Per Berggren och Maria Lindroth

Varför behöver vi förstå programmering? Se video

Högstadiets matematiktävling 2017/18 Kvalificeringstävling 14 november 2017 Lösningsförslag och bedömningsmall

Lektion Kapitel Uppgift Lösning med programmering

Programmera en mänsklig robot. Lektionen handlar om att skapa och följa instruktioner. Programmera en mänsklig robot

UPPGIFT 1 EURO. Utdata: Två rader, som för indata ovan, ser ut som följer: Före resan: bank 1 Efter resan: bank 3

Svar och korta lösningar Benjamin 2006

Transkript:

Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 1: Om programmering Aktiviteter Del 1 Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Ni ska planera en lektion och här ges förslag på två aktiviteter, där den andra aktiviteten passar bättre för de som programmerat tidigare. Fokus på aktiviteten ska vara någon form av undersökning där eleverna kan ta egna beslut och komma olika långt. Ni som redan nu använder programmering i undervisningen kan välja ett annat innehåll. Tänk på följande när ni planerar: Vilken typ av lektion vill ni genomföra, projektorienterad eller instuktionsorienterad? Hur ska introduktionen av lektionen se ut? Hur kan avslutningen av lektionen se ut, där ni gemensamt diskuterar vad ni har gjort och vilka erfarenheter ni har fått? Vad behöver förberedas innan lektionen i form av teknik och annat material? Hur ska dokumentationen av programmeringen ske för att den ska kunna utnyttjas i lektionens sammanfattning? I dokumentet Verktyg lärarhandledning (del 1, moment A) finns information om de programmiljöer och verktyg som används i aktiviteterna. Där finns också grundläggande instruktioner som du kan läsa om du inte tidigare har arbetat med dem. Aktivitet 1, Primtal I följande aktivitet, som består av flera deluppgifter, ska eleverna avgöra huruvida ett givet heltal är ett sammansatt tal eller ett primtal, det vill säga om talet n har den beskaffenheten att den innehåller enbart två faktorer, 1 och n. Förhoppningsvis kommer eleverna samtidigt att utveckla en djupare förståelse för delbarhet och tals olika egenskaper. Syftet är att använda programmering som ett verktyg i problemlösning. Att tänka på när ni planerar lektionen: Vilken information behöver eleverna för att hitta mönstret eller algoritmen som arbetar tidseffektivt? Vilka kognitiva svårigheter möter eleverna då nämnarens värde ökar? Hur ska vi introducera nödvändiga programmeringsbegrepp, så att eleverna förstår vad man vanligen menar med att nämnare antar olika värden? Vilka upptäcker om primtal kan vi förvänta oss att eleverna gör med algoritmen? https://larportalen.skolverket.se 1 (9)

Finns det andra sätt att skriva algoritmen? Hur ska uppgiften presenteras om syftet med algoritmen är att de 100 första primtalen ska summeras eller skrivas ut? Hur kan vi introducerar en räknare som håller kontroll på den ackumulerade summan? Uppgift 1 En inledande aktivitet med papper och penna Låt eleverna på egen hand avgöra huruvida ett tal är jämnt delbart med ett annat tal. Använd tal som inte är delbara med 2, 3 eller 5 då de är alltför enkla att identifiera som delbara, utan till exempel 121 och 11121. Vilka strategier kan ni identifiera bland eleverna? Finns det några tillvägagångssätt som är mera framgångsrika än andra? Hur skulle ni kunna förekomma eleverna, genom att ge dem en färdig algoritm/strategi som beskriver ett arbetssätt med tydliga instruktioner? Uppgift 2 Erathostenes såll, med papper och penna Uppgiften är att undersöka följande algoritm (Eratosthenes såll) 1, med vars hjälp man kan identifiera primtal. 1. Gör en lista över alla tal från 2 till något valbart största tal n. 2. Stryk i listan över alla jämna tal, alltså tal delbara med 2, som är större än 2 (4, 6, 8 osv.). 3. Nästa tal på listan som inte är överstruket är ett primtal. 4. Stryk över alla tal, som både är större än det primtalet du hittade i föregående steg och är multiplar av det. 5. Upprepa stegen 3 och 4 tills du har nått ett tal som är större än kvadratroten av n. Alla kvarstående tal i listan är primtal. Gör gemensamt i helklass en tabell med talen 1 till 10. Ge eleverna instruktionerna från punkt 1 till 4 i algoritmen. Resultatet borde bli något i stil med figur 1 där de kvarstående talen är 2, 3, 5 och 7. 1 Texten är inspirerad av Studera https://sv.wikipedia.org/wiki/eratosthenes_s%c3%a5ll https://larportalen.skolverket.se 2 (9)

Figur 1. Lista med tal där stegen i algoritmen genomförts rad för rad. Det går förstås att arbeta i samma rad varje gång, vilket blir nödvändigt om man exempelvis undersöker talen upp till 100. Låt eleverna enskilt eller i par undersöka talen 1 50 med samma metod. I princip handlar det om att eleverna ska försäkra sig om att primtalen upp till n, i det här fallet 50, inte innehåller några andra faktorer än 1 och talet själv. Speciellt intressant är om elever kan upptäcka allmängiltiga mönster. Upptäcker de på egen hand att de endast behöver undersöka talen upp till roten ur n? Diskutera gemensamt vad som egentligen händer i Eratosthenes såll. Skapa en algoritm med pseudokod som sedan skulle kunna fungera som grund till att koda så att en dator kan förstå. Uppgift 3 Automatisera algoritmen I nästa moment ska eleverna omarbeta algoritmen till kod så att datorn förstår ett givet antal instruktioner på ett effektivt sätt. Den ultimata lösningen är att algoritmen enbart arbetar med de heltal som finns mellan 1 och n. Om man söker efter primtal bland de stora heltalen, använder man vanligen datorer och smarta algoritmer. I denna aktivitet ska elever på egen hand översätta nedanstående pseudokod till Python (eller liknande programmeringsspråk). Pseudokod Sätt nämnare = 2 Sätt tal = [siffran du vill undersöka] Medan nämnare är mindre än tal Om tal / nämnare = jämt Skriv Tal är INTE primtal Annars Öka nämnare med 1 https://larportalen.skolverket.se 3 (9)

Python tal = int(input("ditt tal:")) for a in range(2,tal): if (tal%a == 0): print(tal, ",INTE primtal") break else: print(tal, "är ett primtal") Javascript check=true; tal = int(input( Ditt tal: )) for (a = 2; a < tal; a = a + 1){ if(tal%a == 0){ print(tal, ",INTE primtal") check = false; break; } } if(check) print(tal + " är ett primtal!"); Figur 2. Exempel på kod för algoritmen. För att testa algoritmen kan dessa koder kopieras eller skrivas av på webplatsen repl.it. Uppgift 4 Matematiska problem med hjälp av kod Använd antingen elevernas algortimer eller de ovan och modifiera eventuellt så att de passar till någon matematisk problemformulering. Några exempel på uppgifter har vi hämtat från Kängurun (http://ncm.gu.se/kanguru). Problemen handlar om primtal och om delbarhet. Primtal Hur många tal finns det mellan 100 och 200 som har 2 och 3 som enda primtalsfaktorer? (Junior år 2004, nr 19) Med längden av ett positivt heltal n, menar vi antalet primtalsfaktorer i n. Längden av talen 90 är exempelvis lika med 4, eftersom 90=2 3 3 5. Hur många udda tal under 100 har längden 3? (GymnasieCadet år 2005, nr 24) Utveckla till under 1000? 10000? Man har tre primtal a, b, c med a>b>c. Om a+b+c=78 och a b c = 40, vad är då abc? (Student år 2006, nr 14) Hur många primtal p har egenskapen att p 4 +1 också är ett primtal? (Student år 2008, nr 7) För hur många positiva heltal n är talet n 2 +n ett primtal? (Student år 2009, nr 3) https://larportalen.skolverket.se 4 (9)

Om de två rötterna till ekvationen x 2 85x + c = 0 är ett primtal, vilket värde har då siffersumman av konstanten c? (Junior år 2015, nr 16) Vilket av följande är ett mot-exempel till påståendet Om n är ett primtal så är exakt ett av talen n-2 och n+2 ett primtal? (Junior år 2015, nr 18) Delbarhet Hur många tresiffriga tal n som inte överstiger 200 har egenskapen att talet (n + 1)( n + 2)( n + 3) är jämnt delbart med 7? (Junior år 2004, nr 21) Ta även bort villkoret att det måste vara under 700. Ett positivt heltal n har två delare, medan talet n +1 har tre delare. Hur många delarer har n +2? (Junior år 2007, nr 23) Ett godtyckligt tvåsiffrigt tal innehåller siffrorna a och b. Genom att upprepa detta par av siffror tre gånger bildas ett sexsiffrigt tal. Vad är det talet alltid delbart med? (Junior år 2017, nr 20) (Omskrivet) Vilka tal delar inte 18 2017 + 18 2018? (Student år 2018, nr 14) 105 tal: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, är skrivna i en rad. (Varje tal n är skrivet exakt n gånger). Hur många av dessa tal är delbara med 3? (Junior år 2018, nr 10) Hur många tresiffriga tal finns det med egenskapen att det tvåsiffriga tal som bildas när man tar bort mittersta siffran är lika med en niondel av del ursprungliga tresiffriga talet? (Junior år 2018, nr 15) Kan eleverna själva hitta på liknande problem som detta? Hur många positiva heltal n finns det sådana att både n/3 och 3n är tresiffriga heltal? (Junior år 2013, nr 8) Variera till andra liknande undersökningar Aktivitet 2 Programmeringsövning med Wolfram Denna aktivitet kan genomföras med elever som har någon programmeringsvana. I programmeringsspråket Wolfram kan man relativt enkelt manipulera och analysera inte bara traditionella matematiska objekt som tal och former utan också färger, text och nästan alla andra typer av data. Det finns små program som skapar ganska spektakulära resultat, se dokumentet Verktyg lärarhandledning (del 1, moment A). https://larportalen.skolverket.se 5 (9)

Introduktion till lärare Exemplen nedan är uppbyggda hierarkiskt. Först görs något enkelt, som till exempel att rita en kvadrat och vrida den. Figur 3. Vriden kvadrat. För att få programmet att köras ställer man sig i programraden och trycker shift+enter (det vill säga shift och enter samtidigt). Så funkar det alltid i Wolfram. I exemplet nedanför lägger man till en slider så att man får en liten applikation där man kan välja vinkel. https://larportalen.skolverket.se 6 (9)

Figur 4. Vriden kvadrat där vinkeln på vridningen kan väljas. En annan utveckling av det första exemplet är att skapa en serie av sådana rektanglar med olika vridningar och rita dem ovanpå varandra. Figur 5. En serie med vridna kvadrater. https://larportalen.skolverket.se 7 (9)

Vi kan titta på vad som händer. Längst in i denna nästlade serie kommandon återfinner vi rektangeln och vridningen. Och längst ut återfinner vi Graphics, som ritar figuren. Graphics är kompletterat med ett extra argument som gör kanterna vita. Men mellan Graphics och koden som skapar en roterad rektangel hittar vi Table. Det verkar skapas en lista av 10 (eller är det 11?) r-värden (r är en variabel som styr antalet rektanglar. (r,0,10) betyder i Wolfram att man skapar en slags lista med r värden 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 och 10). som sedan utnyttjas för att skapa motsvarande antal kvadrater roterade 5 r grader. Man kan manipulera koden för att försöka förstå vad de olika argumenten gör. Exemplet går sedan vidare och adderar komplexitet, men det går oftast att förstå den nya kodens funktion (i just detta fall) genom att jämföra med föregående exempel. Man skapar en applikation som gör de olika kvadraterna i olika storlek och där man kan manipulera både vinkeln och antalet kvadrater för att skapa olika mönster. Figur 6. Man kan manipulera både vinkeln och antalet kvadrater för att skapa olika mönster I det sista exemplet läggs ett kommando till som sparar hela den applikation som programmet skapar på en webbadress som andra kan nå. Det är alltså enkelt att dela allt som man gör genom att sätta in hela programmet i kommandot CloudeDeploy, se figur 7. https://larportalen.skolverket.se 8 (9)

Figur 7. Kod som gör att det går att dela sin kod med andra. På Wolframs webbplats finns massor med exempel som alla bygger på samma sorts hierarkiska uppbyggnad. Elevaktivitet Vårt lektionsförslag innebär att klassen arbetar med ett av dessa exempel. Elevaktiviteten blir av undersökande karaktär. Eleverna kan få frågor av analytisk karaktär (hur fungerar de olika kommandona?) manipulativ karaktär (att på olika sätt ändra koden). Exempel på olika ändringar man kan föreslå är att lägga till en funktion som också förskjuter rektanglarna lite i förhållande till varandra, eller göra mosvarande sak med trianglar eller n-hörningar. https://larportalen.skolverket.se 9 (9)