Keine Registrierung, keine Schülerdaten auf einem Server, keine fremden Dienste. Die Schüler öffnen die Seite und legen los – Python läuft komplett im Browser.
🔒 Datensparsam
Fortschritt bleibt im Browser des Schülers. Cookies, Tracking und Konten gibt es nicht. Details stehen in der Datenschutzerklärung.
✓ Sofortiges Feedback
Jede Aufgabe wird automatisch geprüft, Fehlermeldungen sind verständlich erklärt, gestufte Tipps helfen weiter, bevor die Lösung kommt.
🤖 Robotik ohne Hardware
Der Pybricks-Simulator lässt alle gleichzeitig programmieren – auch wenn es nur wenige LEGO-SPIKE-Sets gibt. Der Code läuft danach unverändert auf dem echten Roboter.
📶 Offline im Klassenraum
Schlechtes WLAN? Einmal mit Internet auf jedem Gerät auf den Knopf drücken – danach laufen alle Lektionen, der Trainingsraum und Python ohne Verbindung. Gespeichertes bleibt bei Updates erhalten und wird beim nächsten Besuch mit Internet automatisch aufgefrischt. Im Browser-Menü kann Codelix auch wie eine App installiert werden.
📄 Arbeitsblätter und Musterlösungen
Jede Lektion hat oben den Knopf „Arbeitsblatt drucken“: Text, Beispiele und Aufgabe mit Schreiblinien, Name/Datum und einem QR-Code zurück zur Lektion. Ohne Hinweise und ohne Lösung – die Profi-Aufgabe steht auf einer eigenen Seite.
Alle Musterlösungen (auch der Profi-Aufgaben) gibt es gesammelt für Lehrkräfte – freigeschaltet mit einer Frage aus dem Buch „Python für Roboter“.
Mit der Turtle Linien, Formen und Farben zeichnen · Schleifen und Funktionen nutzen, um Muster zu erzeugen · Ein eigenes Kunstwerk programmieren und als Bild speichern
Texte Buchstabe für Buchstabe verarbeiten · Mit einer Menge von geratenen Buchstaben arbeiten · Ein komplettes Ratespiel mit einer while-Schleife bauen
Alles aus der Einsteiger-Stufe in einem Projekt verbinden · Mit Dictionaries, Schleifen und Funktionen Daten auswerten · Ein Ergebnis übersichtlich ausgeben
Messwerte in Listen speichern und mit zip() paarweise durchgehen · Durchschnitt, Minimum und Maximum berechnen · Daten als Balkendiagramm aus Text darstellen
Mit class einen eigenen Bauplan für Objekte schreiben · Eigenschaften in __init__ festlegen und über self benutzen · Methoden schreiben, die ein Objekt verändern
Mit __str__ bestimmen, wie print() ein Objekt zeigt · Mit __eq__, __lt__ und __add__ Objekte vergleichen und rechnen · Mit @property berechnete Eigenschaften schreiben
Längere Fehlermeldungen (Tracebacks) Schritt für Schritt lesen · Fehler in Klassen finden (self vergessen, falsche Rechnung) · Mit assert und f"{x=}" gezielt prüfen
Verstehen, wie eine Funktion sich selbst aufrufen kann · Abbruchbedingung und rekursiven Schritt unterscheiden · Probleme in kleinere gleichartige Probleme zerlegen
Verstehen, was „gleichzeitig warten“ bedeutet · Mit async def, await und asyncio.run arbeiten · Mehrere Aufgaben mit asyncio.gather parallel laufen lassen
Ein eigenes Bild als Liste von Listen bauen · Einzelne Lichtpunkte mit Helligkeit steuern · Eine Statusanzeige aus Messwerten berechnen · Töne und Melodien abspielen
Verstehen, warum echte Roboter nie ganz genau fahren · Strecke mit dem Abstandssensor und Drehung mit dem Gyro nachmessen · wheel_diameter und axle_track richtig nachrechnen
Pybricks auf den SPIKE-Hub bringen · Programme aus dem Simulator auf den echten Roboter übertragen · Vor dem ersten Lauf Sensorwerte messen statt raten
Eine Webseite mit Überschrift, Absätzen und Listen in HTML schreiben · Mit CSS Farben, Abstände und Schriftgrößen festlegen · Mit Klassen mehrere Elemente gleich gestalten
Mit document.querySelector ein Element der Seite finden · Text und Aussehen eines Elements mit JavaScript ändern · Mit addEventListener auf Klicks reagieren
Ein Element mit JavaScript an eine zufällige Stelle setzen · Mit setInterval eine Uhr rückwärts laufen lassen · HTML, CSS und JavaScript zu einem fertigen Spiel verbinden
Einen XS-Motor mit setSpeed() vorwärts und rückwärts laufen lassen · Mit setDistance() eine genaue Strecke in Encoder-Impulsen fahren · Mit finished() warten, bis eine Bewegung fertig ist
Lampen an O1 bis O8 ein- und ausschalten und dimmen · Einen Taster an einem I-Eingang abfragen · Die vertauschte Logik von state() verstehen (0 = gedrückt)
Mit dem Spurfolger erkennen, ob eine Linie unter dem Sensor ist · Mit dem Fototransistor die Helligkeit als Spannung in mV messen · Messwerte in einer Liste sammeln und auswerten
Eine Ampel als Folge von Zuständen programmieren · Mit kleinen Hilfsfunktionen den Code lesbar halten · Auf eine Fußgänger-Anforderung per Taster reagieren
Formen und Text auf ein Spielfeld zeichnen · Verstehen, wie eine Spielschleife Bild für Bild arbeitet · Eine Figur mit den Pfeiltasten steuern und im Fenster halten
Mit random Dinge an zufälligen Stellen erscheinen lassen · Prüfen, ob sich zwei Rechtecke berühren (Kollision) · Punkte zählen, Leben abziehen und das Spiel mit spiel.ende() beenden
Ein Spielfeld aus Kästchen mit spiel.raster() und spiel.feld() bauen · Eine Schlange als Liste von Positionen speichern und wachsen lassen · Mit spiel.gedrueckt() die Richtung wechseln und das Spielende erkennen
Einen Ball mit Geschwindigkeit in x- und y-Richtung bewegen · Den Ball an Wänden und Schlägern abprallen lassen · Einen einfachen Computer-Gegner programmieren
Verstehen, warum Computer nur mit 0 und 1 rechnen · Zahlen zwischen Dezimal- und Zweiersystem umrechnen · Wissen, wie Buchstaben als Zahlen gespeichert werden
Die Caesar-Verschlüsselung verstehen und programmieren · Erkennen, warum Caesar leicht zu knacken ist · Mit einem Schlüsselwort nach Vigenère sicherer verschlüsseln
Ein Bild als Liste von Zeilen mit Helligkeitswerten speichern · Verstehen, wie Farben aus Rot, Grün und Blau entstehen · Eigene Bildfilter programmieren
Verstehen, warum Suchmaschinen nicht jede Seite einzeln durchlesen · Einen Index aus Wörtern und Seiten bauen · Mit Mengen Seiten finden, auf denen mehrere Wörter vorkommen
Die Schritte eines Programms zählen statt die Zeit zu stoppen · Erkennen, wie die Schrittzahl wächst, wenn die Daten doppelt so groß werden · Einen langsamen Algorithmus durch einen schnellen ersetzen
🔗 Klassen-Link: Lektionen für deine Klasse auswählen
Hake oben die Lektionen an, die deine Klasse bearbeiten soll, und gib der Liste einen Namen. Der Link enthält nur diese Auswahl – keine Namen von Schülern, kein Konto. Wer ihn öffnet, sieht genau diese Lektionen mit seinem eigenen Fortschritt.
Klassenübersicht – ohne Server
1. Die Schüler gehen auf „Mein Fortschritt“ → „Als Datei sichern“ und geben dir die Datei (z. B. über eure Lernplattform), am besten mit ihrem Namen im Dateinamen. 2. Wähle hier alle Dateien auf einmal aus. Sie werden nur in deinem Browser gelesen – nichts wird hochgeladen oder gespeichert.
🏁 Klassen-Rangliste für die Robotik-Challenges
Die Schüler schicken dir ihre Links aus „Zeit teilen“. Füge sie hier ein – pro Zeile „Name: Link“. Jede Zeit wird im Simulator nachgerechnet, geschummelte Zeiten fallen auf. Alles passiert nur in deinem Browser.