Programmering i gymnasieskola och vuxenutbildning uppgifter till workshop
|
|
- Björn Hansson
- för 6 år sedan
- Visningar:
Transkript
1 Programmering i gymnasieskola och vuxenutbildning uppgifter till workshop Det här häftet innehåller nio matematiska problemlösningsuppgifter där programmering är en rimlig strategi för att lösa eller utforska problemet. Uppgifterna är en del i Skolverkets konferenser Programmering i gymnasieskola och vuxenutbildning, september Syftet med uppgifterna är att ge exempel på hur programmering kan användas i samband med problemlösning i matematikkurserna. Syftet är inte att vara bra uppgifter för att lära sig programmering, även om särskilt de första två uppgifterna är anpassade för att vara relativt lätta att ta till sig för den som inte har programmerat förut. Till varje uppgift finns följande: En översikt som visar följande: o o o o Om något särskilt programspråk rekommenderas. Om det är lämpligt/möjligt att arbeta med iterativa och villkorsstyrda beräkningar i kalkylblad. Hur svårt det bedöms vara att skriva kod som kan användas för att lösa uppgiften. Vilken kurs och vilket centralt innehåll som uppgiften relaterar till. En beskrivning av själva uppgiften. Kommentarer till hur man kan tänka för att lösa uppgiften, hur man kan ta uppgiften vidare, eller några aspekter av uppgiften som man kan ha fördjupande diskussioner om. Ett förslag på kod som kan användas för att lösa eller utforska hela eller delar av problemet, inklusive en länk till samma kod online. Dessa lösningsförslag är endast tänkta som hjälp när man kört fast, eller för att ha något att jämföra sina egna lösningar med. Att titta på lösningsförslaget utan att själv ha försökt att lösa uppgiften kan göra uppgifterna mindre användbara. Det finns uppgifter som relaterar till samtliga matematikkurser, utom matematik specialisering. Uppgifterna är ordnade efter ökande svårighetsgrad, utifrån hur svårt det är att skriva ett program för att lösa eller utforska uppgiften. Till materialet hör också referensblad för fyra olika programspråk. Materialet kommer att publiceras på ncm.gu.se i samband med modulen Undervisning med digitala verktyg II, i januari (41)
2 Uppgift: Undersök om ett tal är ett primtal Rekommenderade språk Arbeta med kalkylblad Svårighetsnivå ur programmeringssynpunkt Innehåll från kurs Centralt innehåll som berörs Beskrivning Är talet ett primtal? Alla språk Rekommenderas inte Nybörjare Matematik 1a, 1b och 1c Egenskaper hos mängden av heltal, olika talbaser samt begreppen primtal och delbarhet. Nedan följer en uppdelning i deluppgifter för att göra uppgiften lättare att arbeta med för den som är ovan vid programmering. Deluppgift 1 Skapa en variabel n och sätt dess värde till (utan mellanslag). Skapa en annan variabel m och ge den värdet 7. Skriv sedan en villkorssats för att testa om n är delbart med m. Använd print för att skriva ut Delbart eller Inte delbart i de olika delarna av ifsatsen. Byt värde på n och m några gånger för att kontrollera att din kod fungerar. Tips: Deluppgift 2 Ett sätt att testa delbarhet är att göra en division och se om kvoten är oförändrad när den avrundas. I följande villkorssats undersöks om n är delbart med m: if n / m == round(n / m): Ett annat sätt att testa delbarhet är att använda modulo-operatorn, som ger resten vid en division. I följande villkorssats undersöks n delat med m ger resten 0: if n % m == 0: Ge m värdet 2 istället för 7. Skapa en while-loop runt/innan if-satsen, och fortsätt att loopa så länge m är mindre än n. Öka värdet på m med ett i slutet av loopen. Ändra värdet på n till 12 (eller ett annat lågt tal), och kontrollera att din kod fungerar. Tips: Deluppgift 3 Kom ihåg att i Python3 måste allt som ska ingå i en loop vara indraget du kommer alltså att behöva göra indrag för i princip hela koden du skrivit hittills. I de flesta programmeringsmiljöer kan du göra detta genom att markera alla relevanta rader och trycka på tab-knappen. Ändra i koden så att den inte skriver ut Delbart eller Inte delbart vid varje test, utan att den bara en gång skriver ut om talet är ett primtal eller inte. 2 (41)
3 Ett sätt att göra detta är att skapa en variabel, n_ar_delbart, och innan loopen ge den värdet False. Om n är delbart med m kan du sedan istället för att skriva ut Delbart ändra värdet på n_ar_delbart till True. I slutet av programmet kan du sedan kolla vilket värde n_ar_delbart har, och skriva ut om n är ett primtal eller inte. Kontrollera att koden fungerar för några tal du vet är primtal eller inte primtal. Undersök sedan om är ett primtal. Kommentarer Om man vill fördjupa den här uppgiften kan följande frågeställningar vara användbara: Vilka delare har ett givet tal? Vilka primtalsfaktorer? Hur kan programmet utökas för att skriva ut detta? Hur lång tid tar det att testa om ett sjusiffrigt tal, som i uppgiften, är ett primtal? Hur lång tid tar det för ett niosiffrigt tal? Hur kan programmet göras mer effektivt? Exempel på lösning (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden för sista deluppgiften går att nå på repl.it/liwc. Deluppgift 1 # Tal att undersöka n = # Tal att testa delbarhet med m = 7 # Undersök om resten vid division n/m är noll if n % m == 0: print("delbart") else: print("inte delbart") 3 (41)
4 Deluppgift 2 # Tal att undersöka n = 12 # Tal att testa delbarhet med m = 2 while m < n: # Undersök om resten vid division n/m är noll if n % m == 0: print("delbart") else: print("inte delbart") # Öka m med 1 och fortsätt loopen m = m + 1 Deluppgift 3 # Tal att undersöka n = # Tal att testa delbarhet med m = 2 n_ar_delbart = False while m < n: # Undersök om resten vid division n/m är noll if n % m == 0: n_ar_delbart = True # Öka m med 1 och fortsätt loopen m = m + 1 if n_ar_delbart == True: print(n, "är inte ett primtal.") else: print(n, "är ett primtal.") 4 (41)
5 Uppgift: 3x + 1 -problemet (Collatz förmodan) Rekommenderade språk Alla språk Arbeta med kalkylblad? Kalkylblad rekommenderas inte Svårighetsnivå ur Nybörjare programmeringssynpunkt Innehåll från kurs Matematik 5 Centralt innehåll som berörs Begreppen rekursion och talföljd. Matematiska problem med anknytning till matematikens kulturhistoria. Beskrivning Collatz problem eller Collatz förmodan är ett matematiskt påstående från 1937 som ingen ännu lyckats bevisa: Ta ett positivt heltal n. Om det är jämnt, dela med två. Om det är udda, multiplicera med 3 och lägg till 1. Upprepa proceduren. Om du fortsätter tillräckligt länge, kommer du alltid att nå talet 1 oavsett vilket tal du startade med. Visa att påståendet gäller för alla heltal mellan 1 och Hitta också det eller de tal i intervallet som kräver flest steg innan talet 1 nås. Nedan följer en uppdelning i deluppgifter för att göra uppgiften lättare att arbeta med för den som är ovan vid programmering. Deluppgift 1 Skapa variabeln n och sätt dess värde till 123. Skriv en villkorssats för att testa om n är jämnt eller udda. Byt värde på n några gånger för att kontrollera att din kod fungerar. Deluppgift 2 Lägg in rader inuti villkorssatsen som ändrar värdet på n, antingen till 3n + 1 eller n / 2, beroende på om n är udda eller jämnt. Kontrollera att koden fungerar. Deluppgift 3 Skapa en while-loop runt/innan if-satsen, och upprepa koden tills talet 1 har nåtts. Kontrollera att talet 1 nås för ett antal olika värden på n. Tips: Deluppgift 4 Kom ihåg att i Python3 måste allt som ska ingå i en loop vara indraget du kommer alltså att behöva göra indrag för i princip hela koden du skrivit hittills. I de flesta programmeringsmiljöer kan du göra detta genom att markera alla relevanta rader och trycka på tab-knappen. Skapa en variabel steg som räknar hur många gånger värdet på n ändras. Sätt värdet på steg till 0 innan loopen börjar, och öka den med 1 för varje gång loopen körs. 5 (41)
6 Låt programmet skriva ut vilket värde på n som testas, och hur många steg det tar innan talet 1 nås. Deluppgift 5 Ersätt det fasta värdet på n med en for-loop som låter n ta alla heltalsvärden upp till Tips: Det här kräver att du, som med den förra loopen, gör indrag för i princip hela den kod du skrivit hittills. Kommentarer Det här problemet kan vara en ingång för flera diskussioner med elever: Det finns matematiska frågeställningar som är obesvarade, även frågor som ger intryck av att vara ganska enkla. Matematikern och logikern Kurt Gödel bevisade år 1931 att det finns matematiska påståenden som är sanna men omöjliga att bevisa. Det har föreslagits att Collatz förmodan skulle kunna vara ett sådant påstående. Vad betyder det att ett påstående är sant men omöjligt att bevisa? Att testa alla värden är sällan en fungerande metod när värdena är oändligt många. Att låta en dator testa många värden kan däremot vara ett värdefullt sätt att utforska problem. Vilka mönster kan man hitta i hur många steg algoritmen kräver för de 1000 första talen? Hur kan algoritmen göras mer effektiv? Exempel på kod som kan användas för att lösa problemet (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden för sista deluppgiften kan nås på repl.it/loci. Deluppgift 1 n = 123 if n % 2 == 0: print("jämnt") else: print("udda") Deluppgift 2 n = 123 if n % 2 == 0: n = n / 2 else: n = 3 * n (41)
7 Deluppgift 3 n = 123 while n > 1: if n % 2 == 0: n = n / 2 else: n = 3 * n + 1 Deluppgift 4 n = 123 # Spara värdet på n för att kunna skriva ut senare startvarde = n steg = 0 while n > 1: steg = steg + 1 if n % 2 == 0: n = n / 2 else: n = 3 * n + 1 print(startvarde, "kräver", steg, "steg") Deluppgift 5 # n räknar från 1 till 1000 for n in range(1, 1001): # Spara värdet på n för att kunna skriva ut senare startvarde = n # Nollställ räknaren för steg steg = 0 # Utför de steg som algoritmen föreskriver while n > 1: steg = steg + 1 if n % 2 == 0: n = n / 2 else: n = 3 * n + 1 # Skriv ut resultat print(startvarde, "kräver", steg, "steg") 7 (41)
8 Uppgift: Avkastning vid varierande värdeutveckling Rekommenderade språk Arbeta med kalkylblad? Svårighetsnivå ur programmeringssynpunkt Innehåll från kurs Centralt innehåll som berörs Alla språk Kalkylblad kan användas med begränsningar Nybörjare till medel Matematik 1a, 1b och 1c Begreppen förändringsfaktor och index. Metoder för beräkningar av räntor och amorteringar för olika typer av lån med kalkylprogram. Beskrivning Alice köper en andel i en fond för 2000 kr. Anta att värdeutvecklingen, angivet per år, från början är 2 % och att den vid varje månadsskifte kan röra sig upp eller ner högst 0,5 procentenheter (med lika stor sannolikhet för alla utfall däremellan). 1. Vad är det troliga värdet för Alices fondandel efter fem år, avrundat till hela tiotals kronor? 2. Hur stor sannolikhet är det värdet har minskat? Avrunda svaret till hela procent. Förslag på upplägg för lösning Vid vanliga ränta på ränta-effekter är det rimligt och effektivt att använda potensberäkningar, och att räkna ut värdet efter varje månad (eller år) är något som normalt undviks. I ett läge där värdeutvecklingen ändras, och dessutom på ett oförutsägbart sätt, är det däremot användbart och kanske nödvändigt att göra beräkningarna i många steg. Ett program som utforskar det här problemet skulle kunna följa dessa principer. Låt ett datorprogram 12 5 gånger beräkna nytt värde på fondandelen, och därefter ändra värdeutvecklingen på ett slumpmässigt sätt inom givna gränser. Låt datorprogrammet simulera värdeutvecklingen över 5 år ett stort antal gånger. Spara varje resultat, och använd resultatet för att besvara frågorna i uppgiften. Kommentarer Om kalkylprogram i uppgiften: Uppgiften kan till viss del utforskas med hjälp av kalkylprogram det går att simulera värdeutvecklingen över 5 år, men det är svårt att upprepa den beräkningen ett stort antal gånger. Ett möjligt sätt att använda uppgiften i helklass, med kalkylprogram istället för programmering, vore att låta varje elev göra var sin simulering och sedan samla in och undersöka resultaten. Om att åskådliggöra resultaten: För att överblicka hur 5-årsresultaten ser ut kan det vara användbart att göra diagram. I vissa miljöer (framförallt Octave/MATLAB) finns verktyg för att göra detta direkt, medan det i andra fall kan vara rimligt att kopiera över värden till kalkylprogram. 8 (41)
9 Några möjliga diskussioner med elever med utgångspunkt i uppgiften Värdeutvecklingen kan både öka och minska. Spelar det någon roll om den ökar i början och minskar i slutet, jämfört med tvärt om? Är det rimligt att det mest troliga värdet är samma som om utvecklingen hade varit oförändrad? Borde den bli mer? Mindre? Hur många 5-årsresultat är rimligt att samla ihop innan man kan dra slutsatser om hur fördelningen ser ut? I många lägen beräknas månadsränta genom att ta en tolftedel av årsräntan (vilket även de flesta banker gör i redovisningar). Vad är en mer korrekt metod för att bestämma den månadsvisa utvecklingen? På vilket sätt ger de två metoderna olika resultat i den här uppgiften? I uppgiften används en likformig sannolikhetsfördelning för alla möjliga förändringar. Vad händer om den istället är normalfördelad? Exempel på kod som kan användas för att lösa problemet (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden går att nå på repl.it/liil. import random maxforandring = startvarde = 2000 ff_start = 1.02 iterationer = 1000 totalvarde = 0 antal_som_minskat = 0 # Upprepa simulering av 5-årsutveckling 1000 gånger for n in range(iterationer): varde = startvarde ff_m = ff_start ** (1/12) # Simulera en 5-årsutveckling (60 månader) for m in range(60): varde = varde * ff_m # Beräkna ny månadsutveckling baserad på # ändrad årsutveckling ff_y = ff_m ** 12 ff_y = ff_y + maxforandring * (2 * random.random() - 1) ff_m = ff_y ** (1/12) # Spara totala värdet för att kunna räkna genomsnitt totalvarde = totalvarde + varde # Undersök om värdet minskat if varde < startvarde: antal_som_minskat = antal_som_minskat + 1 print("genomsnittligt värde:", totalvarde / iterationer) print("sannolikheten att värdet minskat:", antal_som_minskat / iterationer) 9 (41)
10 Uppgift: Tillförlitlighet i testresultat Rekommenderade språk Arbeta med kalkylblad? Svårighetsnivå ur programmeringssynpunkt Innehåll från kurs Centralt innehåll som berörs Alla språk Kalkylblad kan användas med begränsningar Nybörjare till medel Matematik 1a, 1b och 1c Granskning av hur statistiska metoder och resultat används i samhället och inom vetenskap. Begreppen beroende och oberoende händelser samt metoder för beräkning av sannolikheter vid slumpförsök i flera steg med exempel från spel och risk- och säkerhetsbedömningar. Beskrivning Bob genomför ett test på ett naturläkemedel som påstås lindra migrän. 160 personer med migrän är med i studien, och lottas till antingen en försöksgrupp eller en kontrollgrupp så att det är 80 personer i varje grupp. Personerna i försöksgruppen får naturläkemedlet, medan de i kontrollgruppen får tabletter som ser ut och smakar likadant men är bevisat verkningslösa mot migrän. I försöksgruppen säger 40 personer att de mådde bättre av tabletten de åt. I kontrollgruppen är det bara 20 personer som tycker att de blivit hjälpta. För att utvärdera resultatet vill Bob ta reda på hur sannolikt det är att de observerade resultaten uppstår av en slump. Av de 160 personerna som var med i studien var det totalt 60 som upplevde att tabletten de åt hjälpte (för båda tabletterna tillsammans). Hur sannolikt är det att de 60 personerna av slump är fördelade så att minst 40 personer hamnar i försöksgruppen? Förslag på upplägg för lösning Ett sätt att lösa problemet beskrivs nedan. Utgå från att 60 personer av 160 med migrän kommer att uppleva att en tablett kommer att hjälpa dem, även om tabletten är bevisat verkningslös. Slumpa var och av dessa 60 personer till antingen försöksgruppen eller kontrollgruppen. Kontrollera om det finns minst 40 personer slumpade till försöksgruppen. Upprepa slumpningen massor av gånger, och undersök hur vanligt det är att minst 40 personer hamnar i försöksgruppen. Kommentarer Om kalkylprogram i uppgiften: Uppgiften kan till viss del utforskas med hjälp av kalkylprogram det går att göra en slumpvis fördelning av 60 personer in i två grupper, men det är svårt att upprepa slumpningen många gånger. Ett möjligt sätt att utforska problemet med kalkylprogram, istället för programmering, är att låta varje elev i en klass göra en eller ett par simuleringar och sedan samla in och undersöka de totala resultaten. 10 (41)
11 Några möjliga diskussioner med elever med utgångspunkt i uppgiften Uppgiften kan vara ett bra tillfälle att diskutera hur dubbelblinda studier genomförs, vilka förutsättningar som är viktiga, och varför designen anses vara bra för medicinska studier. Det kan också vara ett bra tillfälle att diskutera hur stort underlag man behöver ha för att kunna dra säkra slutsatser och vad som räknas som säkra slutsatser samt att diskutera styrkan i och värdet hos placeboeffekten. I uppgiften undersöks sannolikheten att få utfallet 40/20 för en verkningslös tablett. Är det samma sak som sannolikheten för att tabletten är verkningslös, givet utfallet 40/20? Är det en korrekt metod att slumpa ut 60 personer till försöks- eller kontrollgruppen med lika stor sannolikhet, som i förslaget på upplägg för lösning? På vilka andra sätt kan man resonera? I lösningsförslaget antas att, om naturläkemedlet är verkningslöst, är det 37,5 % sannolikhet att en person känner sig hjälpt av att äta en verkningslös tablett eftersom det var totalt 60 av 160 personer som kände sig hjälpta. Hur säker är den utgångspunkten? Hur påverkas sannolikheten att en lika skev fördelning uppstår på slump om det istället var 500 personer i studien? Anta att det istället skulle vara totalt 90 personer som känner sig hjälpta, fördelade enligt samma proportioner (60/30). Är det mer eller mindre sannolikt att en sådan fördelning uppstår på slump, jämfört med 40/20? Kan man lösa uppgiften exakt eller algebraiskt, istället för med simuleringar? Hur? 11 (41)
12 Exempel på kod som kan användas för att lösa problemet (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden går att nå på repl.it/liis. # Nödvändig import för att få slumptal import random hjalpta_i_forsoksgrupp = 40 hjalpta_i_kontrollgrupp = 20 granskvot = hjalpta_i_forsoksgrupp / hjalpta_i_kontrollgrupp antal_slumpningar = 1000 # Upprepa slumpning många gånger skevfordelningar = 0 for n in range(antal_slumpningar): # Nollställ försöks- och kontrollgrupp forsoksgrupp = 0 kontrollgrupp = 0 # Slumpa de hjälpta personerna in i någon av grupperna for m in range(hjalpta_i_kontrollgrupp + hjalpta_i_forsoksgrupp): if random.random() < 0.5: forsoksgrupp = forsoksgrupp + 1 else: kontrollgrupp = kontrollgrupp + 1 # Undersök om fördelningen blivit tillräckligt skev if forsoksgrupp / kontrollgrupp >= granskvot: skevfordelningar = skevfordelningar + 1 # Skriv ut resultat print(skevfordelningar / antal_slumpningar, "(", antal_slumpningar, "slumpningar)") 12 (41)
13 Uppgift: Längden på en hängande kedja Rekommenderade språk Alla språk Arbeta med kalkylblad? Kalkylblad kan användas Svårighetsnivå ur Nybörjare till medel programmeringssynpunkt Innehåll från kurs Matematik 2a, 2b och 2c (se kommentar för 3c) Centralt innehåll som berörs Begreppet kurva (2c), räta linjens och parabelns ekvation samt hur analytisk geometri binder ihop geometriska och algebraiska begrepp. Beskrivning Bild från En fritt hängande kedja har en höjd y över marken som kan beskrivas av funktionen där x är avståndet i sidled från kedjans lägsta punkt. Anta att avståndet mellan stolparna på bilden är 2,00 m, att lägsta punkten ligger mitt emellan stolparna, och att värdena på b och h är 0,80 m respektive 1,05 m. Hur lång är i så fall kedjan? Svara med två decimalers noggrannhet. Förslag på upplägg för lösning Denna uppgift går att lösa med förhållandevis avancerad integralkalkyl, som inte ingår i de nationella kurserna på gymnasial nivå. Ett alternativt sätt att lösa den är att dela in kedjan i små intervall och beräkna längden på varje intervall som om det vore en rak linje. Kommentarer Vanligtvis beskrivs formen på en ideal kedja av ekvationen y = a cosh(x/a). I uppgiften har cosh utvecklats och getts basen 2 istället för e för att passa bättre i matematik 2. Det leder till att nämnaren är ett avrundat värde av 2 ln(2). Om kalkylprogram i uppgiften: Det är möjligt att i celler i kalkylprogram uttrycka både x- och y-värden för punkter på kedjan, för exempelvis varje centimeter i x-led. Detta kan sedan användas för att räkna ut kortaste avståndet mellan varje par av punkter, och summera till en approximering av kedjans längd. 13 (41)
14 Variationer på kurvor: Vilka typer av kurvor som används kan förstås varieras stort. Det är även möjligt att införa parametriserade kurvor av typen x(t), y(t) istället för att bara använda funktionsgrafer. I matematik 3c, där enhetscirkeln introduceras, kan man exempelvis använda en variant av den här uppgiften för att beräkna omkretsen på en ellips vilket är förvånansvärt svårt genom andra metoder. Den kurva som används då är lämpligtvis x(t) = a cos(t), y(t) = b sin(t). Exempel på kod som kan användas för att lösa problemet (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden kan nås på repl.it/l2pd. import math # Definiera funktionen y(x) för att underlätta läsbarhet def y(x): b = 0.8 h = return b * (2 ** (x / b) + 2 ** (-x / b)) / h # Sätt start- och parametervärden x_start = -1 x_slut = 1 antal_segment = 1000 # Beräkna några härledda värden som behövs antal_punkter = antal_segment + 1 steglangd = (x_slut - x_start) / antal_segment x = x_start # Dela upp kurvan i steg och beräkna x- och y-värden för varje punkt # Spara resultatet i listor xlista = [] ylista = [] for i in range(antal_punkter): xlista.append(x) ylista.append(y(x)) x = x + steglangd # Beräkna segmentens längd baserat på x- och y-värdena total_langd = 0 for i in range(antal_segment): x1 = xlista[i] x2 = xlista[i + 1] y1 = ylista[i] y2 = ylista[i + 1] total_langd = total_langd + math.sqrt((x2-x1)**2 + (y2-y1)**2) # Skriv ut totala längden print(total_langd) 14 (41)
15 Uppgift: Approximera talet e Rekommenderade språk Arbeta med kalkylblad? Svårighetsnivå ur programmeringssynpunkt Innehåll från kurs Centralt innehåll som berörs Alla språk Kalkylblad kan användas Medel Matematik 3b och 3c Introduktion av talet e och dess egenskaper. Beskrivning Derivatan av varje exponentialfunktion f(x) = a x är en konstant gånger samma funktion: f (x) = k a x. Den matematiska konstanten e är det tal som uppfyller att derivatan av e x är e x. Använd detta för att bestämma ett närmevärde till e med två decimalers noggrannhet. Förslag på upplägg för lösning Ett sätt att lösa det här problemet är att gissa värden på e, och undersöka derivatan i en punkt. Värdet på e ökas/minskas sedan successivt, tills funktionens och derivatans värde överensstämmer tillräckligt väl. En viktig del i den här metoden är att derivata och funktionsvärde inte behöver undersökas för alla x-värden, utan bara något x. I de flesta programspråk saknas färdiga verktyg för att bestämma derivata, och då kan det vara lämpligt att använda en ändringskvot istället. Kommentarer Om man vill utveckla det här programmet kan man exempelvis använda följande frågor: Hur kan programmet ändras för att få större noggrannhet på e? Är det rimligt att använda en ändringskvot? Vad kan få ändringskvoten att skilja sig så mycket från den korrekta derivatan att programmet ger ett felaktigt svar? Hur kan algoritmen göras mer effektiv? Hur kan man göra en liknande algoritm i ett kalkylblad? Vilka fördelar och nackdelar har det? 15 (41)
16 Exempel på lösning i kalkylblad I kalkylbladet ovan används följande formler för att stegvis öka ett gissat värde på e. Kolumnerna C E beräknar e x, e x + h samt en ändringskvot baserat på dessa värden: Cell C5, med formler utökade nedåt: =A5^C$2 Cell D5, med formler utökade nedåt: =A5^(C$2+C$1) Cell E5, med formler utökade nedåt: =(D5-C5)/C$1 Kolumn A innehåller gissade värden på e. Dessa stegas uppåt om ändringskvoten är mindre än e x, annars backar värdet på gissningen ett steg. Cell A5: Ett fast startvärde på 1 (kan ändras) Cell A6, med formler utökade nedåt: =OM(C5>E5;A5+B5;A5-B5) Kolumn B anger med hur stora steg gissningen på e ska öka. Om ändringskvoten är större än e x ändras detta steg till en tiondel av föregående värde. Cell B5: Ett fast startvärde på 1 (kan ändras) Cell B6, med formler utökade nedåt: =OM(C5>E5;B5;B5/10) Exempel på kod som kan användas för att lösa problemet (Python3) På repl.it/kab7 finns kod som kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden följer samma princip som används i kalkylbladet ovan. 16 (41)
17 Uppgift: Komplex talserie Rekommenderade språk Octave/MATLAB eller Python3 (på grund av beräkningar med komplexa tal) Arbeta med kalkylblad? Kalkylblad rekommenderas inte Svårighetsnivå ur Medel till svår programmeringssynpunkt Innehåll från kurs Matematik 4 Centralt innehåll som berörs Metoder för beräkningar med komplexa tal skrivna på olika former inklusive rektangulär och polär form. Komplexa talplanet, representation av komplext tal som punkt och vektor. Konjugat och absolutbelopp av ett komplext tal. Matematiska problem med anknytning till matematikens kulturhistoria. Beskrivning Talserien som beskrivs av z 0 = 0 och z n+1 = z n 2 + c beter sig på ett sätt som är svårt att förutsäga för olika värden på det komplexa talet c. För vissa värden på c divergerar talserien (går mot oändligheten), medan andra värden på c ger ett begränsat värde. Om något värde i talserien har ett absolutbelopp större än 2 kommer den dock alltid att divergera. Undersök om serien divergerar eller inte för samtliga värden på c som har hela tiondelsvärden Bild hämtad från File:Mandel_zoom_00_mandelbrot_set.jpg och där både real- och imaginärdelen ligger mellan 1 och 1. Markera de tal som inte divergerar i det komplexa talplanet. Förslag på upplägg för lösning Ett rimligt sätt att lösa den här uppgiften är att låta en dator helt enkelt beräkna talserien för de givna värdena på c. Eftersom det endast finns villkor för att avgöra om en serie divergerar, men inte konvergerar, är det rimligt (och förmodligen nödvändigt) att sätta en övre gräns på hur många värden i talserien som ska beräknas. I programspråk som inte stödjer komplexa tal finns mycket att vinna på att definiera funktioner för att addera, multiplicera och bestämma absolutbelopp av komplexa tal. Om programspråket inte stödjer grafisk utmatning på ett enkelt vis, kan man som ersättning använda textsträngar som pixlar/punkter i komplexa talplanet. Kommentarer Det här problemet ger en ingång i att diskutera fraktal geometri och kaotiska mönster. (Algoritmen i uppgiften är den som används för att skapa Mandelbrotfraktalen.) Några sätt att fördjupa uppgiften: Ändra vilket område i det komplexa talplanet som undersöks, för att utforska områden där divergens verkar särskilt svår att förutspå. 17 (41)
18 Färglägg punkter i komplexa talplanet med färger som avspeglar hur snabbt varje värde på c får talserien att divergera. Modifiera algoritmen för att istället motsvara Juliamängden. Exempel på kod som kan användas för att lösa problemet (Python3) I exemplet nedan används textsträngar som enkel grafisk representation av resultatet. Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden går att nå på repl.it/liix. # Funktion som avgör om talserien divergerar för givet # värde på c inom ett givet antal iterationer def divergerar(c, max_iterationer): z = 0 + 0j for n in range(max_iterationer): z = z * z + c if abs(z) > 2: return True return False # Start- och parametervärden x_min = -1 x_max = 1 y_min = -1 y_max = 1 x_steg = 0.1 y_steg = 0.1 iterationer = 10 # Börja längst upp till vänster i koordinatsystemet x = x_min y = y_max while y > y_min: # Återställ x-värdet och rad för utmaning av resultat x = x_min utmatningsrad = "" while x < x_max: # Skapa komplext tal från x- och y-värden c = x + y * 1j # Stjärna markerar c-värden som inte divergerar, # värden som divergerar markeras med mellanslag if divergerar(c, iterationer): utmatningsrad += +" " else: utmatningsrad = utmatningsrad + "*" # Stega till nästa plats på samma rad x = x + x_steg # Skriv ut resultat för denna rad, stega till nästa rad print(utmatningsrad) y = y - y_steg 18 (41)
19 Uppgift: Sannolikheten för Yatzy Rekommenderade språk Alla språk Arbeta med kalkylblad? Kalkylblad rekommenderas inte Svårighetsnivå ur Svår programmeringssynpunkt Innehåll från kurs Matematik 5, matematik 1a, 1b och 1c Centralt innehåll som berörs Begreppen permutation och kombination. (ma 5) Begreppen beroende och oberoende händelser samt metoder för beräkning av sannolikheter vid slumpförsök i flera steg med exempel från spel och risk- och säkerhetsbedömningar. (ma 1abc) Beskrivning I spelet Yatzy har man fem tärningar. Under en spelares tur slås tärningarna tre högst gånger, och inför slag 2 och 3 får man välja vilka tärningar som ska slås om och vilka som ska ligga kvar orörda. Man får poäng efter olika kombinationer av resultat, så som par, stege och kåk. Den högsta poängen får man för fem lika, kallat Yatzy. Vad är sannolikheten för att få Yatzy på högst tre slag, förutsatt att man hela tiden sparar tärningar för att maximera den chansen? Svara i hela tiondels procent. Förslag på upplägg för lösning Det här problemet går att lösa med omfattande kombinatoriska beräkningar. En alternativ metod är att skriva ett program som simulerar ett stort antal turer, där man hela tiden sparar tärningar som visar det resultat som det finns flest av. Det finns flera utmaningar i att skriva ett sådant program, särskilt om man vill slippa att skriva kod med mycket upprepningar. Det kan finnas anledning att använda ett par funktioner som inte finns i referensbladen sök på nätet om du behöver. Kommentarer Det här problemet kan vara en ingång för exempelvis följande diskussioner: Vad är det som gör uppgiften svår att lösa med algebraiska eller kombinatoriska metoder? Hur kan man åtminstone börja lösa uppgiften på algebraisk väg/med hjälp av kombinatoriska beräkningar? Hur kan man göra en rimlighetsbedömning av resultat av beräkningar eller simuleringar? Hur många simuleringar behöver man göra för att kunna dra tillräckligt säkra slutsatser om resultatet? 19 (41)
20 Exempel på kod som kan användas för att lösa problemet (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden går att nå på repl.it/lii1. import random # Definiera variabler som används i programmet tarningar = [0, 0, 0, 0, 0] antal_yatzy = 0 antal_forsok = 1000 # Simulera ett stort antal turer for forsok in range(antal_forsok): # Nollställ variabel som håller reda på vilket tärningsresultat # som är vanligast, så att alla tärningar slås om flest_av = -1 for slag in range(3): # Slå om de tärningar som inte visar det som det finns mest av for t in range(5): if tarningar[t]!= flest_av: tarningar[t] = int(random.random() * 6) + 1 flest_av = 0 # Variabel för vilket resultat som är vanligast flest = 0 # Variabel för antal tärningar med det värdet # Undersök hur många tärningar som visar varje värde 1 6 for v in range(1, 7): raknare = 0 for t in tarningar: if t == v: raknare = raknare + 1 if raknare > flest: flest = raknare flest_av = v if flest == 5: antal_yatzy = antal_yatzy + 1 # Skriv ut andelen yatzy print(antal_yatzy / antal_forsok) 20 (41)
21 Uppgift: Sannolikheten för stege Rekommenderade språk Alla språk Arbeta med kalkylblad? Kalkylblad rekommenderas inte Svårighetsnivå ur Svår programmeringssynpunkt Innehåll från kurs Matematik 5, matematik 1a, 1b och 1c Centralt innehåll som berörs Begreppen permutation och kombination. (ma 5) Begreppen beroende och oberoende händelser samt metoder för beräkning av sannolikheter vid slumpförsök i flera steg med exempel från spel och risk- och säkerhetsbedömningar. (ma 1abc) Beskrivning Den här uppgiften går förhållandevis enkelt att lösa utan programmering, men har ändå behållits som ett exempel eftersom programmering fortfarande är en möjlig och rimlig lösningsstrategi. En vanlig kortlek med 52 kort blandas och du får fem kort. Vad är sannolikheten att du har en stege, det vill säga fem kort med valör i rad (oavsett färg)? Avrunda till hela tiondels procent. Kom ihåg att ess kan både räknas som 1 och 14 i en stege. Förslag på upplägg för lösning Det här problemet går att lösa utan särskilt omfattande beräkningar om rätt metoder används, men ett alternativ är att skriva ett program som simulerar ett stort antal händer med fem kort. Det finns flera utmaningar i att skriva ett sådant program, särskilt om man vill slippa att skriva kod med mycket upprepningar. Man har också stor nytta av funktioner för att exempelvis slumpsortera eller sortera arrayer i storleksordning sök på nätet efter hur det kan göras. Kommentarer Varianter på uppgiften: Uppgiften går enkelt att variera, ibland på sätt som ökar komplexiteten avsevärt men också för att minska komplexiteten. Några förslag: Hur många simuleringar behöver man göra för att kunna dra tillräckligt säkra slutsatser om resultatet? Hur mycket mer eller mindre sannolikt är det att få stege på fem kort om kortleken bara innehåller 13 kort i en och samma färg? Om det är en kortlek sammanslagen av ett stort antal vanliga kortlekar? Hur stor är sannolikheten för att få par, tvåpar, triss, stege, färg, kåk respektive fyrtal på fem kort? I vissa spel ges poäng för par (1), tvåpar (2), triss (3), stege (4), färg (5), kåk (6) och fyrtal (7). Hur förhåller sig poängen för respektive kombination till sannolikheten att få den kombinationen? I många spel får man slänga kort och dra nya en eller två gånger. Hur påverkas sannolikheterna för olika kombinationer av detta? 21 (41)
22 Exempel på kod som kan användas för att lösa problemet (Python3) Koden nedan kan användas om du kör fast, eller vill jämföra din färdiga kod med ett annat förslag. Koden går att nå på repl.it/lii9. import random # Bygg en kortlek med värdena 1 13 representerade 4 gånger var valor = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] kortlek = [] for v in valor: for f in range(4): kortlek.append(v) # Gör ett stort antal simulerade händer med 5 kort antal_stegar = 0 antal_forsok = 1000 for n in range(antal_forsok): # Blanda kortleken och ge de första fem random.shuffle(kortlek) hand = [kortlek[0], kortlek[1], kortlek[2], kortlek[3], kortlek[4]] # Sortera korten på hand. Om det finns ett ess och högsta kortet är # kung, räkna esset som 14 istället för 1 hand = sorted(hand) if hand[0] == 1 and hand[4] == 13: hand[0] = 14 hand = sorted(hand) # Undersök om varje kort är 1 mer än föregående ar_stege = True for i in range(1, 5): if hand[i]!= hand[i - 1] + 1: ar_stege = False # Håll räkning på hur många stegar som dykt upp if ar_stege: antal_stegar = antal_stegar + 1 # Skriv ut resultatet print(antal_stegar / antal_forsok) 22 (41)
Uppgift: Hitta primtal
Uppgift: Hitta primtal Rekommenderade språk Arbeta med kalkylblad Svårighetsnivå ur programmeringssynpunkt Innehåll från kurs Centralt innehåll som berörs Workshop om programmering i matematikkurser, version
Läs merProgrammering i matematik på gymnasial nivå: workshop
Programmering i matematik på gymnasial nivå: workshop Ta två häften Ett häfte med uppgifter Ett häfte med referensblad Båda häftena finns längst fram i salen Syfte med workshop Förtydliga förändringarna
Läs merMatematik 1B. Taluppfattning, aritmetik och algebra
Matematik 1a Centralt innehåll Metoder för beräkningar med reella tal skrivna på olika former inom vardagslivet och karaktärsämnena, inklusive överslagsräkning, huvudräkning och uppskattning samt strategier
Läs merUndervisningen i ämnet matematik ska ge eleverna förutsättningar att utveckla följande:
Matematik Skolverkets förslag, redovisat för regeringen 2010-09-23. Matematik Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans
Läs merPlatser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
Läs merMATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merPRÖVNINGSANVISNINGAR
Prövning i Matematik 4 PRÖVNINGSANVISNINGAR Kurskod MATMAT04 Gymnasiepoäng 100 Läromedel Valfri aktuell lärobok för kurs Matematik 4 Skriftligt prov (4h) Muntligt prov Bifogas Provet består av två delar.
Läs merMATEMATIK. Ämnets syfte. Kurser i ämnet
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merMATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merMATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merMATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas, såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merMATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merMatematik 5000 Kurs 1a röd lärobok eller motsvarande., ISBN 978-91-27-42156-1. Prövningen är skriftlig, eventuellt kompletterad med en muntlig del
prövning matematik 1a Malmö stad Komvux Malmö Södervärn PRÖVNING PRÖVNINGSANVISNINGAR Prövningen avser Kurskod Matematik 1a MATMAT01a Gymnasiepoäng 100 Läromedel Prövningsutformning Bifogas Matematik 5000
Läs merMatematik. Ämnets syfte
Matematik MAT Matematik Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som
Läs merLektion Kapitel Uppgift Lösning med programmering
1 Print 1 Tal, Prioriteringsregler 3 Procent, Procentuella förändringar 2 Variabler Teckna och tolka uttryck Ekvationslösningens grunder 1236 Beräkna utan räknare. a) 6 + 4 3 b) 9 4 12 3 c) 7 (3 + 12)
Läs merMatematik i Gy11. 110912 Susanne Gennow
Matematik i Gy11 110912 Susanne Gennow Var finns matematik? Bakgrund Nationella utredning 2003 PISA 2009 TIMSS Advanced 2008 Skolinspektionens rapporter Samband och förändring åk 1 3 Olika proportionella
Läs merMatematik. Ämnets syfte. Kurser i ämnet. Matematik
en har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation med hjälp
Läs merIntroduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merMatematik. Ämnets syfte
Matematik Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merFörkortning och förlängning av rationella uttryck (s. 27 Origo 3c)
1 Print 1 Algebraiska 2 Variabler 1 Algebraiska 3 Input 1 Algebraiska 4 For 1 Algebraiska uttryck, Rationella uttryck 1 Algebraiska uttryck, Gränsvärden Förkortning och förlängning av rationella uttryck
Läs merLennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM
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
Läs merÄmnesplaner för matematik grundskolan enligt Lgr11 och gymnasieskolan enligt Gy11
Ämnesplaner för matematik grundskolan enligt Lgr11 och gymnasieskolan enligt Gy11 I ämnesplanen för grundskolans matematik har tidigare ering markerats om det är Matematik eller en högre kurs eller momentet
Läs merKan du det här? o o. o o o o. Derivera potensfunktioner, exponentialfunktioner och summor av funktioner. Använda dig av derivatan i problemlösning.
Kan du det här? o o o o o o Vad innebär det att x går mot noll? Vad händer då x går mot oändligheten? Vad betyder sekant, tangent och ändringskvot och vad har dessa begrepp med derivatan att göra? Derivera
Läs merFörkortning och förlängning av rationella uttryck (s. 29 Origo 3b)
1 Print 1 Algebraiska 2 Variabler 1 Algebraiska 3 Input 1 Algebraiska 4 For 1 Algebraiska uttryck, Rationella uttryck Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b) Eleverna kan träna
Läs merLåt eleverna lösa uppgifterna med huvudräkning och sedan jämföra med resultatet av ett program, t.ex. print(6 + 4 * 3)
1 Print 1 Tal, Prioriteringsregler 3 Procent, Procentuella förändringar 2 Variabler Teckna och tolka uttryck Ekvationslösningens grunder 1236 Beräkna utan räknare. a) 6 + 4 3 b) 9 4 12 3 c) 7 (3 + 12)
Läs merSTYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.
STYRANDE SATSER 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år. Vilket år är du född? 1971 Då har du bara 35 år kvar
Läs merSlump och statistik med Scratch. Se video
Se video I lektionen simuleras hundratals tärningskast på kort tid. Eleverna får skapa en statistikapplikation och lära sig att skapa och modifiera algoritmer. Måns Jonasson, Internetstiftelsen, har arbetat
Läs merStudiehandledning. kurs Matematik 1b
Studiehandledning kurs Matematik 1b Innehållsförteckning Inledning och Syfte... 1 Ämnesplan för ämnet matematik... 1 Ämnets syfte... 1 Centralt innehåll... 2 Problemlösning... 2 Taluppfattning, aritmetik
Läs merSannolikheten att vinna ett spel med upprepade myntkast
Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg Del 7: Matematiska undersökningar med kalkylprogram Sannolikheten att vinna ett spel med upprepade myntkast Håkan Sollervall, Malmö
Läs merFörslag den 25 september Matematik
Matematik Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk
Läs merMatematik: Det centrala innehållet i kurserna i Gy 2011 i relation till kurserna i Gy 2000
2011-12-21 Matematik: Det centrala innehållet i kurserna i Gy 2011 i relation till kurserna i Gy 2000 Kurs 1a och 2a i Gy 2011 jämfört med kurs A och B i Gy 2000 Poängomfattningen har ökat från 150 poäng
Läs merSlump och statistik med Scratch
Lektionen handlar om att simulera tärningskast och skapa en statistikapplikation genom att arbeta med modifiera algoritmer. Lektionsförfattare: Måns Jonasson En digital lektion från https://digitalalektioner.iis.se
Läs merExtramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta
Läs merProv 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad 20.5.2010. a) i) Nollställen för polynomet 2x 2 3x 1:
Ellips Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad.. Prov a) i) ii) iii) =,, = st 9,876 =,9876,99 = 9,9,66,66 =,7 =,7 Anmärkning. Nollor i början av decimaltal har ingen betydelse
Läs merMatematik 3c Kap 2 Förändringshastighet och derivator
Matematik 3c Kap 2 Förändringshastighet och derivator Inledning Konkretisering av ämnesplan (länk) http://www.ioprog.se/public_html/ämnesplan_matematik/struktur_äm nesplan_matematik/struktur_ämnesplan_matematik.html
Läs merHEM KURSER SKRIV UT HEM ÄMNE SKRIV UT
Matematik HEM KURSER SKRIV UT MA200 - Matematik A 110 poäng inrättad 1994-07 SKOLFS: 1994:9 et för kursen är att ge de matematiska kunskaper som krävs för att ta ställning i vardagliga situationer i privatliv
Läs merBakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige
Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >
Läs merPROGRAMMERING I MATEMATIK. Ämnets dag 2017 Göteborgs universitet, Matematiska Vetenskaper Åse Fahlander och Laura Fainsilber
PROGRAMMERING I MATEMATIK Ämnets dag 2017 Göteborgs universitet, Matematiska Vetenskaper Åse Fahlander och Laura Fainsilber Syfte: Inspirera till att använda programmering som verktyg för matematikinlärning
Läs merProgrammering i gymnasieskola och vuxenutbildning referensblad till workshop
Programmering i gymnasieskola och vuxenutbildning referensblad till workshop Det här häftet innehåller referensblad för fyra olika programspråk, med innehåll utvalt för att vara relevant för matematiklärare
Läs merExtramaterial till Matematik X
LIBER PROGRMMERING OCH DIGITL KOMPETENS Extramaterial till Matematik X NIVÅ TRE Programmering LÄRRE I den här uppgiften får du och dina elever en introduktion till programmering. Uppgiften vänder sig först
Läs merMATEMATIK. Ämnets syfte. Kurser i ämnet
MATEMATIK Ämnet matematik behandlar begrepp, metoder och strategier för att kunna lösa matematiska problem i vardags- och yrkeslivet. I ämnet ingår att föra och följa matematiska resonemang samt att arbeta
Läs merArbetsområde: Jag får spel
Arbetsområde: Jag får spel Huvudsakligt ämne: Matematik, åk 7-9 Läsår: Tidsomfattning: 6-9 lektioner à 60 minuter Ämnets syfte Undervisning i ämnet matematik syftar till: länk Följande syftesförmågor för
Läs merProgrammering i gymnasieskola och vuxenutbildning
Programmering i gymnasieskola och vuxenutbildning Program september 2017 09.30 Styrdokumentsförändringar och presentation av moduler 10.15 Paneldebatt: Varför ska våra elever lära sig programmering?
Läs merformulera och lösa problem med hjälp av matematik samt värdera valda strategier och metoder,
Arbetsområde: Huvudsakligt ämne: Negativa tal Läsår: Tidsomfattning: Ämnets syfte Undervisning i ämnet matematik syftar till: länk Följande syftesförmågor för ämnet ska utvecklas: formulera och lösa problem
Läs merMMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Läs merEn matematiklärarkollega hade tillsammans med sin klass noterat att talet
Anders Johansson Ekvationen x y = y x Exempel på problemlösning med hjälp av programmering Ekvationen x y = y x kan studeras med hjälp av algebra, numerisk analys och programmering. Författaren demonstrerar
Läs merExtramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta
Läs merFöreläsning 9: Talteori
DD2458, Problemlösning och programmering under press Föreläsning 9: Talteori Datum: 2009-11-11 Skribent(er): Ting-Hey Chau, Gustav Larsson, Åke Rosén Föreläsare: Fredrik Niemelä Den här föreläsningen handlar
Läs mermatematik Programmering SANOMA UTBILDNING Daniel Dufåker Attila Szabo Niclas Larson
matematik Daniel Dufåker Attila Szabo Niclas Larson Programmering SANOMA UTBILDNING I Innehåll Aktivitet Kurs Beskrivning Gissa ett tal 1c I den här aktiviteten får eleverna via gissningar försöka finna
Läs merKurskod: GRNMAT2 Verksamhetspoäng: 600
Kurs: Matematik Kurskod: GRNMAT2 Verksamhetspoäng: 600 lust att utforska matematiken som sådan. Matematisk verksamhet är till sin lad till den samhälleliga, sociala och tekniska utvecklingen. Kunskaper
Läs merBedömningsanvisningar
Bedömningsanvisningar Exempel på ett godtagbart svar anges inom parentes. Till en del uppgifter är bedömda elevlösningar bifogade för att ange nivån på bedömningen. Om bedömda elevlösningar finns i materialet
Läs merLösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl
Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL och Media, SF60 och 5B8, onsdagen den 7 augusti 0, kl 4.00-9.00. Examinator: Olof Heden Hjälpmedel: Inga
Läs merResträkning och ekvationer
64 Resträkning och ekvationer Torsten Ekedahl Stockholms Universitet Beskrivning av uppgiften. Specialarbetet består i att sätta sig in i hur man räknar med rester vid division med primtal, hur man löser
Läs merAktiviteter 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.
Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 4: Programmering i matematik Aktiviteter Del 4 Här finns ett antal aktiviteter att välja mellan. Det ena handlar om att
Läs merMultipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion
Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce
Läs merMATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Läs merUppföljning av diagnostiskt prov Repetition av kursmoment i TNA001-Matematisk grundkurs.
Uppföljning av diagnostiskt prov 06-0- Repetition av kursmoment i TNA00-Matematisk grundkurs. Reella tal, intervall, räta linjer, cirklar Faktorsatsen, faktoriseringar, polynomekvationer Olikheter Ekvationer
Läs merä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.
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk
Läs merNpMa3c vt Kravgränser
Kravgränser Provet består av ett muntligt delprov (Del A) och tre skriftliga delprov (Del B, Del C och Del D). Tillsammans kan de ge 66 poäng varav 25 E-, 24 C- och 17 A-poäng. Observera att kravgränserna
Läs merRepetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python
Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python
Läs merÖvningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga.
GÖTEBORGS UNIVERSITET MATEMATIK 1, MAM100, HT2005 MATEMATISK BASKURS Övningshäfte 6: Syftet med övningen är att utforska strukturen hos talsystemen under addition respektive multiplikation samt sambandet
Läs merAktiviteter med kalkylprogram
Matematik Grundskola årskurs 7-9 Modul: Matematikundervisning med digitala verktyg Del 7: Matematiska undersökningar med kalkylprogram Aktiviteter med kalkylprogram Håkan Sollervall, Malmö högskola Exempel
Läs merSyfte. Malmö stad Komvux Malmö Södervärn PRÖVNING. prövning grundläggande matematik
prövning grundläggande matematik Malmö stad Komvux Malmö Södervärn PRÖVNING Kurs: Matematik Kurskod: GRNMAT2 Verksamhetspoäng: 600 Matematiken har en flertusenårig historia med bidrag från många kulturer.
Läs merMatematik 5 Kap 2 Diskret matematik II
Matematik 5 Kap 2 Diskret matematik II Inledning Konkretisering av ämnesplan (länk) http://www.ioprog.se/public_html/ämnesplan_matematik/struktur_äm nesplan_matematik/struktur_ämnesplan_matematik.html
Läs merKommentarer till uppbyggnad av och struktur för ämnet matematik
2011-06-10 Kommentarer till uppbyggnad av och struktur för ämnet matematik Likheter och skillnader jämfört med den gamla kursplanen Ämnesplanen i gymnasieskola 2011 (Gy 2011) har en ny struktur jämfört
Läs merFöreläsning 9: Talteori
DD2458, Problemlösning och programmering under press Föreläsning 9: Talteori Datum: 2007-11-13 Skribent(er): Niklas Lindbom och Daniel Walldin Föreläsare: Per Austrin Den här föreläsningen behandlar modulär
Läs meri LabVIEW. Några programmeringstekniska grundbegrepp
Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar
Läs merProgrammering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
Läs merSamband och förändringar Olika proportionella samband, däribland dubbelt och hälften.
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Matematisk
Läs merLokal pedagogisk planering i matematik för årskurs 9
Lokal pedagogisk planering i matematik för årskurs 9 Arbetsområde 1. Procent och statistik Syfte formulera och lösa problem med hjälp av matematik samt värdera valda strategier och metoder. reflektera
Läs merNyheter om matematik från Skolverket. oktober 2017
Nyheter om matematik från Skolverket oktober 2017 Innehåll Några korta nyheter Nytt material för förskoleklass Revideringar i styrdokument Korta nyheter Rapport Nära examen. Inventering av synpunkter på
Läs merformulera och lösa problem med hjälp av matematik samt värdera valda strategier och metoder,
Arbetsområde: Huvudsakligt ämne: Matematik, åk 4-6 Läsår: Tidsomfattning: Ämnets syfte Undervisning i ämnet matematik syftar till: länk Följande syftesförmågor för ämnet ska utvecklas: formulera och lösa
Läs mer2012-01-12 FÖRSLAG TILL KURSPLAN INOM KOMMUNAL VUXENUTBILDNING GRUNDLÄGGANDE NIVÅ
Matematik, 600 verksamhetspoäng Ämnet handlar bland annat om mängder, tal och geometriska figurer. Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska
Läs merTDP Regler
Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt
Läs merFunktionsstudier med derivata
Funktionsstudier med derivata Derivatan ett kraftfullt verktyg för att studera och tolka funktioner Det här avsnittet handlar om att man kan använda derivatan till att bestämma en funktions egenskaper
Läs merJavaScript del 3 If, Operatorer och Confirm
JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att
Läs mer1 Mätdata och statistik
Matematikcentrum Matematik NF Mätdata och statistik Betrakta frågeställningen Hur mycket väger en nyfödd bebis?. Frågan verkar naturlig, men samtidigt mycket svår att besvara. För att ge ett fullständigt
Läs merC++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merJörgen Lagnebo PLANERING OCH BEDÖMNING MATEMATIK ÅK 8
PLANERING OCH BEDÖMNING MATEMATIK ÅK 8 TERMINSPLAN HÖSTTERMINEN ÅK 8: 1 1.1 ANDELEN 2 1.2 HÖJNING OCH SÄNKNING 3 FORTS. 1.2 HÖJNING OCH SÄNKNING 4 1.3 HUR STOR ÄR DELEN 1 5 AKTIVITET + 1.4 HUR STOR ÄR
Läs merHögstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag
Högstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag 1. Lösningsförslag: Låt oss först titta på den sista siffran i 2 0 1 7. Ett tal som är delbart med 2 och 5 är då också
Läs merKap 1: Aritmetik - Positiva tal - " - " - " - " - - " - " - " - " -
År Startvecka Antal veckor 2013 34 18 Planering för ma 1b/c - ma 5000- boken OBS: För de i distansgruppen, meddela lärare innan prov. (justeringar för 1c ännu ej genomförda) Vecka Lektio n (2h) Datum Kapitel
Läs merTalföljer och cirklar: Algoritmer, geometri och mönster 2 av 4
Talföljer och cirklar: Algoritmer, geometri och mönster 2 av 4 Lektionen handlar om hur algoritmer kan användas för att skapa geometriska mönster. Lektionsförfattare: Måns Jonasson Till läraren En digital
Läs mer2 (6) k 0 2 (7) n 1 F k F n. k F k F n F k F n F n 1 2 (8)
De naturliga talen. Vi skall till att börja med stanna kvar i världen av naturliga tal, N 3. Vi har redan använt (i beviset av Euklides primtalssats) att de naturliga talen är uppbyggda (genom multiplikation)
Läs merMatematiska lägesmått med en micro:bit
Lektionen ger eleverna möjlighet att träna matematik och lägesmått med hjälp av att programmera en micro:bit. Camilla Askebäck Diaz är högstadielärare i matematik på Södermalmsskolan i Stockholm. Till
Läs merTentamen TAIU07 Matematiska beräkningar med MATLAB för MI
TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 8-12, 11 Juni, 2015 Provkod: TEN1 Hjälpmedel:
Läs merTentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en
Läs merProgramexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random
Kasta tärning tills etta Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt följande
Läs merLösningar till utvalda uppgifter i kapitel 5
Lösningar till utvalda uppgifter i kapitel 5 5.3. Vi använder Euklides algoritm och får 4485 = 1 3042 + 1443 3042 = 2 1443 + 156 1443 = 9 156 + 39 156 = 4 39. Alltså är sgd(3042, 4485) = 39. Om vi startar
Läs merGeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april
GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare Karlstads universitet 19-0 april Exempel på elevaktiviteter framtagna i skolutvecklingsprojektet IKT och lärande i matematik 1
Läs merSlumpförsök för åk 1-3
Modul: Sannolikhet och statistik Del 3: Att utmana elevers resonemang om slump Slumpförsök för åk 1-3 Cecilia Kilhamn, Göteborgs Universitet Andreas Eckert, Linnéuniversitetet I följande text beskrivs
Läs merTAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,
Läs merFöreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
Läs merFly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017
Fly me to the moon Laboration om relationer, TDDC75 Diskreta strukturer Mikael Asplund 5 september 2017 1 Inledning Denna laboration i diskret matematik a r ta nkt att ge en inblick i hur programmering
Läs mer22,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: Matematik 3hp. Studenter i inriktningen GSME. TentamensKod:
SMID Provmoment: Ladokkod: Tentamen ges för: TentamensKod: Matematik 3hp Studenter i inriktningen GSME 22,5 högskolepoäng Tentamensdatum: 12-08-30 Tid: 09.00-13.00 Hjälpmedel: Inga Totalt antal poäng på
Läs merPlanering av ett större program, del 2 - for och listor. Linda Mannila
Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)
Läs merLokal pedagogisk planering i matematik för årskurs 9
Lokal pedagogisk planering i matematik för årskurs 9 Arbetsområde 4. Samband och förändring Syfte formulera och lösa problem med hjälp av matematik samt värdera valda strategier och metoder. reflektera
Läs mer8F Ma: Aritmetik och bråkbegreppet
8F Ma: Aritmetik och bråkbegreppet Under vecka 34-43 arbetar vi med hur man skriver och räknar med tal på olika sätt. Läsårsplanering Höstterminen v34-43 Aritmetik v45-51 Algebra Vårterminen v2-7 Geometri
Läs merLaboration 3: Rekursiva definitioner, listor och ett olöst problem
Laboration 3: Rekursiva definitioner, listor och ett olöst problem I detta arbetsblad finns ett antal exempel på hur man kan använda Mathematica för att få översikt över listor och dessutom ett antal exempel
Läs mer