Transcript Symbolhanterande programvara i
Symbolhanterande programvara i matematikundervisning
Johan Wild 20130203 [email protected]
Inledning
Maxima är ett program för symbolhantering av matematik. Jag har under några år utvecklat användandet av Maxima i gymnasiets kurser. Konkret har jag författat teori och övningsfiler som både introducerar programvara och tar upp intressant matematik. Dessa filer finns nu tillgängliga för var och en som vill använda dem. Eftersom dessa filer fungerar som ett läromedel över hur programmet används, ägnar jag mycket lite av denna artikel åt detta.
I denna artikel beskriver jag framförallt vad Maxima kan användas till och varför.
Om digitala hjälpmedel
Man skulle kunna dela upp fördelarna med digitala hjälpmedel i olika kategorier. Till exempel kan man använda program för att göra normal gymnasiematematik snabbare och/eller mer lättbegriplig. Ett annan fördel kan finnas i att presentera resonemang tillsammans med uttryck och grafer på ett effektivt och enhetligt sätt. I dessa två kategorier finns helt klart fördelar med Maxima.
Den stora fördelen digitala hjälpmedel erbjuder tycker jag personligen ligger i att helt nya delar av matematiken blir åtkomlig på ett praktiskt sätt för eleverna. Till exempel kan man komma en bit in i den abstrakta algebran, ta upp integralen som en skalärprodukt och hantera matriser. Man kan också introducera eleverna i lite programmering, vilket i sin tur kan vara användbart i samband med numeriska simuleringar i fysiken.
Det är i ljuset av detta perspektiv som denna artikel skall läsas.
Varför denna artikel?
Europaskolan var en av de skolor som år 2009 fick förtroendet att ge en gymnasial spetsutbildning. Vi hade då sedan länge haft lokala kurser som behandlat matematik utöver det vanliga och inom ramen för detta arbetat mycket med symbolisk matematik med datorstöd.
I de kontakter med Skolverket som följde som en naturlig del av detta projekt tillsköts nyligen medel för att sammanställa mina filer till en enhetlig form som nu är användbara för var och en. De är publicerade på Europaskolans hemsida. Denna artikel är skriven som en del av det projektet.
Vad är Maxima och vad kan det?
Maxima har anor från 1970talet och användes från början med ett textgränssnitt, men har under senare år fått ett grafiskt användargränssnitt. Maxima är skrivet i programmeringsspråket LISP och användargränssnittet baseras på wxWidgets, vilket gör att det ser lika ut under både Linux, Windows och Mac.
Allt detta är gratis och utvecklas ständigt av engagerade användare som så många andra program inom Linuxvärlden. Dess kommersiella motsvarighet är programmet Mathematica.
Utöver att kunna hantera symboliska uttryck, kan Maxima rita grafer, lösa ekvationer numeriskt och mycket mer. Dessutom går det att programmera i Maxima. Detta är mycket användbart i olika sammanhang, både inom själva Maxima då man till exempel vill skapa många funktioner vars grafer
man vill jämföra, eller utom Maxima då man vill spara data i en fil.
Vad bör man inte använda Maxima till?
Om man bara är ute efter att skapa snygga grafer från uttryck finns bättre program eller webbaserade lösningar.
Vill man bara lära sig programmera är Maxima en bra brygga mellan matematik och programmering, men syntaxen är krångligare än i till exempel Python. Dessutom blir programmen långsamma och felsökning är knepigt. Maxima erbjuder inte objektorienterad programmering.
Om man vill lösa större problem numeriskt (läs differentialekvationer) är inte Maxima det man bör använda eftersom Maxima är symboliskt.
Vad kan man då använda Maxima till på gymnasiet, och varför?
Eftersom Maxima är symbolhanterande är kanske den främsta användningen i gymnasiet inom algebra och andra ”symboliska situationer” inom derivering och integrering.
Personligen har jag en vision om det jag brukar kalla matematikens storskaliga struktur. Med detta menar jag de generella begrepp som återkommer på olika nivåer i matematiken. Ett mycket bra exempel på detta är att jag vill att eleverna verkligen skall uppleva att polynomen utgör en ring. Jag vill att de skall se att begrepp som primtal/irreducibelt polynom, sgd, mgm, kvot, rest med mera har precis samma betydelse för heltal som de har för polynom. Den laboration som belyser detta heter Z och polynom, i vilken eleverna skall välja ett antal primtal som sedan multipliceras gruppvis. Därefter beräknas den största gemensamma delaren, vilket naturligtvis blir produkten av de gemensamma faktorerna. Därefter görs precis samma sak med polynom. De börjar med att välja ett antal irreducibla polynom och upplever i slutet att begreppet sgd fungerar på precis samma sätt i de två ringarna.
Ett annat exempel på laboration av denna typ är en där eleverna skall experimentera sig fram till hur multipliciteten för en faktor i ett polynom är relaterad till grafens utseende för motsvarande funktion.
Vid sidan om dessa inblickar i djupare förståelse för olika delar av matematiken kan man Maxima för att presentera längre resonemang på ett effektivt sätt. Man kan infoga rubriker i olika nivåer och skriva förklarande text till de uttryck och grafer som utgör det matematiska innehållet. Detta kan både användas för skriftlig och muntlig kommunikation.
Maxima är inte tänkt som ett pedagogiskt skolhjälpmedel, utan har utvecklats av matematiker för professionell tillämpning. Det gör att eleverna kan ta med sig Maxima långt upp i sina fortsatta studier. Inte minst den vanligtvis första kursen i linjär algebra kan underlättas, men även senare kurser. Att ha förkunskaper i gränslandet mellan matematik och programmering gynnar de flesta.
Hur används Maxima?
Maxima används genom att definiera uttryck och ge kommandon i så kallade celler. En fil med sin samling celler benämns notebook. All input ges som text. Detta är både en begränsning och en styrka. Det finns en viss tröskel att ta sig över för att bli van vid syntaxen. Fördelen är att den liknar programmering väldigt mycket, så steget till att programmera på riktigt är väldigt litet.
För att definiera en funktion och rita dess graf i intervallet [5,5] skriver man
f:x^2x6; wxplot2d(f,[x,5,5]); Andra exempel på mer eller mindre självförklarande uttryck följer här.
factor(f); diff(f,x); integrate(f,x); integrate(f,x,a,b); solve(f=8,x); De notebooks som finns tillgängliga är självförklarande, så jag uppmanar alla att titta på dessa. Det är helt orimligt att gå igenom hela Maximas funktionalitet här.
Att jobba med Maxima i gymnasiets kurser
De notebooks som finns tillgängliga introducerar funktioner i Maxima i den ordning motsvarande matematik avhandlas i gymnasiets kurser. Den första handlar om talteori och tar upp funktioner för att faktorisera tal, samt funktioner relaterade till begreppen kvot och rest. Här introduceras också begreppet listor i Maxima, vilket är en mycket viktig del av funktionaliteten. Senare notebooks handlar om ekvationer, hur man ritar grafer, ekvationssystem, hur man ritar lösningsmängden till ekvationer med mera. På detta sätt fortsätter det till och med Matematik E / Matematik 5 där funktioner för differentialekvationer introduceras. Dessa notebooks syftar bara till att bekanta eleverna med programvaran. Det finns övningar att göra och eleverna lämnar in filerna för rättning. Övningarna är så enkla att det oftast handlar om att bara kontrollera att eleverna faktiskt gjort något alls.
Vid sidan av detta finns notebooks där eleverna skall utföra någon sorts laboration. Det kan handla om att se just att polynomen utgör en ring, eller undersöka hur koefficienter i uttryck påverkar grafens utseende. Det finns också större exempelnotebooks, där jag tar upp lite mer avancerade exempel som normalt inte ingår i gymnasiet, men som ändå kan tjäna som inspiration för högre studier. Exempel på detta är begreppen krökningsradie och krökningscirkel till grafen till en funktion, Gaussiska heltal, och matriser som avbildningar.
Jag introducerar Maxima i kursen Matematik 1 och har som obligatoriska inlämningsuppgifter att göra de instruktionsnotebooks och laborationer som hör till den kursen. De notebooks som bara behandlar användandet av Maxima kontrollerar jag bara att eleverna gjort. Laborationer kan genomföras med olika kvalitet med avseende på både undersökningar och redovisningar. Dessa betygsätter jag som normala inlämningsuppgifter.
Detta fortsätter sedan i högre kurser. Vid sidan om detta använder jag Maxima för att generera exempel under lektioner, och eleverna använder det för större och mindre problem. I Gy 11 får eleverna dessutom använda Maxima på den del av det nationella provet där digitala hjälpmedel är tillåtna. Vid sådana provtillfällen kan eleverna både använda Maxima som vilket stöd som helst, men redovisa beräkningar och resonemang på papper, eller så kan de kommentera sina lösningar direkt i en Maximanotebook och lämna in den digitalt. Vid prov startar eleverna sin dator från ett usbminne där det ligger en liten Linuxvariant. Där finns en enda användare definierad som inte har rättigheter att komma åt den lokala hårddisken eller något nätverk. Eleverna sparar filer där deras namn är en del av filnamnet på den enda katalog de har tillgång till. Innehållet i denna enda katalog de har tillgång till kopieras efter provet till min hårddisk. En idiotsäker totallösning till kostnaden av ett usbminne per elev.
Ett tips är att använda Dropbox för kommunikation med eleverna. Jag har skapat en katalog för varje elev där det i sin tur finns kataloger som heter ”Till Johan” och ”Från Johan”. Eleverna lämnar in filer genom att spara dem i ”Till Johan” och jag delar ut nya och rättade filer i ”Från Johan”. Detta är betydligt smidigare än att skicka filer per epost.