diff --git a/Kursgliederung.md b/Kursgliederung.md new file mode 100644 index 0000000..77734d8 --- /dev/null +++ b/Kursgliederung.md @@ -0,0 +1,154 @@ +# Programmieren mit Python: Kursgliederung + + +## Tag 1 (Montag) Vormittag (9:00 - 12:30 Uhr) + +### Vorstellung & Organisatorisches (15-20 min) + +* Vorstellung SoftEd, Trainer, Seminarbegleitung +* Ausblick auf die Seminarinhalte +* Vorstellungsrunde Teilnehmer, Präsens und Online +* Ablauf, Pausen, Mittagessen etc. + +### Einführung in die Programmiersprache Python (45-60 min) + +* Einführung in die Arbeitsumgebung für den Kurs +* Verwendung des Interpreters (Interactive Modus) + * Aufruf + * Interaktives Testen von Code + * Python als Taschenrechner + * Erweiterte interaktive Umgebungen (IPython, Jupyter) +* Genereller Aufbau eines Programms + * Hallo, Welt! + * Ein kurzes, aber komplettes Kommandozeilenprogramm + * Syntaxelemente von Python (Ausdrücke, Anweisungen, Operatoren, Trennzeichen, Einrückung usw.) +* Grundlegende Datentypen und Operationen + * Integer und mathematische Operatoren + * Fließkommazahlen (Floats) + * Strings +* Kontrollstrukturen und Vergleichsoperatoren + * Branching (Verzweigung): `if` / `elif` / `else` und `match` + * Loops (Schleifen): `for` und `while` + * Funktionen: `def` und `return` + +### Warum Python? (15 min) + +#### Was macht Python besonders und unterscheidet es von anderen Programmiersprachen? + +#### Anwendungsbereiche von Python + +* als "Skriptsprache" +* für Desktop- und Webanwendungen +* für Scientific Computing und Data Science +* für Machine Learning +* als Bindeglied zwischen Komponenten und Bibliotheken in anderen Sprachen +* Für Embedded Programming (MicroPython) + +## Kaffee/Teepause (20 min) + +### Erweiterte Grundlagen in Python + +#### Erweiterte Datentypen: Container (45 min) + +* Listen +* Tupel +* Dictionary +* Sets + +**Übungsaufgaben** + + +#### String-Operation und String-Formatierung und Ausgabe (45 min) + +* Escape-Sequenzen, Single-, Double- und Triple-Quotes und Klammerung +* Stringvergleiche und Testen auf Substrings +* Strings zusammenfügen, auftrennen und slicen +* Uppercase, Lowercase, Capitalization, Stripping, usw. +* String-Formatierung und Formatstrings + +**Übungsaufgaben** + + +## Mittagspause (12:30 - 13:30 Uhr) + +## Tag 1 (Montag) Nachmittag (13:30 Uhr - 17:00 Uhr) + +### Zugriff auf Dateisystem (Teil 1) (20 min) + +* Öffnen und Lesen von Dateien +* Ganzen Dateiinhalt einlesen +* Textdateien zeilenweise einlesen +* Textzeilen in Datenfelder zerlegen + +### Fehlerbehandlung in Python (45-60 min) + +* Was sind Exceptions? +* Abfangen von Fehlern +* Eigene Fehler erzeugen +* Eigene Exceptions definieren und benutzen + +**Übungsaufgaben** + +### Objektorientierung in Python (45-60 min) + +* Allgemeiner Einblick in die Objektstruktur in Python +* Definieren von Klassen +* Erzeugen von Objekten +* Vererbung +* Spezialmethoden von Objekten ("Dunder methods") + +### Kaffee-/Teepause (20 min) + +**Übungsaufgaben** + +### Tipps und Tricks im täglichen Umgang mit Python (10-20 min) + +### Zusammenfassung, Fragen, Lösungen usw. + + +## Tag 2 (Dienstag) Vormittag (9:00 - 12:30 Uhr) + +### Rekapitulierung der Inhalte vom Vortag und Fragen (20-30 min) + +### Module in Python (45-60 min) + +* Importieren, verwenden von Modulen +* Allgemeiner Umgang mit dem Packet Manager PIP +* Eigene Module definieren +* Module und Pakete (`Packages') +* Der Standardmodulsuchpfad (`sys.path`) +* Relative Importe + +## Kaffee-/Teepause (20 min) + +### Zugriff auf das Dateisystem (Teil 2) + +* Öffnen, Lesen und Schreiben von Dateien +* Text- und Binärdaten +* Text-Encodings +* Lesen und Schreiben von Daten im JSON Format +* Fehlerbehandlung und Context Manager (`with`-Statement) +* Dateiordner auflisten und durchsuchen + +**Übungsaufgaben** + +### Datenbankzugriff mit Sqlite3 + +**Übungsaufgaben** + + +## Mittagspause (12:30 - 13:30 Uhr) + + +## Tag 2 (Dienstag) Nachmittag (13:30 Uhr - 17:00 Uhr) + +### Entwicklung eines HTML-Crawlers (60-90 min) + +## Kaffee-/Teepause (20 min) + +### Zusammenfassung, Fragen, Lösungen usw. (30 min) + +### Best Practices (30 min) + +* Code Style +* Verwendung von Dekoratoren (falls Zeit) diff --git a/Kursgliederung.pdf b/Kursgliederung.pdf new file mode 100644 index 0000000..c9b66d6 Binary files /dev/null and b/Kursgliederung.pdf differ diff --git a/Seminarinhalt.md b/Seminarinhalt.md new file mode 100644 index 0000000..7715aac --- /dev/null +++ b/Seminarinhalt.md @@ -0,0 +1,53 @@ +# Programmieren mit Python: Seminarinhalt + +## Einführung in die Programmiersprache Python + +* Verwendung des Interpreters (Interactive Modus) +* Genereller Aufbau eines Programms +* Grundlegende Datentypen und Operationen +* Kontrollstrukturen + +## Erweiterte Grundlagen in Python + +* Erweiterte Datentypen: Listen, Tupel, Dictionary, Set +* String Formatierung + +## Funktionen in Python + +* Definition und Aufruf von Funktionen +* Generatoren +* Rekursion + +## Objektorientierung in Python + +* Allgemeiner Einblick in die Objektstruktur in Python +* Definieren von Klassen +* Erzeugen von Objekten +* Vererbung + +## Fehlerbehandlung in Python + +* Abfangen von Fehlern +* Eigene Fehler erzeugen + +## Module in Python + +* Importieren, Verwenden von Modulen +* Allgemeiner Umgang mit dem Packet Manager PIP + +## Zugriff auf das Dateisystem + +* Lesen und Schreiben von Daten im JSON Format + +## Datenbankzugriff mit Sqlite3 + +## Entwicklung eines HTML-Crawlers + +## Best Practices + +* Code Style +* Verwendung von Dekoratoren + + + + diff --git a/Seminarinhalt.pdf b/Seminarinhalt.pdf new file mode 100644 index 0000000..9e68b44 Binary files /dev/null and b/Seminarinhalt.pdf differ diff --git a/makepdf.sh b/makepdf.sh new file mode 100755 index 0000000..755f0c2 --- /dev/null +++ b/makepdf.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +for md in *.md; do + if [[ "$md" = "README.md" ]]; then + continue + fi + pandoc --from=gfm --to=pdf -o "${md%.*}.pdf" "$md" +done