# 📚 Didaktischer Lehrplan: Das 3-Säulen-System Dieses Dokument dient als didaktischer Leitfaden für die Python-Nachhilfe. Es gleicht die gesamte Übungsreihe (Grundlagen & Fortgeschrittene Objektorientierung) mit dem offiziellen Lehrplan und Skriptum des Lehrers (**`rradlbauer/python_skriptum`**) ab. --- ## 🧭 Die 3 Lehrpfade im Überblick ``` [ 🛣️ LEHRPFAD 1: GRUNDLAGEN DER PROGRAMMIERUNG (Prozedural & Datenstrukturen) ] ├── G01: Python als Taschenrechner (Zahlen, Operatoren, Rangfolge) (Lehrer 02.1) ├── G02: Variablen & Datentypen (int, float, str, bool, Type Casting) (Lehrer 03.0 & 03.1) ├── G03: Interaktive Ein- & Ausgabe (input, print, formatierte f-Strings) (Lehrer 07.0) ├── G04: Bedingungen & Verzweigungen (if, elif, else, and/or/not) (Lehrer 08.0) ├── G05: Schleifen & Wiederholungen (for range, while, break, continue) (Lehrer 09.1 & 09.2) ├── G06: Eigene Funktionen & Module (def, return, scope, math, random) (Lehrer 05.0 & 05.1) ├── G07: Listen & Sequenzen (Indexing, Slicing, append/pop, sum/len/min) (Lehrer 09.0) ├── G08: Textverarbeitung & Strings (.strip, .replace, .split, .join) (Lehrer 11.0) ├── G09: Dictionaries & Sets ({key: value}, .get(), Mengen ohne Duplikate) (Lehrer 15.0) └── G10: Comprehensions, Datum & Algorithmen ([x for x in ...], datetime) (Lehrer 13.0 & 15.1) [ 🛣️ LEHRPFAD 2: EINSTIEG IN DIE OBJEKTORIENTIERUNG (OOP) & WERKZEUGE ] ├── 00: Fehlersuche & Python-Debugging (Warm-up & Tracebacks) (Lehrer 04.1 & 07.1) ├── 01: Erste Klasse & Baupläne (Instanziierung, Punktnotation) (Lehrer 22.0 & 21.0) ├── 02: Konstruktor __init__, self & UML-Klassendiagramme (Lehrer 22.0 & 22.1) ├── 03: Methoden & Objekt-Interaktionen (Rennauto & Duell) (Lehrer 22.0) ├── 04: Schöne Textausgabe mit __str__ (Warenkorb & Bon) (Lehrer 28.0) ├── 04b: Exkurs: Umstieg & Installation von VS Code (Lehrer 20.1) ├── 04c: Exkurs: Git & Versionskontrolle (VS Code & Terminal) (Tooling) ├── 05: Assoziation & Komposition (Spotify Playlist-Manager) (Lehrer 23.0) └── 06: Mini-Abschlussprojekt: Tamagotchi Terminal-Game (Konsolidierung) [ 🛣️ LEHRPFAD 3: FORTGESCHRITTENES OOP, SOFTWAREQUALITÄT & GUIS ] ├── 07: Referenzen, RAM-Speicher & Familienstammbäume (Lehrer 24.0) ├── 08: Operator Overloading & Dunder-Methoden (__add__, __eq__, __lt__) (Lehrer 28.0) ├── 09: Eigene Unit Tests schreiben & TDD (unittest.TestCase) (Testing & TDD) ├── 10: Vererbung (Inheritance) & super() (Fahrzeugflotte) (Lehrer 25.0) ├── 11: Polymorphie & Interfaces (ABC, Geometrie & Zeichenfläche) (Lehrer 25.1) ├── 12: Exceptions & Robuste Fehlerbehandlung (try-except, Bankkonto) (Lehrer 26.0) ├── 13: Datei-Persistenz: JSON & CSV Speichern (Savegames) (Lehrer 14.0) ├── 14: Desktop-GUIs mit Tkinter & MVC-Architektur (Zähler & Rechner) (Lehrer 27.0) ├── 15: Parameter (*args, **kwargs) & Eigene Container (Gaming-Inventar) (Lehrer 29.0 & 30.0) └── 16: Master-Abschlussprojekt: Professionelle Desktop-App (PetCare) (Meisterstück & MVC) [ 🛣️ LEHRPFAD 4: PROFESSIONAL DATA ENGINEERING & WEB-APIS ] ├── 17: Reguläre Ausdrücke & Text-Mining (re, Muster, Quantifizierer, Gruppen) (Text & Data Mining) ├── 18: Funktionale Programmierung (lambda, zip, enumerate, map/filter, sort) (Pythonic Code) ├── 19: Generatoren, Iteratoren & itertools (yield, Lazy Evaluation, Streams) (Memory Efficiency) ├── 20: Dataclasses, Type Hints & Decorators (@dataclass, typing, Wrappers) (Moderne Architektur) ├── 21: Relationale Datenbanken & SQLite (CRUD, sqlite3, SQL-Injection Schutz) (SQL & Persistenz) └── 22: Web-APIs, REST & JSON-Feeds (REST, JSON-Parsing, Statuscodes, Fehlerbehandlung) (Web & Daten) ``` --- ## 📑 Detaillierte Themen-Abgleichstabelle | Modul | Titel | Thema | Praxisbeispiel | | :--- | :--- | :--- | :--- | | **G01** | **Taschenrechner** | Grundrechenarten, `//`, `%`, `**`, Rangfolge | Rechner-Funktionen & Kreisflächen | | **G02** | **Variablen & Typen** | Basisdatentypen, Type Casting, Type Hints | Typen-Erkenner & Preis-Formatierer | | **G03** | **Ein- & Ausgabe** | `input()`, f-Strings mit Formatierungs-Codes | Steckbrief & Rechnungsposten | | **G04** | **Verzweigungen** | `if`, `elif`, `else`, `and`, `or`, `not` | Kinokarten, Notenspiegel & Schaltjahr | | **G05** | **Schleifen** | `for in range()`, `while`, `break`, `continue` | Fakultät, Primzahlen & Quersummen | | **G06** | **Funktionen** | `def`, `return`, Scope, `math`, `random` | Hypotenuse, Zylindervolumen & Würfel | | **G07** | **Listen & Slicing**| Indexing, Slicing `[1:4]`, Methoden wie `append`/`pop` | Notenschnitt ohne Ausreißer | | **G08** | **Textverarbeitung**| String-Methoden (`.strip`, `.split`, `.replace`) | Palindrom-Prüfer & Kreditkarten-Maske | | **G09** | **Dicts & Sets** | Key-Value Paare, `.get()`, Mengen ohne Duplikate | Häufigkeitszähler & Hobbys-Abgleich | | **G10** | **Comprehensions** | `[x for x in ...]`, `datetime`, Sortier-Algorithmen | Countdown, Alters-Suche | | **00** | **Fehlersuche** | Tracebacks von unten lesen, `IndentationError` | Code-Detektivin | | **01** | **Erste Klasse** | Klassen als Baupläne, Punktnotation, Type Hints | Fahrrad-Verleih | | **02** | **Konstruktor** | `__init__`, `self`, Startwerte, UML-Diagramme | Bankkonto & Smartphone | | **03** | **Methoden** | Verhalten & Interaktion zweier Objekte | Rennauto-Duell | | **04** | **`__str__`** | Lesbare Darstellung mit `print()`, Rechnungsdruck | Pizzeria-Warenkorb | | **04b** | **VS Code** | Installation, Extensions (Error Lens, Python), Shortcuts | IDE-Praxis | | **04c** | **Git** | Spielstand-Analogie, Commits, VS Code Git-Tab, Push | Versionskontrolle | | **05** | **Komposition** | 1:1 und 1:n Beziehungen zwischen Objekten | Spotify Playlist-Manager | | **06** | **Mini-Projekt**| Konsolidierung von OOP Teil 1 | Tamagotchi Konsolenspiel | | **07** | **Referenzen** | RAM-Zeiger, Aliasing (`b = a`), `is` vs. `==` | Familienstammbaum (`Person`) | | **08** | **Dunder** | Operator Overloading `__add__`, `__eq__`, `__len__` | 2D-Vektor & Wegstrecken | | **09** | **Unit Testing**| Eigene Testsuiten schreiben, `assertEqual`, TDD | Taschenrechner & Bankkonto Tests | | **10** | **Vererbung** | Basis- und Kindklassen, `super().__init__()`, DRY | Fahrzeugflotte (`ElektroAuto`, `Lkw`) | | **11** | **Polymorphie** | Duck Typing, abstrakte Klassen (`ABC`), Overriding | Geometrie-Engine & Zeichenfläche | | **12** | **Exceptions** | `try-except-else-finally`, `raise`, eigene Fehler | Bankkonto- & Geldautomat-Simulator | | **13** | **Persistenz** | `with open()`, `json.dump`/`load`, CSV-Export | Savegames & Notenbuch | | **14** | **Tkinter GUI** | Echte Desktop-Apps, Widgets, `grid()`, MVC-Muster | Interaktive Zähler- & Rechner-App | | **15** | **Parameter & Container** | `*args`, `**kwargs`, Unpacking & Container-Dunder (`__getitem__`, `__setitem__`, `__delitem__`, `__contains__`, `__iter__`) | Gaming-Rucksack & Inventar | | **16** | **Master-Abschlussprojekt** | Vollständiges Desktop-Meisterstück: MVC-Architektur, Vererbung & Polymorphie, JSON-Savegames, CSV-Export, Exceptions & Tkinter-GUI | PetCare- & Tierheim-Manager Pro | | **17** | **Reguläre Ausdrücke (re)** | Metazeichen (`\d`, `\w`, `\s`), Quantifizierer, Gruppen, `re.search`, `re.findall`, `re.sub` | E-Mail-Check, Telefon-Finder & IBAN-Maskierung | | **18** | **Funktionale Programmierung** | `enumerate()`, `zip()`, `lambda`, `map()`, `filter()`, `sorted(..., key=...)`, `all()`, `any()` | Fließband-Datenpipeline, Kataloge & Alterssortierung | | **19** | **Generatoren & itertools** | `yield`, Lazy Evaluation, `iter()`, `next()`, `itertools` (`chain`, `cycle`, `permutations`) | Riesige Datenströme & Speicher-Benchmarks | | **20** | **Dataclasses & Type Hints** | `@dataclass`, `field(default_factory=...)`, Eigene Decorators, `Union`, `Callable` | Online-Shop-Architektur & Funktions-Tracker | | **21** | **Datenbanken & SQLite** | `sqlite3`, Tabellen, CRUD, Parametrisierte Abfragen (`?`), Transaktionen | KundenDatenbank mit Kontoständen | | **22** | **Web-APIs & JSON-Feeds** | REST-Architektur, `json.loads/dumps`, Statuscodes, defensive Fehlerbehandlung | Wetter- & Finanz-Feeds, Ticker-Generator |