Räkna med Python

Skriven av

Välkommen till Pythons underbara värld. Python håller på att bli det populäraste programmeringsspråket. Om du skaffar boken Räkna med Python och använder den hjälpsamma kostnadsfria utvecklingsmiljön Thonny blir programmering inte längre något abstrakt, utan tvärtom konkret och pedagogiskt, med enkel felsökning, snygg grafik osv.

Pythonprogrammering har införts i skolundervisningen från och med årskurs 7, men problemet är att lärarna ibland inte har tillräckliga kunskaper. Både lärare och elever kan skaffa sig fullgoda kunskaper, på ett enkelt och roligt sätt. Riktig högnivå-programmering, inte leksaks-programmering.

Hämta hem boken i digital upplaga, läs den och tala om vad du tycker: http://huvudrutin.se/index.php/rakna-med-python/

All vår början bliver lätt

Tror du att man börjar lära sig programmering så här?

antal_frukter_per_vecka = 2 * 5
print("Varje vecka äts ", antal_frukter_per_vecka, " frukter.")
antal_frukter_per_läsår = antal_frukter_per_vecka * 38
print("Varje läsår äts ", antal_frukter_per_läsår, " frukter.")

Det gör man inte. Man börjar så här:

Boken börjar inte med programsatser rakt på utan förklarar själva idén med programmering: flödet. Det är viktigt att man förstår att ett program är ett flöde och att man kan rita flödet. När man klarat av det består själva programmeringen av att byta ut symbolerna i flödesschemat mot programsatser.

Boken lär ut huvuddelen av pythonspråket, men också en del kringinformation, som varför programmeraren Guido van Rossum skapade språket, lite om gamle Pythagoras och varför Florence Nightingale började med statistik och cirkeldiagram. Utan förståelse för historien kan man inte helt begripa hur dagens teknik fungerar. Historielöshet har aldrig gagnat någon.

Och vad gör man inte alls?

Pythonprogrammering är inte som klicka-och-dra-programmering i nybörjarspråket Scratch, där man lägger ut färgglada rutor och pilar utan att behöva förstå vad rutorna betyder i detalj. Den sortens programmering kommer ingen någonsin att träffa på i yrkeslivet, där det faktiskt krävs att man förstår i detalj vad man gör.

Det handlar inte heller om att bygga plastrobotar i byggsats och få dem att åka av sig själva Snäppa ihop små robotar som surrar och piper har aldrig gagnat någon. Det kommer ingen heller att ägna sig åt i yrkeslivet.

Försiktig start

Boken börjar inte med hård-nördig programmerarjargong direkt utan går ut försiktigt med att förklara varför det är så viktigt med exempelvis syntax, variabeltyper mm.

Varje kapitel inleds med en grafisk, pedagogisk förklaring till vad den kommande metoden, funktionen eller påhittet ska användas till. Det behövs särskilt när det börjar bli abstrakt, som klasser eller listor i listor.

Övningsuppgifterna har hållits så lättsamma som möjligt, med viss anknytning till skolan, samhället eller vetenskapen, matlagning, Science Fiction, ånglok och spel och dobbel, allt som är viktigt för det uppväxande släktet.

Begreppen i boken är på svenska. Man behöver inte kunna amerikansk programmerarjargong för att förstå. Det är viktigt att alla inser att det finns svenska termer och uttryck. Det är inga problem med ÅÄÖ i variabelnamn osv. Det finns ingen anledning att skriva variabler och funktioner på engelska. Det enda som kan störa en svensk är att Python, såväl som alla andra programmeringsspråk kräver decimalpunkt. Komma används som avdelare i listor. Det är bara att beklaga.

Thonny

Glöm det där med gröna textrader som rullar frenetiskt över en svart skärm i ett mörkt rum. Det såg bra ut i filmen Matrix, men verkligheten av idag är mycket trevligare och heter Thonny.

All utveckling sker i Thonny, ett pedagogiskt, kostnadsfritt gränssnitt

Thonny är ett program, en “miljö” som används till inmatning, tolkning och felsökning av programsatser i Python. Programsatser som sparas i en fil, kallas källkod. Thonny är speciellt bra i pedagogiska sammanhang då man till skillnad från andra utvecklingsmiljöer kan stega sig genom programsatserna och få visuell återkoppling vid varje steg. Den ger utmärkt hjälp vid felsökning.

Vid normalt arbete har Thonny fem vyer, som används i en bestämd ordning. Programmet kan konfigureras med fler eller färre vyer.

Thonny är specifikt skapad för att lära sig programmering. När du lärt dig hur du ska göra, kan du använda vilken programmeringsmiljö som helst, som till exempel Eclipse CHE, Repl.it, Qt Creator osv. De flesta miljöerna fungerar på liknande sätt.

Thonny säger klart och tydligt ifrån när du gör de vanligaste felen, innan du hunnit bli desperat. Thonny föreslår också hur du brede ha gjort istället. Man behöver till exempel inte deklarera variabler i Python. Å andra sidan måste man ha parentes kring print-satser. Parentesfel är bland det vanligaste som finns, men som tur är, är Thonny din mjuka kudde i sammanhanget.

Thonny kan hämtas kostnadsfritt från Internet och fungerar med de flesta operativsystem.

Efter den försiktiga starten

Det går inte att ta det lugnt hur länge som helst, utan förr eller senare måste man ge sig in på språkets grammatik, syntaxen, och rätt och fel vid programmering. Boken följer i mesta möjliga mån branschstandard, eftersom det brukar leda till lättlästa, väl fungerade program som är lätta att felsöka. Du får lära dig att undvika vad man kallar spaghettiprogrammering (slarvigt och rörigt förfarande) och annat som garanterat kommer att bli nyttigt när du kommer ut i arbetslivet.

Grunden till allt är att kunna göra riktig dokumentering av programmet, flödesscheman mm liknande, särskilt om projektet utförs som grupparbete.

Till grunderna hör allmänna kunskaper om variabler, in- och utmatning och frågesatser, så programmet kan begära in information från användaren och skriva ut den.

Text, text, text, vår värld är full av text. Texthanteringen i Python är kraftfull och du får lära dig allt om strängar, textsträngar, numeriska strängar och hur de manipuleras och formateras för att ge snygga utskrifter.

Listor

Slingor är utmärkta när man vill använda och söka igenom listor och dictionaries och du får pröva på enkla och kapslade slingor.

Särskilda funktionsbibliotek för grafik (Matplotlib), symbolisk matematik och ekvationslösning (SymPy) utnyttjas så att du enkelt kan visa statistiska uppgifter i olika typer av diagram och låta datorn lösa ekvationer. Jo, det är enkelt. Det handlar bara om ett par programrader för att visa en kurva eller ett cirkeldiagram, till exempel.

Till avsnittet om statistik lär man sig också att hämta in statistiskt data i form av CSV-filer från Statistiska Centralbyrån och skriva egna filer och lagra resultatet i SQLite-databaser.

Med funktioner underlättas arbetet betydligt. Du behöver inte upprepa en uppgift som ska göras om och om igen, om den kan flyttas ut i en funktion och enkelt anropas och upprepas. Till det mera abstrakta hör klasserna, som gör ungefär det samma som funktionerna. Med många klasser tillsammans kan man beskriva ett avancerat system. Detta skulle man kunna lösa med en uppsättning vanliga funktioner, men klassen hjälper programmeraren att strukturera och kapsla in koden så att den som använder klasserna inte kan begå misstag som att oavsiktligt förändra klassens interna, privata variabler.

Sedan följer matematikdelen där du får tillämpa kunskaperna på ett antal övningsuppgifter.

Versionshantering

Med tiden kommer du att skriva så många program och skapa så många datafiler att du kommer att få svårt att hålla ordning på dem.

Versionshanteringssystem används för att på ett strukturerat sätt hålla ordning på dina filer och förändringarna i filerna över tid. Det går att se de individuella förändringarna genom filens historik och du kan även gå tillbaka till en tidigare version av filen. Du kan se versionshanteringssystemet som en tidsmaskin!

Det finns många olika versionshanteringssystem och de vanligaste är Git och Subversion. De fungerar i stort sett likadant. Du får lära dig båda.

Grafik

Alla vill göra datorgrafik. Som tur är behöver du inte skriva krångliga grafikrutiner själv utan kan använda det inbyggda grafikbiblioteket Matplotlib. Du behöver bara lämna ett antal startparametrar till Matplotlib så matas vackra diagram ut i både två och tre dimensioner.

En typisk matematisk uppgift är statistik, procentandelar och förhållanden. Med Python är det inga problem. Detta är ett exempel på hur man gör ett avancerat och snyggt cirkeldiagram som visar resultatet av ett riksdagsval. Du kan få utbrutna sektorer, du kan få skuggor, egna färger och förklarade texter.

Alltihop börjar med att programmet importerar biblioteket Matplotlib varefter man kan glömma den knepiga grafiken.

# Använd pyplot från matplotlib
import matplotlib.pyplot as plt

# Mätvärden - valresultatet
valresultat = [31.01, 23.33, 12.86,
               6.89, 6.11, 5.72,
               5.42, 4.57, 4.09]

# Beskrivning av mätvärdet - vilket parti som fick vad
parti = ['Socialdemokraterna', 'Moderaterna',
         'Sverigedemokraterna',
         'Miljöpartiet', 'Centerpartiet',
         'Vänsterpartiet', 'Folkpartiet',
         'Kristdemokraterna', 'Övriga']

# Skjut ut de partier som bildade regering och stödparti
markerad_del = [0.2, 0, 0,
                0.2, 0, 0.1,
                0, 0, 0]

# Färger till respektive tårtbit
färger = ['olivedrab', 'chartreuse', 'palegreen',
          'darkgreen', 'green', 'yellowgreen',
          'lime', 'lightgreen', 'aqua']

# Skapa cirkeldiagram
plt.pie(valresultat, labels=parti, autopct='%1.2f%%',
          shadow=True, startangle=90,
          explode=markerad_del,
          colors=färger)

# Justera proportionerna
plt.axis('equal')

# Beskriv diagrammet och de olika axlarna.
plt.title("Valresultatet riksdagsvalet 2014")

# Visa diagrammet
plt.show()

Totalt blir det inte fler än 18 programrader (exklusive förklarande kommentarsrader).

I praktiken

Bokens del 2, matematikdelen, följer Skolverkets läroplan för grundskolan i matematik och innehåller tillämpningar i algebra, geometri, sannolikhet mm.

Boken har provats i skolan och har visat sig fungera utmärkt.

Paraduppgifter – överkurs

Alltihop slutar med några extra avancerade paraduppgifter avsedda för den som har kommit väldigt långt.

Du får skriva program som får datorn att signalera och förstå morsekod, räkna ut huvudparametrarna för en bemannad färd till Mars, eller göra matematisk konst med Mandelbrots mängd.

Kundstöd

Räkna med Python är det första läromedlet med kundstöd.

För att både lärare och elever skall kunna utvecklas optimalt är det viktigt att läraren känner sig trygg med programmering. Om en klurig situation uppstår är det därför skönt att veta att du alltid kan nå Huvudrutin för att få hjälp och svar. Bara att bolla en frågeställning med en rutinerad programmerare brukar vara oerhört givande.

Kurser

Huvudrutin anordnar kurser i programmering kopplat till Räkna med Python. Kursen hålls i Sigtuna Folkhögskolas lokaler. Alternativt kan vi komma ut till er och hålla kurser anpassade efter just era behov.

Under kursen lär vi ut grunderna i pythonprogrammering, går igenom uppgifterna i Räkna med Python och ger bakomliggande kunskap för att ni skall känna er helt trygga med undervisningen.

Facit

Givetvis finns ett förklarande facit tillgängligt för den som köpt boken. Där finns lösningar på både program och körningar i terminalläget. Samtidigt påpekas att programlistningarna i boken inte är allenarådande. Det finns tusen sätt att lösa en programmeringsuppgift men en del av dem är riktigt bra. Bara de uppnår avsett resultat och inte är längre än vad som visas i facit, är det godkänt. Är din lösning kortare, är det bara att gratulera.

Allmänna data

Notera Python-tårtan med logotyp i marsipan.

Författare: Jörgen Städje
Medhjälpare: Cecilia Widell
Omfång: 383 sidor
ISBN: 978-91-639-8043-5
Ämne: Programmering i matematikämnet
Filosofi: Enkel till medelsvår programmering på svenska
Årskurser: Från årskurs 7
Programmeringsspråk: Python version 3.6 eller senare
Utvecklingsmiljö Windows XP-10: Thonny
Linux: Thonny
BSD: Thonny
Mac OS: Thonny
Chromebook: Cloud 9, Eclipse Che
På Internet: https://repl.it/
Skillnader mellan Thonny och andra miljöer nämns i kapitel 29.

Tillhörande programpaket: Du hittar länkar till alla behövliga, kostnadsfria programpaket på huvudrutin.se

Facit: Facit till övningsuppgifterna finns under fliken Räkna med Python på huvudrutin.se

Läs mer

Här kan du läsa en interimsversion av Räkna med Python: http://huvudrutin.se/index.php/rakna-med-python/

Huvudrutin tar inget ansvar för hur interimsversionen används. Istället bör den slutliga versionen anskaffas och användas i skolarbetet.

Pris, leverans mm, kontakta Huvudrutin AB: http://huvudrutin.se/index.php/priser/

Märken på artiklar:
Artikelkategorier:
Programmering · Utbildning

Lämna en kommentar

E-postadressen publiceras inte. Obligatoriska fält är märkta *