-
Notifications
You must be signed in to change notification settings - Fork 1
/
Gedanken
96 lines (80 loc) · 3.33 KB
/
Gedanken
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Evtl. TODO
----------
- Bei der Seite mit den Kommentaren, die Triplequotes in einen Codeblock bewegen, anstatt HTML Code-tags zu verwenden,
da mit Code-tags die Triple quotes zu den typischen LaTeX quotes werden und beim kopieren für Python Syntax ungültig sind.
Ziel
----
Python Kurz-Einführung, so dass die Programme im Skript und alle anderen Beispiel-Programme komplett verstanden werden können.
Beispiele sollen - wenn einfach möglich - direkt in der Einführung ausprobiert werden können.
Intensives Durcharbeiten soll in 1-2 Stunden möglich sein.
Form
----
Jupyter-Book (https://jupyterbook.org/en/stable/intro.html)
Beispiel: https://gramschs.github.io/book_matlab/intro.html
Sprache: Deutsch (Begründung: 2. Semester, geringere Hürde für Studierende, Skript ist Deutsch)
- Jedoch im Code - sofern überhaupt zutreffenend - nur englische Fachterminologie (Bsp.: Stack statt Stapel)
Offene Punkte:
Gibt es einen Weg ohne Software-Installation (trotzdem einfache Beispiele ausprobieren)?
- Wie sieht es mit der in https://www.w3schools.com/python/ eingebetteten Umgebung aus? Rechtliches?
Alles im Interpreter im interaktiven Modus?
OER - Rahmenbedingungen, was ist zu beachten? Prof. Gramsch ansprechen
- https://www.hessenhub.de/oer-material/checkliste-oer/
Inhalte
-------
Wenige Zeilen Motivation für Python
- Ausführbarer Pseudocode (Siehe auch Kapitel 4.2 im Skript)
- Viele Bibliotheken
- Sprache für schnelles Prototyping, KI
Wie nutzen wir Python?
- "Not very pythonic" - Code soll gut lesbar sein, ohne tief in spezielle Python-Syntax einzutauchen
- Listen und Operationen verbergen fast alles für AlgDat Relevante (z.B. sort)
Python Einführung - benötigte Konstrukte zum Verständnis der AlgDat-Programme
- Kommentare im Code - eventuell auch implizit mit print()?
- Ausgabe (Eingabe vermutlich nicht benötigt)
- Datentypen ("dynamic typing" erwähnen)
- Zahlen
- Grundrechenarten (auch //, % und **)
- Wenige math. Funktionen: sqrt, log (und hier auch import erläutern)
- (random) - ist nicht "Basic"
- Variablen
- Zuweisung
- a = b
- a,b = b,a ("parallele" mehrfach-Zuweisung, hier: swap)
- Vergleichsoperatoren
- Logische Verknüpfungen and, or, not
- Verzweigungen: if
(An der Stelle Indentation erklären)
- Schleifen: while
- range
- Schleifen:
- for (range)
- Datentypen:
- Strings
- Listen
- Definieren, initialisieren
- len
- slicing ([a:b], [a:], [:b])
- append
- Schleifen:
- for (element in Liste)
- Funktionen und return
- Rekursion
- Noch unklar wo erwähnt werden soll, dass es Python an sich keine Main Funktion gibt
Offen: Gibt es große Probleme bei Beginn mit Python mit
- range
- Listen
Doch eher am Anfang behandeln - vermutlich nicht
Offen: Klassen (erst mal) weglassen, auch wenn für Bäume benötigt
Beispiele
---------
Rahmenbedingungen
- mit Lösungen (erst versteckt, dann aufklappen)
- Alle interaktiv im Interpreter, falls einfach möglich, im Dokument wäre schön
- Es ist auch möglich, eine Umgebung für die Beispiele zu verlinken wie https://www.programiz.com/python-programming/online-compiler/
- Dazu müssen Rechte geklärt werden
- Mögliche Alternative falls genannter Online Interpreter nicht verwendet werden kann https://www.pythonanywhere.com/
Und jetzt die Beispiele
- Hello World
- Python als Taschenrechner (mit beliebiger Genauigkeit)
- print(a-((a//b)*b+a%b))
- ...