Programmierung Grundlagen (13. und 14.1.2021)¶
Überblick¶
Dieses Dokument ist unser Leitfaden; Kommentare und ausgehende Links werden hier platziert.
Themenreihenfolge und Übungen werden aus dem Herdt-Skriptum “Programmierung Grundlagen mit Beispielen in Python” übernommen.
Das Herdt Skriptum ist etwas zu allgemein gehalten (geht auf Programmiersprachen im Allgemeinen ein, und ist dadurch verwirrend), weswegen in einigen Fällen Ausnahmen gemacht werden.
Die Kurssprache ist Python; viele der Python-spezifische Elemente werden von hier unterrichtet.
Live-Hackereien des Trainers erfolgen in einem gleichermaßen strukturierten Dokument, einem sogenannten Jupyter Notebook.
Live-Hacking (Jupyter Notebook)¶
Struktur¶
Herdt Kapitel 6: Grundlegende Sprachelemente¶
OpenTraining Topics |
Herdt Kapitel |
Kommentar |
---|---|---|
6.1 Syntax und Semantik |
Herdt zu allgemein/verwirrend |
|
6.2 Grundlegende Elemente einer Sprache |
Herdt zu allgemein/verwirrend |
|
|
|
|
6.5 Variablen und Konstanten |
Konstanten gibts nicht in Python, nur immutable Typen. Siehe dazu das Kapitel nach “8.1 Warum werden Datenstrukturen benötigt?” |
|
6.6 Operatoren |
Bereits bei den Datentypen angeschnitten. Hier als Vertiefung nocheinmal. |
|
6.7 Ausdrücke und Operatorrangfolgen |
Bereits bei den Datentypen angeschnitten. Hier als Vertiefung nocheinmal. |
|
6.8 Übungen |
|
Herdt Kapitel 7: Kontrollstrukturen¶
Verzweigung¶
Das gesamte Kapitel im Herdt Skriptum ist etwas sperrig gehalten. Meins ist nicht etwa besser, sondern nützt einfach den Effekt aus, dass menschliche Sprache leicht in Python abzubilden ist :-)
Also: aus meinem Skriptum The if Statement, und die Übungen von Herdt. Siehe dazu die folgende Tabelle.
OpenTraining Topics |
Herdt Kapitel |
Kommentar |
---|---|---|
7.1 Anweisungen und Folgen |
|
|
7.2 Bedingungen und Kontrollstrukturen |
|
|
7.3 Grundlagen zu Verzweigungen |
Bullshit |
|
7.4 Bedingte Anweisung |
Sperrige Formulierungen bei Herdt |
|
7.5 Verzweigung |
Sperrige Formulierungen bei Herdt |
|
7.6 Geschachtelte Verzweigung |
Sperrige Formulierungen bei Herdt |
|
7.7 Mehrfache Verzweigung (Fallauswahl) |
Sperrige Formulierungen bei Herdt |
|
7.15 Übungen |
|
Schleifen¶
Da die Schleifenkonstrukte über verschiedenene Sprachen hinweg sehr unterschiedlich sind, lassen wir hier das Herdt-Skriptum weitgehend ausser Acht. Es ist zu allgemein gehalten, um bei unserem Vehikel Python hilfreich zu sein.
OpenTraining Topics |
Herdt Kapitel |
Kommentar |
---|---|---|
7.8 Schleifen |
|
|
7.9 Zählergesteuerte Schleifen (Iteration) |
Auslassen |
|
7.10 Kopfgesteuerte bedingte Schleife |
Meins gewinnt |
|
7.15 Übungen - Übung 4: Gerade Zahlen in der Konsole anzeigen - Exercise: Primeness (while) |
||
7.11 Fußgesteuerte bedingte Schleife |
Auslassen (gibts nicht in Python) |
|
(jf) Sequential Datatypes |
Als Voraussetzung für |
|
|
||
7.12 Schnellübersicht |
Auslassen |
|
7.13 Sprunganweisungen |
Auslassen |
|
7.14 Endlosschleifen |
Auslassen |
Herdt Kapitel 8: Elementare Datenstrukturen¶
OpenTraining Topics |
Herdt Kapitel |
Kommentar |
---|---|---|
8.1 Warum werden Datenstrukturen benötigt? |
Naja mal reinschauen, eher mager |
|
Compound Datatypes: Überblick |
||
Als Ersatz für das ausgelassene Kapitel “6.5 Variablen und Konstanten” |
||
8.2 Arrays |
Auslassen (Java) |
|
8.3 Eindimensionale Arrays |
Auslassen (Java) |
|
8.4 Records |
Auslassen: siehe 8.7 Dictionaries, gefolgt von |
|
|
8.5 Zeichenketten |
Vielleicht eine kurze Livehacking Session f-Strings |
8.6 Tupel und Listen |
Meins |
|
8.7 Dictionaries |
Meins |
|
(jf) Records in Python |
Jupyter notebook: Records von oben mit Dictionaries
|
|
8.8 Mengen |
Meins |
|
8.9 Besondere Datenstrukturen anhand von Stapel (Stack) und Schlangen (Queue) |
Wenns passt vom Tempo, schauma da rein. Vielleicht fallt eine gscheite Übung ab. |
|
8.10 Übungen |
Gemeinsam drüber schauen
|
Herdt Kapitel 9: Methoden, Prozeduren und Funktionen¶
Diese Abteilung wurde hauptsächlich im Jupyter Notebook bestritten.
OpenTraining Topics |
Herdt Kapitel |
Kommentar |
---|---|---|
Funktionen und Scope |
||
Übungen
|
||
9.1 Unterprogramme |
Auslassen |
|
9.2 Parameterübergabe |
Auslassen |
|
9.3 Parameterübergabe als Wert |
Auslassen |
|
9.4 Parameterübergabe über Referenzen |
Auslassen |
|
9.5 Rückgabewerte von Funktionen oder Methoden |
Auslassen |
|
9.6 Innere Funktionen - Closures |
Auslassen |
|
9.7 Standardbibliotheken und Built-in-Funktionalitäten |
Auslassen |
|
9.8 Übungen |
U.U. nimmt man die Übungen aus |
Links¶
Corey Schaefer’s Youtube Channel
Corey Schaefer ist ein Python Trainer/Hacker, der eine schier unendliche Anzahl von sehr guten Tutorials (im Live-Hacking Stil) im Repertoire hat, eines besser als das andere. Hier eine Auswahl.
Raymond Hettinger hat den Satz geprägt, “There must be a better way!”
Hettinger ist ein Python Core Developer, und gibt von Zeit zu Zeit Talks auf Konferenzen. Hier der Talk mit dem Satz; definitiv sehenswert, wenn man weiter in Python rein will.
David Beazley, definitiv nichts für Anfänger, aber dafür hochinteressant und lustig.
Hier ein typisches Video von ihm: