9
Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 1 (9) 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?

Aktiviteter Del 1 - larportalen.skolverket.se

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 1 (9)

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?

Page 2: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 2 (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

Page 3: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 3 (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 √𝑛. 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ämnt

Skriv ”Tal är INTE ett primtal”

Bryt

Annars

Öka nämnare med 1

Page 4: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 4 (9)

Python Javascript

Figur 2. Exempel på hur koden ser ut i Python och Javscript för pseudokoden ovan. För att prova algoritmen

kan du använda 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 p4+1 också är ett primtal?

(Student år 2008, nr 7)

• För hur många positiva heltal n är talet n2+n ett primtal?

(Student år 2009, nr 3)

• Om de två rötterna till ekvationen x2 – 85x + c = 0 är ett primtal, vilket värde

har då siffersumman av konstanten c?

(Junior år 2015, nr 16)

Page 5: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 5 (9)

• 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 182017 + 182018 ?

(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).

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.

Page 6: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 6 (9)

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.

Page 7: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 7 (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.

Page 8: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 8 (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.

Page 9: Aktiviteter Del 1 - larportalen.skolverket.se

Aktiviteter Del 1 Februari 2019 https://larportalen.skolverket.se 9 (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.