Atle Winther
Blog
Python i undervisningen
Programmeringssproget Python er i virkeligheden lidt af en julehistorie, om et hobbyprojekt, som blev til et af verdens mest benyttede programmeringssprog. Og som tilmed egner sig fantastisk som undervisningsværktøj i folkeskolen.
Python - en julehistorie
Programmeringssproget Python er lidt af et stykke julehilstorie, som kan fejre sit 30 års jubilæum i år. I december 1989, påbegyndte hollænderen Guido van Rossum nemlig sit hobby-projekt, der skulle holde ham beskæftiget hen over juleferien. Projektet kaldte han Python(*1).
I dag er “hobby-projektet”, Python, stille og roligt gået hen og blevet til et af de mest benyttede programmeringssprog på verdensplan(*2). Og jeg så gerne at det med tid blev en standard I folkeskolen.
Behovet for Python
Jeg vil kort nævne nogle få grene og enkelte eksempler af på faglige retninger, der har behov for Python som programmeringssprog.
- Indsamling af statistik, som bruges af alle slags aktører lige fra Regeringer til fodboldklubber.
- Humanistiske fag til fx sprolige analyser.
- Finanssektorens forudsigelser af morgendagens aktiemarked og kurser.
- Medicinalindsutriens indsamling af rådata fra laboratorierne, hvor machine learning har gjort det endnu hurtigere at analysere metoderne.
- Sundhedssektoren som bl.a. benytter Python til analyse af data via neuro imaging fra MR/PET-scanninger.
- Efterretningstjenesters brug af genkendelser af objekter ved overvågning.
- Indsamling af data fra rummet.
Et praksisnært eksempel på sidstnævnte er NASA, som flittigt deler ud af deres Python-projekter (*3).
Fællesskabet:
Og for nu at blive lidt oppe I højderne har ESA lavet en række forskellige opgaver til børn og unge, hvor Python bl.a. bliver benyttet i materialerne. ESA’s ressourcer er ekseptionelt godt håndværk. Se eventuelt nærmere på deres undervisningsside, Teach with space(*4).
Her ligger fællesskabet altså gemt: Python bruges som et meget seriøst programmeringssprog af organisationer, myndigheder og virksomheder, som i mange tilfælde, åbent, deler ud af deres viden til grundskoler. Og så er Python desuden Open Soruce og helt gratis at bruge i enhver sammenhæng. Samtidig er det heller ikke et programmeringssprog, som lukker sig om bestemte operativ-systemer. Det kører på alle platforme.
Scratch og de andre
Jeg er ingenlunde nogen “fan-boy” af Python. Der findes mange andre programmeringssprog, som kan enormt spændende ting, og som er nyttige at mestre, hvis man ønsker en karriere inden for tech.
Et program som Scratch er også ideelt til at opnå indsigt i principperne som ligger bag programmering og derved give en basal forståelse. Men Scratch har også sine begrænsninger. Her vil jeg pege på, at det er et lukket program som mere eller mindre kun udvikles af MIT, som giver dig nogle blokke til rådighed. Derimod bliver Python hele tiden beriget med nye og spændende “biblioteker”(moduler) som andre laver(fx eksemplet om NASA). På et tidspunkt er alle blokke I Scratch blevet så endevendt, at det er min antagelse, at det kan være svært at opretholde motivationen hos nogle elever. Og disse elever skal I hvert fald have et alternativ.
At skrive og læse koder
Grunden til at jeg nævner Python, skyldes således to parametrer. Det mangfoldige fællesskab og viljen fra organisationer, virksomheder og myndigheder rundt omkring i verden, til at hjælpe grundskoler med undervisningsmateriale samt at ville lægge projekter offentligt ud, så man kan se, hvordan en kode er blevet til.
Det andet parameter er Pythons syntaks. Ser man på mange andre af de mest benyttede programmeringssprog er de fyldt med symboler, og det er i mange henseender slet ikke godt, at begynde med. Dels fordi det tager for lang tid inden man overhovedet har skrevet sin kode færdig, dels fordi det er et problem at læse og forstå koder, hvor der indgår symboler. Elever med læsevanskeligheder kan få problemer med syntaksen, hvis man vælger et programmeringssprog der fx har tuborg-klammer({ }) og andet fyld med. Det peger forskningen i hvert fald på.
Jeg vil her konkretisere nogle eksempler på de programmeringsprog jeg har indtryk af er de mest populære blandt børn og unge, hvorfor jeg skriver “God Jul!” I JAVA, C#, JavaScript og Python.
Java:
class GodJul
{
public static void main(String args[])
{
System.out.println("God Jul!");
}
}
C#
public class GodJul
{
public static void Main()
{
System.Console.WriteLine(“God Jul!”);
}
}
JavaScript:
<script> alert( 'God Jul!' ); </script>
Python:
print(“God Jul!!”)
Foruden at vi I de første eksempler skal forholde os til symbolerne, vi skal åbne og lukke korrekt, vil vi vel også gerne vide hvad eksempelvis println, void og hvorfor man skriver public. Det skaber i sidste ende alt for meget frustration I klasseværelset.
Kort og godt er Python både nemt at skrive og let at læse. Den korte syntaks, uden symboler, minder mest af alt om den syntaks vi kender fra vores almindelige eget sprog.
Det Forsømte Forår
Og så er det muligt at lave nogle virkelig spændende projekter ret hurtigt. Jeg er ingen fortaler for, at teknologi skal erstatte bøgerne, men det kan give nogle andre nuancer til et fag, hvis det inddrages, når det faglige er på plads. Det kan også være nogle simpelthen lærer bedre af at kode - sådan havde jeg det selv, da jeg for mange år siden gik i folkeskolen og lavede mine egne hjemmesider til Fysisk/Kemi-undervisningen og min egen lommeregner i C++.
Sprog: Inden for de sproglige fag, er Python også et fantastisk værktøj. Fordi de humanistiske fag ofte overses, vil jeg I nedenstående eksempel eksemplificere hvordan Python kan benyttes med et forsigt eksempel på en analyse over antal af tegn fra et uddrag af Hans Scherfigs, Det Forsømte Forår.
tekst = """Man naar ogsaa at dø engang, og det er Synd,
hvis man saa har forsømt at leve."""
print("Teksten:")
print(tekst)
print("Tekstens længde:")
print(len(tekst))
print("Antal gange 'forsømt' indgår:")
print(tekst.count("forsømt"))
I ovenstående eksempel printer vi først teksten. I næste eksempel ser vi på hvor mange antal tegn(inkl mellemrum), som findes I teksten. Og til sidst tæller vi hvor mange gange ordet “forsømt” indgår I teksten.
Billedet viser, hvordan vi kan analysere et uddrag fra teksten.
Matematik: Blandt andet kan Python hurtigt udregne tal for os. Og turtle grafik(*5) kan bruges I matematik-undervisningen, når vi skal opnå forståelse for eksempelvis vinkler og grader, samtidig med, at vi kan være kreative og skabe levende figurer.
Eksempel på et program, som klassen selv har kodet i Python, som udregner polygoner.
Når det kommer til de sproglige fag, kan man desuden bruge Python til at lave sine egne spil, hvor man fx udformer et tekstbaseret spil, hvor man eksempelvis skal udføre en opgave og slippe helskindet igennem et eventyr. Det tillader bestemt en at være kreativ.
I øvrigt findes der en en række gode eksempler på koder i Python til Microbit(*6) og for nylig så jeg også en grundig indføring i hvordan man vha Python kan programmere Fable(*7).
Vi begynder helt klar at se tendenser til, at Python får større indpas i undervisningen.
Hvordan kommer man I gang?
Python kan man downloade fra python.org
Er du I øvrigt så uheldig, at du arbejder på en skole, hvor man ikke har administrationsrettigheder over computeren, og derfor ikke kan downloade andet end programmer fra dem, kommunen har lavet aftaler med, findes der alternativer online. Fx https://repl.it/languages/python3
Der findes desuden en række forskellige materialer, som kan sætte en I gang med at få en relativ hurtig forståelse af Python. Og herfra kan man jo altid bygge på. Gode bøger at starte med er Python for Kids(*8) og Teach Your Kids to Code(*9). Bøger man sagtens kan bruge I klasseværelset.
print("God jul og godt nytår!")
1: Python.org : https://www.python.org/doc/essays/foreword/
2: Business Insider: https://www.businessinsider.com/most-popular-programming-languages-github-2019-11?r=US&IR=T
3: https://www.python.org/doc/essays/foreword/
4: https://www.esa.int/Education/Teachers_Corner/Teach_with_space3
5: https://en.wikipedia.org/wiki/Turtle_graphics
6: https://python.microbit.org/v/2.0 samt https://microbit-micropython.readthedocs.io/en/latest/tutorials/speech.html
7: David Johan Christensens materiale: https://edu.workbencheducation.com/cwists/preview/44770x
8: Python for Kids(2013): Briggs, Jason No Starch Press. ISBN-10: 1-59327-407-6
9: Teach Your Kids to Code(2015): Payne, Bruson. No Starch Press. ISBN-10: 1-59327-614-1