Symbolhanterande programvara i

Download Report

Transcript Symbolhanterande programvara i

Symbolhanterande programvara i matematikundervisning

Johan Wild 2013­02­03 [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 1970­talet 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 Linux­vä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^2­x­6; 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 exempel­notebooks, 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 instruktions­notebooks 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 Maxima­notebook och lämna in den digitalt.  Vid prov startar eleverna sin dator från ett usb­minne där det ligger en liten Linux­variant. 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 usb­minne 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 e­post.