Python er for tiden det mest populære og anvendte sprog i verdenen (se bare stats fra tiobe index og red monk). Det er relativt hurtigt og har et kæmpe økosystem (100.000+) pakker, som gør os i stand til at lave stort set alt med sproget på relativt kort tid. Nærværende github repository, beskriver et kursus/forløb i Python.
Vi forudsætter, at du allerede har et vist kendskab til programmering, som du får i eksempelvis i forløbet om “Introduktion til programmering i P5.js”.
Det er af afgørende betydning, at du laver de nødvendige øvelser undervejs. At lære at programmere er lidt som at bygge et hus. Kun hvis væggene er solide og sikre kan du begynde at sætte taget på. Øvelserne skal med andre ord hjælpe dig med at sikre, at du har godt nok styr på det fundamentale. God arbejdslyst.
Mvh. Peter Sterner og Henrik Sterner
Vi bruger uddrag af følgende to gratis og opensource bøger af af Jake Vanderplas:
Bogen er gratis, og rummer en række kapitler i jupyter-formatet, som gør det muligt at kombinere tekst og kode. Derudover vil der være uddrag fra andre bøger og internet ressourcer.
Kurset forudsætter at du kan afvikle Python og tilhørende pakker enten i skyen eller på din egen computer. Du kan nemt og bekvemt skrive, afvikle og sågar dele Python i skyen ved brug af:
Foretrækker du at kode lokalt anbefales VS Code og Anaconda:
Vi bruger Python 3.8 eller nyere.
Herunder en tentativ plan for undervisningen, der opdateres undervejs. Øvelser refererer til numre i øvelsesdokumentet:
Lav øvelserne i den rækkefølge som de står. Lav så mange som overhovedet muligt. Den eneste måde at blive god til faget er ved at øve sig regelmæssigt og så meget som overhovedet muligt. Træning gør mester! Gå ikke videre før du har styr på det fundamentale. Øvelser med fed skrift skal afleveres i Lectio.
Modul Nr | Kapitel | Indhold | Øvelser |
---|---|---|---|
1 | PY: 1,2,3 | Intro til python, Colab og evt jupyter | Installere og afprøve software |
2 | PY: 4 og 5 | Variabler og operatorer | ØP2 alle opgaver,1-3,ØP:4-6 |
3 | PY: 6 og 7 | Indbyggede typer og datastrukturer | ØP:7-11,12-14 |
4 | PY: 8 og 11 | Løkker og betinget udførsel | ØP:21-25,26-27 |
5 | PY: 9 | Funktioner | ØP:33 |
6 | Øvelse | WebApps og GUIs | ØP:41-42 |
7 | PY: 10 | Undtagelser | ØP:32 |
8 | PY: 11-12 | Operationer på lister | ØP:34-35, 28 |
9 | PY: 14 | Moduler og pakker | ØP:37 |
10 | PY: 15 | Strenge og lidt om regulære udtryk | ØP:36, 29, 30 |
11 | Noter | Objektorienteret programmering og principperne bag | ØP:38, 39, 40 |
12 | PY11, AdvPy:5 | Videregående Python: Zip funktionen | ØP:49 |
13 | PY11, AdvPy:4 | Videregående Python: Lambda udtryk | ØP:50 |
14 | PY11, AdvPy:4 | Videregående Python: filter funktion | ØP:53 |
15 | PY11, AdvPy:4 | Videregående Python: map funktion | ØP:52 |
16 | PY11, AdvPy:4 | Videregående Python: reduce funktion | ØP:54 |
17 | PY11, AdvPy:6 | Videregående Python: Decorators | |
18 | PY11, AdvPy:10-11 | Videregående Python: Tests, docTests, UnitTests, PyTests | |
19 | PY11, AdvPy:12-13 | Videregående Python: Regulære udtryk | |
20 | PY11, AdvPy:12-13 | Videregående Python: Tråde og parallellisering | 51 |