- admin.html: Executive Dashboard mit KPI-Metriken (User, Rollen, gelöste Aufgaben, DB-Größe) - Userverwaltung: Interaktive Tabelle mit Sofortsuche, Rollen-Filter, Rollenwechsel (Admin/Lehrer/Schüler/Solo), Passwort-Reset & Benutzer löschen/anlegen - Plattform-Einstellungen: Globales Announcement-Banner, Registrierungs-Toggle & Wartungsmodus - Backend-API (server.py): Geschützte Admin-Endpunkte (/api/admin/stats, /api/admin/users, /api/admin/settings etc.) mit rollenbasierter Autorisierung (RBAC) - CLI-Tool make_admin.py zur Vergabe von Administratorrechten im Terminal |
||
|---|---|---|
| assets | ||
| courses | ||
| lehrpfad_1_grundlagen | ||
| lehrpfad_2_oop_einstieg | ||
| lehrpfad_3_fortgeschrittenes_oop | ||
| lehrpfad_4_professional_data_engineering | ||
| .gamification.json | ||
| .gitignore | ||
| .htaccess | ||
| .nojekyll | ||
| admin.html | ||
| api.php | ||
| create_java_modules.py | ||
| gamification.py | ||
| generate_csharp_modules.py | ||
| generate_questions.py | ||
| index.html | ||
| LEHRPLAN.md | ||
| make_admin.py | ||
| profil.py | ||
| README.md | ||
| server.py | ||
| teacher.html | ||
| test_all.py | ||
| workspace.html | ||
🐍 Python Lernportal: Vom Einsteiger zum Software-Entwickler
🌍 Interaktives Web-Portal: https://alexander-mueller.github.io/python-oop-lernportal/
Willkommen zum interaktiven Python Lernportal! 🎉
Dieses Portal ist didaktisch strukturiert, zu 100% abgeglichen mit dem Informatik-Schulunterricht (LEHRPLAN.md) und gliedert sich in 3 strukturierte Lehrpfade mit 27 aufeinander aufbauenden Modulen.
🎮 Entwickler-Pass & Gamification (100% Offline & Lokal)
Das Lernportal besitzt ein wissenschaftlich fundiertes Gamification-System (Self-Determination Theory & Octalysis), das vollständig lokal auf deinem Computer funktioniert:
- 🪪 Entwickler-Pass im Terminal anzeigen:
python3 profil.py - 🧪 Gesamtfortschritt & XP synchronisieren:
python3 test_all.py - 🏆 10 Entwickler-Level (vom Code-Küken 🐣 bis zur Software-Architektin 🏆) und 14 freischaltbare Trophäen.
🧭 Die 3 Lehrpfade im Überblick
🛣️ Lehrpfad 1: Grundlagen der Programmierung (Prozedural & Datenstrukturen)
| Modul | Titel | Themenschwerpunkte |
|---|---|---|
| G01. Taschenrechner | Python als Rechner | Zahlenarten (int, float), Grundrechenarten, //, %, **, Rangfolge & print() |
| G02. Variablen & Typen | Datentypen | Speicherboxen, int, float, str, bool, Type Casting & Type Hints |
| G03. Ein- & Ausgabe | Interaktion | Tastatureingaben mit input(), f-Strings mit Formatierungs-Codes ({preis:.2f} €) |
| G04. Bedingungen | Entscheidungen | if, elif, else, Vergleichsoperatoren & Logik (and, or, not) |
| G05. Schleifen | Wiederholungen | Zählschleifen mit for in range(), Bedingungsschleifen mit while, break/continue |
| G06. Funktionen | Modularität | def, return, Parameter, Scope & Module (math, random) |
| G07. Listen & Sequenzen | Datenstrukturen 1 | Listen erstellen, Indexing, Slicing [1:4], Methoden (append, pop) & sum/min/max |
| G08. Textverarbeitung | String-Methoden | Unveränderlichkeit, .strip(), .replace(), .split(), ", ".join() & Textanalyse |
| G09. Dictionaries & Sets | Datenstrukturen 2 | Key-Value Paare ({key: val}), sicheres .get(), Mengen (set) ohne Duplikate |
| G10. Comprehensions & Datum | Vertiefung | List Comprehensions [x for x in ...], datetime & Such-/Sortier-Algorithmen |
🛣️ Lehrpfad 2: Einstieg in die Objektorientierung (OOP) & Entwickler-Tools
| Modul | Titel | Themenschwerpunkte |
|---|---|---|
| 00. Fehlersuche | Warm-up & Debugging | Tracebacks von unten lesen, IndentationError, SyntaxError, TypeError |
| 01. Einstieg in Klassen | Bauplan vs. Objekt | Klassen definieren, Instanziierung, Punktnotation & Type Hints (Fahrrad) |
| 02. Konstruktor & self | Initialisierung & UML | __init__, self, Startwerte & UML-Klassendiagramme (Bankkonto, Smartphone) |
| 03. Methoden & Verhalten | Objekt-Interaktion | Methoden definieren, Rückgabewerte & Duell zweier Objekte (Rennauto) |
| 04. Schöne Textausgabe | __str__ Dunder |
Lesbare print()-Ausgabe von Objekten, Kassenzettel (Warenkorb) |
| 04b. VS Code Installation | IDE-Setup | Installation (Win/Mac/Linux), Plugins (Error Lens, Python), Shortcuts |
| 04c. Git & Versionskontrolle | Git-Tooling | Spielstände (Commits) sichern, VS Code Git-Tab, Terminal & Remote Push |
| 05. Objekte kombinieren | Komposition | 1:1 und 1:n Beziehungen zwischen Objekten (Spotify Playlist-Manager) |
| 06. Mini-Projekt OOP 1 | Tamagotchi Game | Voll spielbares, interaktives Haustierspiel im Terminal |
🛣️ Lehrpfad 3: Fortgeschrittenes OOP, Softwarequalität & Desktop-GUIs
| Modul | Titel | Themenschwerpunkte |
|---|---|---|
| 07. Referenzen & Speicher | RAM & Zeiger | Referenzen im RAM, Aliasing (b = a), is vs. == & Familienstammbaum (Person) |
| 08. Operator Overloading | Dunder-Methoden | Eigene Klassen rechenbar machen mit __add__, __mul__, __eq__ (2D-Vektoren) |
| 09. Eigene Unit Tests & TDD | Softwarequalität | Testsuiten schreiben mit unittest, assertEqual, assertRaises & TDD |
10. Vererbung & super() |
Inheritance | Basis- & Kindklassen, DRY-Prinzip, super().__init__() & Fahrzeugflotte |
| 11. Polymorphie & Interfaces | Polymorphism | Duck Typing, abstrakte Basisklassen (ABC) & Geometrie-Engine |
| 12. Exceptions & Fehler | Robustes Coding | try-except-else-finally, raise, eigene Exception-Klassen im Banking |
| 13. Datei-Persistenz | JSON & CSV | Dauerhaftes Speichern & Laden: Savegames & Tabellen-Export |
| 14. Desktop-GUIs mit Tkinter | Tkinter Desktop-Apps | Echte Fenster, Buttons, Labels, Grid-Layout & MVC-Architektur |
| 15. Parameter & Container | Dunder-Container | Variable Argumente (*args, **kwargs), Unpacking & Container (len, [], in, iter) |
| 16. Master-Abschlussprojekt | 🏆 Meisterstück: PetCare | Vollständige Desktop-App: MVC, Vererbung, Polymorphie, JSON-Savegames & Tkinter GUI |
🧪 Wie benutze ich die automatischen Tests?
In jedem Kapitelordner liegt eine Datei namens test_aufgabe.py. Sie enthält automatische Unit Tests, die überprüfen, ob deine Lösung alle Anforderungen erfüllt.
1. Einzelnes Kapitel testen
Öffne das Terminal in VS Code (`Strg + ``) und führe den Test im jeweiligen Ordner aus:
# Beispiel für Grundlagen G01:
cd g01_erste_schritte_taschenrechner
python3 test_aufgabe.py
2. Testausgabe richtig lesen:
- ✅
OK: Perfekt! Alle Tests sind grün und bestanden. Du erhältst sofort XP und kannst mit dem nächsten Kapitel weitermachen. - ❌
FAIL(AssertionError): Dein Code läuft, liefert aber einen falschen Wert zurück (z.B. Rechenfehler oder falsche Bedingung). Lies die letzte Zeile der Fehlermeldung! - 💥
ERROR(Syntax / AttributeError): Dein Code hat einen Absturz (z.B. Tippfehler im Funktionsnamen).
3. Gesamten Fortschritt aller 27 Kapitel prüfen:
Führe im Hauptordner folgenden Befehl aus:
python3 test_all.py
Dieser Befehl zeigt dir eine Übersicht über alle Kapitel mit ✅ (bestanden) und ⏳ (noch offen) und aktualisiert deinen Gamification-Pass.
💡 3 Wichtige Regeln für die Aufgaben
returnstattprint(): Tests prüfen das, was eine Funktion/Methode mitreturnzurückliefert. Ein reinesprint()genügt dem Test nicht!- Exakte Namen: Die Namen der Funktionen, Methoden und Attribute müssen exakt der Aufgabenstellung entsprechen (
addieren, nichtAddieren). - Fehlermeldungen von unten nach oben lesen: Ganz unten im Traceback steht immer die genaue Ursache.