# Kurs-Dokumentation ## Zielgruppe Raphael ist 12 Jahre alt und soll Python praktisch, spielerisch und mit schnellen Erfolgserlebnissen lernen. Der Kurs verwendet eine Agenten-Geschichte, kurze Konzepte, direkt ausfuehrbare Uebungen und Mini-Tests. ## Didaktischer Aufbau Jede Mission besteht aus fuenf Phasen: 1. Story: Motivation und Problemrahmen. 2. Lernen: Ein kleines Konzept mit Beispielcode. 3. Ueben: Raphael schreibt oder veraendert Code. 4. Test: Eine kurze Verstaendnisfrage. 5. Fertig: XP, Level und naechste Mission. Die Reihenfolge ist bewusst progressiv: - Ausgabe mit `print()` - Variablen und Datentypen - Rechnen - Fehlermeldungen lesen - Eingaben mit `input()` - Bedingungen mit `if`, `else`, `and`, `or` - Schleifen - Listen - Funktionen und Parameter - Kombination in Quiz, Text-Adventure, Passwortgenerator und Abschlussprojekt ## Paedagogische Regeln - Kurze Aufgaben statt langer Theorie. - Fehler werden als Hinweise dargestellt, nicht als Scheitern. - Der Mentor gibt keine Komplettloesungen, sondern Denkstufen. - XP und Abzeichen motivieren, ersetzen aber nicht die eigentliche Uebung. - Aufgaben enthalten Hilfen in mehreren Stufen, damit Raphael zuerst selbst probieren kann. ## Technische Architektur Die App ist eine einzelne HTML-Datei: - HTML/CSS/JavaScript ohne Build-Schritt. - `localStorage` fuer Fortschritt und Code-Entwuerfe. - Pyodide fuer echte Python-Ausfuehrung im Browser. - Regelbasierter lokaler Mentor statt externer API. - Responsive Layout fuer Desktop, Tablet und schmale Bildschirme. ## Resilienz - Wenn Pyodide nicht geladen werden kann, zeigt die App einen klaren Status und verhindert falsche Erfolgsmeldungen beim Ausfuehren. - Falsche Quiz-Antworten sperren die Mission nicht; Raphael kann erneut versuchen. - Code-Entwuerfe werden pro Mission gespeichert. - Texte werden beim Rendern escaped, damit Codebeispiele nicht als HTML interpretiert werden. - Die App benoetigt keinen lokalen Server, funktioniert aber auch mit `python3 -m http.server`. ## Weiterentwicklung Sinnvolle naechste Schritte: - Weitere Missionen zu Dictionaries, Dateien und einfachen Spielen. - Optionales lokales Vendoring von Pyodide, falls der Kurs komplett offline laufen soll. - Kleine Beispiel-Loesungen in einer separaten, nicht direkt sichtbaren Lehrerdatei.