Om programmering i matematikundervisningen

Under förra veckan blev jag intervjuad av en lärarstudent som snart är färdig med kombinationsutbildningen civilingenjör / lärare. Det gällde programmering i matematikundervisningen; för några år sedan så infördes detta i ämnesplanen för några matematikkurser på gymnasiet. Det blev ett utmärkt tillfälle för mig att strukturera mina egna tankar.

Beträffande min egen bakgrund så har jag själv har använt programmering, både som verktyg och bara för att det är kul, sedan tonåren (tidigt 80-tal!). Jag är i princip självlärd, även om jag har gått en kortare kurs i Python på KTH för några år sedan. Jag har varit med att arrangera och genomföra en utbildning för lärare på skolan där jag jobbar. Jag tycker att det är tillfredsställande att få till en kod som gör någonting på ett snyggt sätt. Att tänka datalogiskt har många likheter med att tänka matematiskt, det är nog det som är tanken med att programmeringen nu alltså ska vara en del av matematikundervisningen. Hur förhåller jag mig då till detta och hur har mitt arbetssätt påverkats under den tid som programmeringen har stått med i matematikkursernas styrdokument?

I grunden har jag ett mycket positivt förhållningssätt. Jag har skapat mig tillfällen där eleverna har fått göra matematiska programmeringsövningar, t ex för att skapa ett normalfördelat material, undersöka likformig sannolikhetsfördelning, undersöka om ett tal är ett primtal, kontrollera och undersöka Collatz förmodan.

Några saker som jag inte har hunnit med ännu är att låta eleverna lösa differentialekvationer numeriskt (jag gjorde på egen hand ett litet projekt om detta), undersöka hur många termer t ex den alternerande harmoniska serien minst måste ha för att få ett värde på \(\ln2\) med t ex tre decimalers noggrannhet (ett liknande projekt gjorde jag här) eller undersöka hur många trianglar det finns med en given omkrets med sidlängder som är heltal. Som en lektionsidé finns också att hitta lösningar till problem som kan tecknas som en diofantisk ekvation.

Det som jag däremot inte är så intresserad av att genomföra som programmeringsprojekt är t ex lösningar till andragradsekvationer medelst algoritm, derivering med hjälp av deriveringsregel, implementera en formel som givet indata beräknar utdata. Jag är heller inte så intresserad av att låta elever rita grafer i t ex Python, det finns inget självändamål med att koda för det! Vidare inser jag att t ex formelhantering (t ex ”Mata in radien på en cirkel så beräknas arean”) kan vara motiverande för elever – som sagt är det tillfredsställande att koda – och bestämma vad som ska komma ut från programmet. Men i så fall så tycker jag att problemet ska sättas in i ett sammanhang som gör att det faktiskt blir problemlösning av det.

Vad är det då som hindrar oss lärare från att genomföra allt detta? En sak är kunskapen om programmering, det är många lärare som är osäkra på detta. Men även en lärare som behärskar programmering kan stöta på svårigheter i hur det bäst används i en given undervisningssituation. Båda dessa saker kan kommas över med utbildning och diskussioner. Men det största hindret är tiden det tar att genomföra ett projekt eller lektion om detta. Många elever har tillräckligt kämpigt med matematiken som den är, programmeringen lägger på ett extra abstraktionslager till ämnet.

Jag tror att en lösning till problemet är att jobba i en projektmodell. Men för att det skulle fungera tror jag också att ämnesinnehållet skulle behöva bli mindre, alternativt mer valbart. I matematiken så landar vi till slut i ett nationellt prov, där flera specifika metoder prövas inom vitt skilda tillämpningsområden i en och samma kurs. Det gör att fokus måste ligga på sådana metoder, varpå man kan skrapa lite på ytan på andra saker – t ex problemlösning med programmering. Som det ser ut nu.

Men varför inte skapa en matematikkurs med lite lösare ramar men med fokus på problemlösningsmetoder och programmering? Gärna i början av gymnasiet, det kan få positiva effekter även i senare kurser. Faktum är att en stor del av den första kursen i matematik är repetition av grundskolekunskaper. Låt detta istället bli en problemlösningskurs med fokus på programmering.

2 reaktioner till “Om programmering i matematikundervisningen”

  1. Bra skrivet! Jag tror på att problemlösning är ett bra sätt att få elever mer intresserade av matematik. I kombination med lyckan som kommer av kod som faktiskt ger en ett fint resultat tror jag att din idé om att lägga fokus på sånt tidigt på gymnasiet kan hjälpa många elever att hitta motivation och glädje för matematiken.

  2. När det lanserades att programmering skulle införas i matematikundervisningen tyckte jag att det kändes som en skrivbordsprodukt eller en ”desperatlösning”.

    ”Problem:Sverige behöver fler programmerare => Lösning: Skolan måste se till att fler lär sig programmera => Metod:Vi trycker in det i matematikkurserna => Problemet är löst”

    Du poängterar några saker som man kan invända mot programmering i matematiken. 1 Tidsbrist 2 Matematik är svårt som det är utan att vi för in ytterligare en sak som gör matematiken ännu svårare och dessutom mer spretig 3 Kunskapsbrist hos lärare.

    Jag vill fördjupa mig lite i punkt 3. Jag har lärarbehörighet på gymnasiet i matematik och fysik. Sedan råkar jag dessutom vara ovanligt duktig på engelska. Jag är dock inte behörig att undervisa i engelska. Min förmåga att uttrycka mig skriftligt och muntligt på engelska och min läsförståelse i engelska är jämförbar med många legitimerade engelsklärare. Men undervisa i engelska får jag inte. Jag har inga invändningar mot dessa. Jag tycker naturligtvis att det är fullt rimligt att man inte skall undervisa i ämnen som man inte är behörig i.

    Mina programmeringskunskaper är hyffsade för att vara en matematik och fysiklärare som saknar behörighet i programmering. Jag skulle ranka mina kunskaper till ungefär median bland gymnasielärare som är legitimerade i matematik men inte i programmering. Dvs häften är bättre än jag men hälften är sämre än jag.

    Om jag istället jämför hur mina kunskaper i programmering står sig mot en legitimerad programmeringslärare så är jag inte ens i närheten.

    Trots att mina kunskaper i engelska är mycket goda så är det helt otänkbart att jag skulle undervisa i det ämnet. Men samtidigt anses det vara fullt naturligt att jag skall undervisa i programmering, trots att mina kunskaper i det ämnet ligger betydligt längre ifrån vad som behövs för att bedriva undervisning på ett tryggt sätt.

    Mina programmeringskunskaper ligger som sagt ungefär på median bland jämförbara gymnasielärare. Det betyder att hälften är sämre än jag. Dessa lärares kunskaper kommer ligga ännu längre ifrån vad en lärare i programmering behöver kunna. Är det vettigt att lägga kraft och tid på att lära upp alla oss som inte behärskar programmering tillräckligt väl för att kunna bedriva trovärdig undervisning? Kanske denna tid kan läggas på bättre saker, till exempel att vi blir bättre på att undervisa matematik. Även om jag är legitimerad och erfaren lärare kan jag fortfarande förbättra mycket.

    Jag tror sedan att kunskaperna i programmering bland matematiklärarna blir allt sämre ju lägre ner i årskurserna man kommer. Hur kommer detta moment att hanteras då? Jag tror att många helt enkelt kommer att strunta i det.

    Det jag vill ha sagt med denna långrandiga replik till ditt blogginlägg är följande. Om det nu är viktigt att vi i Sverige skall utbilda fler inom programmering så skall detta naturligtvis skötas professionellt av dem som kan det – dvs lärare som är utbildade till att utbilda i programmering. Jag kan visserligen gå in och fuska fram lite programmeringslektioner som är acceptabla. Men sedan går jag vidare och undervisar det jag är bra på – matematik och fysik.

    Det blir aldrig professionellt gjort när obehöriga som kan lite grann om ämnet går in och försöker sig på att undervisa. Det är därför undervisning i matematik skall skötas av legitimerade matematiklärare, undervisning i engelska skötas av lärare som är legitimerade i engelska och lärare som faktiskt är duktiga programmerare skall undervisa i programmering. Vi skall inte gå in och fuska i varandras ämnen.

    /MVH Åke Dahllöf

Kommentera gärna, markdown-formatering OK.