commit 1ea072d652428b4232be865a9719dc54c96a3aee Author: Johannes Rest Date: Sat Jul 11 20:29:16 2026 +0200 Initial commit; create Website for learning python. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..344bab8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Betriebssystem und Editor +.DS_Store +Thumbs.db +*.swp +*.swo +.vscode/ +.idea/ + +# Python/lokale Server-Artefakte +__pycache__/ +.pytest_cache/ +.venv/ +venv/ + +# Lokale Notizen und Exporte +*.log +tmp/ +dist/ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..873de66 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Python-Abenteuer fuer Raphael + +Ein lokaler, browserbasierter Python-Lernkurs fuer Raphael (12 Jahre). Der Kurs fuehrt in 16 Missionen von `print()` bis zu Funktionen, Listen, Bedingungen, Schleifen, `input()` und `random`. + +## Starten + +Variante 1: Datei direkt im Browser oeffnen: + +```bash +xdg-open index.html +``` + +Variante 2: kleiner lokaler Webserver: + +```bash +python3 -m http.server 8000 +``` + +Danach im Browser öffnen: + +```text +http://localhost:8000 +``` + +## Wichtige Hinweise + +- Fortschritt, Abzeichen und Code-Entwuerfe werden lokal im Browser via `localStorage` gespeichert. +- Die Python-Ausfuehrung im Browser nutzt Pyodide von einem CDN. Dafuer braucht der Browser beim ersten Laden Internetzugang. +- Ohne Pyodide bleiben Lektionen, Aufgaben und Hinweise lesbar; fuer die interaktiven Code-Uebungen wird Pyodide benoetigt. +- Es gibt keinen externen KI/API-Aufruf. Der Mentor "Professor Python" arbeitet lokal mit kurzen, regelbasierten Hinweisen. + +## Dateien + +- `index.html` - komplette Single-Page-App +- `docs/kurs-dokumentation.md` - didaktische und technische Dokumentation +- `.gitignore` - sinnvolle Ignorierregeln fuer lokale Artefakte + +## In Gitea hochladen + +Falls das Verzeichnis noch kein Git-Repository ist: + +```bash +git init +git add . +git commit -m "Initialer Python-Lernkurs fuer Raphael" +git remote add origin +git push -u origin main +``` diff --git a/docs/kurs-dokumentation.md b/docs/kurs-dokumentation.md new file mode 100644 index 0000000..684ab16 --- /dev/null +++ b/docs/kurs-dokumentation.md @@ -0,0 +1,62 @@ +# 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. diff --git a/index.html b/index.html new file mode 100644 index 0000000..1d6df7a --- /dev/null +++ b/index.html @@ -0,0 +1,849 @@ + + + + + +Python-Abenteuer – Agent Raphael + + + +
+
+ + + +