Chefsutvecklaren på GeoGebra, ”The mad wizard” Mike Borcherds jobbar vidare på implementeringen av ett pythongränssnitt i GeoGebra.
Utseendet och funktionaliteten kommer fortfarande att förändras mycket. I den här versionen kan du till exempel inte spara din egen kod. Testversionen finns på https://bennorth.github.io/python-geogebra/
GeoGebra-kommandon börjar med stor bokstav, resten av koden är Python. Det svarta fönstret till vänster är kodredigeraren. Om det finns GeoGebra-kommandon i koden som producerar GeoGebra-objekt, kommer de att visas i GeoGebra-ritningsområdet på höger sida. Nedanför kodredigeraren finns ett fönster där du kan skriva ut utdata med Pythons print() funktion. Där visas även möjliga felmeddelanden. Knappen Open in GeoGebra öppnar ritytan i onlineversionen av GeoGebra. På så sätt kan du enkelt redigera utdata i GeoGebra.
Pythonversionen kommer så vitt vi vet att släppas innan sommaren, men förseningar har skett förr. Det kommer dessutom bara vara möjligt att köra Python online, och inte i nedladdade versioner på din dator. Trots det är det en spännande utveckling som kan förenkla för de som vill programmera just i matematikundervisningen. Vi får också nu tillgång till for-loopar och villkorssatser i Python, något som tidigare bara varit möjligt för den som vill skriva javascript.
I GeoGebra är en kryssruta den grafiska representationen av en så kallad Boolesk variabel, en variabel som bara kan ta värdena true eller false. Den grundläggande idén är att låta en kryssruta bestämma om ett eller flera objekt på skärmen ska vara synliga för tillfället eller ej, som en slags på/av-knapp, men det är bara en av alla möjligheter.
Vi tänker oss att du vill visa symmetrilinjen och vertex hos andragradsfunktioner. Du matar in ax2 + bx + c och trycker på Enter för att rita upp en andragradsfunktion vars koefficienter du kan reglera. Kommandot Extrempunkt(f) ger dig vertexpunkten och du döper om den till V. Sedan skapar du symmetrilinjen med kommandot x = x(V) och gör den streckad och fin.
Du är inte säker på om du vill ha algebrafönstret öppet när du demonstrerar detta så du vill ha en kryssruta som kopplar på och av symmetrilinjen. Du väljer verktyget för kryssruta…
…och klickar där du vill ha den. Nu får du upp en meny där du kan välja den vertikala linjen. Förklaring är texten du vill ha bredvid kryssrutan, t.ex. ”Visa symmetrilinjen”.
Allt fungerar som det är tänkt – men så kommer du på att du kanske skulle vilja kryssrutan styra även vertexpunkten. Hur gör du det?
Nyckeln till att förstå det här är att inse att ”visas” är en egenskap hos linjen, inte hos kryssrutan. Så du går in i egenskaperna för linjen och väljer fliken Avancerat. Högst upp, under rubriken Villkor för att visa objekt hittar du d som är kryssrutans namn. Linjen visas alltså endast när d har värdet true – när kryssrutan är markerad.
För att låta punkten V påverkas av kryssrutan d så går du alltså in på V:s egenskaper, väljer fliken avancerat, och skriver in d under Villkor för att visa objekt. Nu styr kryssrutan både symmetrilinjen och vertexpunkten samtidigt.
Men så börjar du fundera. Egentligen vill du ju först visa vertexpunkten, och sen visa symmetrilinjen. Det kanske är bättre med två kryssrutor. Fast det var ju rätt snyggt att bara ha en kryssruta. Går det att göra så att den andra kryssrutan bara visas först när du markerat den första? Jodå. Gör så här:
Skapa en ny kryssruta som du kopplar till punkten V. Den nya kryssrutan får namnet e. Gå sedan in i egenskaperna för den booleska variabeln d (alltså den första kryssrutan) och skriv in e under Villkor för att visa objekt. Nu kommer kryssruta d bara att visas om du först markerat kryssruta e.
Du kan också ”nollställa” kryssruta d så att den alltid är omarkerad varje gång den visas. För att göra det krävs ett litet script. Gå in i egenskaperna för kryssruta e och välj Script (Program). Under Vid uppdatering (onUpdate) skriver du in SättVärde(d, false).
Du kan flytta på kryssrutorna genom att dra i dem med höger musknapp.
Nu kan du ändra andragradsfunktion som du vill och fråga eleverna vad vertexpunkten har för koordinater och därefter vad symmetrilinjen har för ekvation om och om igen.
Här är ett annat exempel där synligheten hos en kryssruta avgörs av värdet på en glidare.
Jag har under senaste tiden fått tillfälle att göra en del nya instruktionsfilmer. De här är i första hand riktade mot lärare och försöker (i alla fall med tiden) vara någorlunda heltäckande.
De är samlade i fem stycken spellistor som just nu innehåller mellan en och fem filmer var, men tanken är att det ska fyllas på med filmer under 2023.
Filmerna för elever fungerar förstås även för lärare, även om fokus är mer på användandet av GeoGebra som en avancerad räknare.
Hör gärna av dig om du ser att något saknas. Jag har i och för sig en plan men jag kan ha missat något om jag vet att det är något speciellt du vill ha så kan jag prioritera det.
En av de vanligaste återkommande frågorna jag får som lärare på ett naturvetenskapligt program är – förvånande eller inte:
Hur gör man felstaplar i GeoGebra?
Eleverna är vana att lägga in mätdata och göra regressioner i Geogebra, men just felstaplarna kan vara lite knepigt att få till så att det blir snyggt.
Metoderna skiljer sig kraftigt beroende på om du använder GeoGebra Classic som har ett kalkylblad eller GeoGebra Calculator Suite där du får jobba med listor istället.
GeoGebra Classic
Börja med att lägga in dina mätdata i kalkylbladet som du kan öppna med kortkommandot Ctrl-Shift-S (för spreadsheet). Lägg x-värden i kolumn A och y-värden i kolumn B. Använd en rubrikrad så att första värdet ligger på rad 2.
Du kommer också att behöva information om hur stora dina felstaplar är. Hur du tar reda på det beror på vad det är för undersökning eller experiment du har gjort men det kanske innefattar att beräkna standardavvikelsen för medelvärdet, punkt för punkt. Eller så är det bara en uppskattning av mätnoggrannheten för din metod eller instrument och det är samma värde för alla datapunkter. Oavsett vilket så behöver du dessa värden. Fyll i dem i kolumn c.
Formler i GeoGebras kalkylblad kan innehålla geometriska objekt
Det finns flera olika sätt att skapa själva datapunkterna. Den här gången gör jag det genom att i cell D2 skriva =(A2, B2). Likhetstecknet som inleder formler i kalkylprogram är frivilligt i GeoGebra. Du kan nu kopiera ned formeln genom att markera cell D2 och dra i den lilla fyrkanten i nedre högra hörnet. Då skapas de andra punkterna.
Att kopiera ned en formel: lägg märke till den lilla kvadraten i nedre högra hörnet av den markerade cellen
På samma sätt skapar du nu ytterligare två kolumner av punkter som ska representera felstapelns över- och nederkant. I E2 skriver du =(A2, B2 + C2) och i F2 skriver du =(A2, B2 – C2). Kopiera ned formlerna för båda dessa.
Det sista konstruktionselementet är själva felstapeln. I G2 skriver du =Sträcka(E2, F2) och kopierar ned formeln.
Vår färdiga tabell
Det du nu har i ritområdet ser antagligen extremt fult ut, men frukta icke! Det enda som nu återstår att göra är att snygga upp resultatet.
Öppna egenskapsdialogen med Ctrl-Shift-E. Markera värdena i kolumn D (alltså alla punkter, men inte rubriken på rad 1). På fliken Utseende ställer du in storlek 3 och använder kryss som symbol för datapunkterna. Om det inte gick, kontrollera att du verkligen bara markerat datapunkterna och inte rubriken eller tomma celler.
Egenskaper för utseendet hos punkter
Färgen på datapunkterna är lämpligen svart men du kan markera enstaka punkter och framhäva dem med någon annan färg om det finns skäl till det.
Markera sedan punkterna i kolumn E och F och på fliken Grundinställningar så avmarkerar du kryssrutan Visa objekt. Dessa punkter ska helt enkelt inte visas alls.
Objekt i kalkylbladet brukar automatiskt markeras som hjälpobjekt, och syns därför inte i algebrafönstret
Markera till slut felstaplarna i kolumn G. På fliken Utseende ställer du in linjetjockleken 2 och ser till att både starten och slutet på felstaplarna blir markerade med tvärstaplar.
Egenskaper för utseendet för sträckor
Om det är lämpligt kompletterar du med en passande regressionsfunktion, t.ex. RegressionPotens(D2:D10). Du kan dra funktionen från algebrafönstret till ritområdet för att skapa en textetikett.
Forma ritområdet till lämplig storlek, dra axlarna till lämplig position och zooma in lagom mycket. Kopiera ritområdet med Ctrl-Shift-C och klistra in ditt färdiga diagram i din rapport.
Det färdiga diagrammet
Calculator Suite
Att göra motsvarande konstruktion i Calculator Suite som saknar kalkylblad är betydligt krångligare. Vi använder oss av listor.
Mata in x– och y-koordinaterna och felvärdena:
X = {1, 2, 3, 4, 5} Y = {3, 5, 7, 9, 12} F = {0.2, 0.3, 0.4, 0.4, 0.4}
Skapa punkterna:
P = (X, Y} Q = (X, Y+F) R = (X, Y-F)
Dölj Q och R. Det här gick någorlunda smidigt, men för att skapa staplarna krävs tyvärr en mer komplicerad process. Sträckorna skapas så här:
S = Talföljd(Sträcka(Q(n), R(n)), n, 1, Längd(P))
Kommandot Talföljd(…) fungerar här som en for-loop som skapar en sträcka i taget för alla n-värden från 1 till antalet punkter.
Det går inte heller att bara dekorera dessa sträckor så vi måste bygga tvärstaplarna själva. Vi sätter bredden på tvärstaplarna till 2d och låter d initialt ha värdet 0.1.
d = 0.1
Så gör vi en lista med dessa värden.
D = Talföljd(d, n,1,Längd(P))
Nu skapar vi hjälppunkter som sedan kan döljas.
P1 = (X – D, Y + F) P2 = (X + D, Y + F) P3 = (X – D, Y – F) P4 = (X + D, Y – F)
Den övre och den undre tvärstapeln skapas nu med
topbar = Talföljd(Sträcka(P1(n), P2(n)), n, 1, Längd(P)) bbar = Talföljd(Sträcka(P3(n), P3(n)), n, 1, Längd(P))
Dölj alla punkter utom datapunkterna. Formatera datapunkterna, felstaplarna och tvärstaplarna som tidigare.
Linjetjocklek = 2
Punktstorlek = 3
Punktform = kryss.
Sätt värdet på d så att tvärstaplarna blir lagom breda.
När du öppnar GeoGebra Classic 6 för första gången så ser det ut så här: (Full skärm 1920×1080. Programlistens färg bestäms av dina Windowsinställningar).
Teckensnittet är väldigt litet, hela skärmen är extremt vit och två decimaler är inställt som standard. Som lärare bör du göra vissa förändringar för att eleverna ska kunna se bra. Och en del förändringar ska eleverna kunna göra själva.
Starta Geogebra så gör vi lite anpassningar.
Fönstrets storlek
Vill du att att GeoGebra ska starta i full skärm eller i ett lite mindre fönster? Dra i hörnen tills du får den storlek du vill ha men om du ofta presenterar kanske full skärm är att föredra.
Teckenstorlek
Kortkommandot Ctrl+2 ökar successivt teckenstorleken i både ritområdet och inmatningsfältet och ändrar också storleken på punkter och linjer. Ctrl+1 återställer tillfälligt allt detta till standardstorlek igen. Du kan också ställa in teckenstorleken i de globala egenskaperna i egenskapsdialogen. Den metoden ändrar inte på storleken hos linjer och punkter.
Jag brukar välja 24 pt eller större vid presentationer.
Antal decimaler
Som standard visar Classic-versionerna 2 decimaler och Calculator Suite ”alla” deciamaler. Jag kan tycka att det beror på vad man just för tillfället vill göra. För pengar passar två decimaler perfekt. För vinklar kanske en decimal, för rötter och logaritmer vill jag ha tre. Men framförallt vill jag inte överraskas av små värden som presenteras som 0 så jag brukar ha 5 decimaler som standard.
Bakgrundsfärg
Vitt är ganska tråkigt så jag har ofta en bakgrundsfärg i ritområdet. Det går att ställa in i egenskaperna för ritområdet som du kan få fram genom att högerklicka i det. Bakgrundsfärgen hittar du långt ner.
Jag brukar välja en ljust gul färg (RGB: 255, 255, 216, #FFFFD8) för att bli av med det ”vita blänket”.
Tre tryck på Ctrl-2, en ljusgul bakgrund och 5 decimaler så ser det ut så här istället. Mycket tydligare för eleverna.
Spara inställningarna
Se till att göra BARA de inställningar du vill göra och gå sedan till de globala inställningarna och tryck på Spara inställningar. Då startar Geogebra i det läget nästa gång.
Visa eleverna
Det här bör du även visa eleverna så att de själva kan göra de inställningar som fungerar för dem i deras dagliga användning av GeoGebra och så att de förstår skillnaden mellan ”deras” GeoGebra och ”din” GeoGebra. En sak de kanske vill göra är att byta språk.
Dela inställningar
Du kan om du vill, efter att du sparat dina inställningar, skapa en tom GeoGebrakonstruktion och dela den med eleverna. När de öppnar den följer inställningarna med och allt de behöver göra för att få samma inställningar är att spara dem. Du kan också spara filer för egen användning i olika situationer, t.ex. en för fysikberäkningar där du ställt in fem gällande siffror.
I det första inlägget om tangentbordet beskrev jag räkneoperationer, specialtecken och det virtuella tangentbordet. Nu ska vi kika lite mer på några hur du zoomar och panorerar ritområdet och justerar glidare med hjälp av piltangenterna i kombination med Ctrl-, Shift- och Alt-tangenterna. Men först lite kort om index.
Indexering
Det är ofta nödvändigt att indexera variabler. Det kan till exempel röra sig om flera olika areor som då kan benämnas A1, A2, A3 eller om jämförelser mellan volymen på ett klot och en cylinder som då kan kallas Vk och Vc. Dessa nedsänkta tecken kallas för index. I GeoGebra skapar du index på samma sätt som i många andra matematikprogram: du använder understrecket(_). A1 matas då in som A_1, Vk matas in som V_k. Det här är snyggare (men tar något mer tid att skriva) än A1 eller Vk.
Zooma och panorera
Du kan hålla Shift nedtryckt medan du drar i axlarna för att zooma men ännu smidigare är att kombinera Shift med piltangenterna. Varje tangenttryckning zoomar ca 10 %.
Om du istället kombinerar piltangenterna med Ctrl så flyttar du origo åt pilens håll (det vill säga panorerar åt andra hållet).
Shift + Upp zoomar in i y-led (Ctrl + Upp flyttar origo uppåt) Shift + Ner zoomar ut i y-led (Ctrl + Ned flyttar origo nedåt) Shift + Höger zoomar in i x-led (Ctrl + Höger flyttar origo åt höger) Shift + Vänster zoomar ut i x-led (Ctrl + Vänster flyttar origo åt vänster)
Alt + piltangenter panorerar på samma sätt som Ctrl, men en hel skärm i taget.
Justera värdet på glidare
Med piltangenterna kan du enkelt öka eller minska värdet på en glidare eller flytta en punkt. Storleken på förändringen avgörs av värdet på steglängden som anges i inställningarna för talet eller punkten.
Om du håller nere någon av Ctrl- Shift eller Alt-tangenterna samtidigt som du använder piltangenterna så fungerar de som ”förstärkare”.
Shift + Pil multiplicerar tillfälligt steglängden med 0.1 så att du kan ta mindre steg. Ctrl + Pil multiplicerar med 10 så att du kan ta längre steg och Alt + Pil multiplicerar med 100.
Så om steglängden på ett tal är 0.5 och du trycker på…
Upp så ökar talets värde med 0.5 Shift + Upp så ökar talets värde med 0.05 Ctrl + Upp så ökar talets värde med 5 Alt + Upp så ökar talets värde med 50
Relaterat
Tillgänglighet: GeoGebra kan användas med enbart tangentbordet och har support för alt-texter och skärmläsare. Se mer här. Namnge objekt: Se manualen. Sammanställning över tangentbordsgenvägar finns här.
Du vill illustrera cirkelns ekvation eller hur de trigonometriska funktionerna hänger ihop med enhetscirkeln. Du skapar en cirkel och sätter en punkt på den som du kan dra runt. Så slår det dig att det skulle vara illustrativt att rita ut en triangel i cirkeln så att hypotenusan ligger längs radien. Men hur gör du?
För att visa koordinaterna ändrar du i punktens inställningar
Vi behöver en till punkt på x-axeln, en punkt som alltid har samma x-koordinat som punkten C. Det kan vi skapa genom att skriva (x(C), 0). funktionen x(C)plockar ut (eller beräknar om du så vill) punkten C:s x-koordinat. På samma sätt kan du få y-koordinaten genom att skriva y(C).
Triangeln kan skapas med polygonverktyget eller med kommandot Polygon()
Med punkten på plats kan du skapa triangeln. Punkt D följer snällt med när du drar i C.
Ett till exempel: Du kan skapa en rektangel genom att skapa en punkt A i origo och punkterna B och C på x-axeln och y-axeln. Genom att plocka ut x-koordinaten för B och y-koordinaten för C så kan du skapa det sista hörnet som punkten D = (x(B), y(C))
Ändra storlek på sidorna genom att dra i B och C.
Lägg märke till att punkter som är helt bestämda (som A och D) är svarta och punkter som du kan dra i (som B och C) är blåa.
Vi kan också använda begreppet plocka ut i några fler situationer. Om du gjort en regression så vill du ibland räkna vidare med de framräknade parametrarna. Hur gör du det om du vill slippa skriva om alla decimaler?
Låt oss ta ett konkret exempel. Om du joggar och vill hålla koll på din kondition och hastighet är det vanligt att arbeta med kilometertider, alltså hur lång tid det tar att springa en kilometer. Låt oss säga att du springer 8 km genom att springa fyra varv på en 2 kilometersslinga. Varje gång du passerar starten noterar du tiderna som blir 8.30, 16.45, 26.15 och 33.45. Vad blir medelhastigheten?
Hastigheten i km/h är 60/kilometertiden
Vi skapar punkter och gör en regression av typen y = kx. Om du är osäker på hur du gör för att slippa konstanttermen så titta på inlägget om regressioner.
I det här diagrammet har vi sträckan i km i minuter på x-axeln och tiden på y-axeln. k-värdets enhet blir alltså minuter/km. För att förvandla den här kilometertiden till hastighet i km/h så får vi ta 60 dividerat med kilometertiden. Alltså behöver vi räkna vidare med lutningen. Hur gör vi det?
Kommandot Koefficienter(f) ger oss en lista med koefficienterna. Kommandot plockar ut koefficienterna från funktionen.
Därefter plockar vi ut första koefficienten genom listanropetl1(1). Vi passar på att ge värdet ett begripligt namn på en gång. Nu kan vi utföra beräkningen. Löparens medelhastighet är ca 14 km/h.
För att summera så kan du plocka ut värden få flera olika sätt:
Plocka ut koefficienterna från en regressionsfunktion: Om f är funktionen som vi bestämt med en regression så blir Koefficienter(f(x)) = {4.263, 0} alltså en lista med koefficienter.
Plocka ut ett element i en lista: Om l1 är listan med värden så blir l1(1) det första elementet i listan, här värdet 4.263. Om l2 är en lista med punkter som vi skapade nyss så blir l2(1) den första punkten i listan.
Plocka ut x- och y-koordinaterna för en punkt: Om A = (2, 8.5) så blir x(A) = 2 och y(A) = 8.5. De fördefinierade funktionerna x(punkt) och y(punkt) plockar ut koordinaterna för en punkt. Väldigt användbart för att lägga till element som punkter och hjälplinjer i figurer.
I helgen gick den 11:e Nordisk-Baltiska GeoGebrakonferensen av stapeln, denna gång i Helsingfors. Det enklaste sättet att ta del av presentationer och foton är att gå med i Facebookgruppen NGGN Infinity (Nordic GeoGebra Network, ”infinity” är för att vi återanvänder gruppen från år till år). I den gruppen ligger presentationer, och i vissa fall inspelningar av föreläsningar. Missa för allt i världen inte Tim Brzezinskis föreläsning om ”Open middle problems”.
2023 års konferens kommer att arrangeras i Stockholm, så se till att prata med din rektor om fortbildningspengar för detta redan nu. Vi kommer dessutom behöva hjälp med arrangemang och programinnehåll så se till att hålla koll på den här kanalen. Det här passar väldigt bra i tiden med tanke på att GeoGebra kommer att användas som digitalt verktyg i de framtida digitala nationella proven.
Markus Hohenwarter (GeoGebras grundare) och Tanja Wassermair (Chef för webbsidan) kunde också berätta en hel del om kommande nyheter. I GeoGebra Classroom kommer det att bli möjligt att ge feedback till individuella elever till jul men jag var jag personligen mer imponerad av en testsida där Mike Borderch (chefsutvecklare) har gjort en fungerande Python-GeoGebrahybrid där du kan skriva Pythonscript för att generera objekt i Ritområdet. Du kan själv testa detta redan nu. Prova också att leka med koden. För att skapa superellipser kan du byta ut koden mot
for x in range(12):
s = str(x*0.25)
evalCommand("x^4+y^4=" + s + "^4")
Berätta gärna vad du tycker och vad du personligen skulle vilja kunna göra med detta.
Klicka på animeringen för att gå till konstruktionen
På grund av förändringar i hur konstruktioner presenteras så behöver du själv högerklicka på variabeln/glidaren ”t” i algebrafönstret (området till vänster när du klickat dig fram till konstruktionen på geogebra.org) och välja Animation för att starta ”rörelsen”.
I verkligheten är avstånden sådana att formen på månens bana aldrig blir konkav, men i animeringen blir den mer ”blomlik”.
Skolverket har nu börjat konkretisera planerna för de framtida digitala nationella proven i matematik. Det är nu klart att det kommer att finnas GeoGebra, eller ett snarlikt verktyg, tillgängligt för eleverna. Efter samtal med en som faktiskt sett provverktyget tolkar jag det som att det rör sig om en integrerad version av GeoGebra som i allt väsentligt har hela GeoGebras funktionalitet, ungefär som den version som Exam.net använder sig av.
Det är bra att Skolverket nu äntligen är tydliga med vad digitala hjälpmedel innebär och väljer det som blivit en internationell standard. GeoGebra används aktivt i så gott som alla världens länder och är översatt till över 50 språk. Möjligen kunde det förtydligandet kommit tidigare så läromedelsföretagen och lärarkåren kunde startat tidigare och därför kommit längre.
För det är ingen liten sak som ska sjösättas. Matematiklärare är den lärargrupp som använder digitala verktyg minst i sin undervisning (tabell 5.27 på sid 83 i Skolverkets rapport från 2015). Men för att Sveriges elever skall ha likvärdiga möjligheter så krävs det att ALLA lärare undervisar ALLA elever om (och med och i) GeoGebra i både högstadiet och gymnasiet inom något år.
Det finns flera aspekter kring detta att diskutera. De rent tekniska färdigheterna ska tränas in. Till detta finns det redan screencasts och dokument i mängder för den som bara tar sig tiden (vilket säkert kommer att resultera i en del facklig indignation och hårda prioriteringar). Sedan har vi den pedagogiska aspekten: Hur använder jag bäst GeoGebra i klassrummet för att lära eleverna matematiska begrepp och procedurer (genom att utnyttja de visuella, dynamiska och undersökande aspekterna av GeoGebra). Tidsaspekten: Hur hinner jag med detta (genom att låta det bli en så naturlig del av din undervisning att både du och dina elever växlar sömlöst mellan att jobba för hand och med verktyget).
GeoGebra är vad jag kallar för ett ”bottenlöst” program. Precis som Excel och Word så kan du använda det – på din egen nivå – i åratal och ändå inte ha lärt dig alla funktioner som finns. Men precis som Excel och Word så kan du ändå använda det ganska bra efter bara lite träning. Efter det kommer resten med tiden och vanan.
Tveka inte att berätta för mig vilken hjälp just du skulle vilja ha för att bättre komma igång med GeoGebra.
System av differentialekvationer i GeoGebra på en elevs dator