Hinweise zum Einsatz
Tiny Johnny führt Schülerinnen und Schüler der Sekundarstufe II vom Von-Neumann-Modell zum Modellrechner Johnny. Die Materialien sind für selbstständiges Arbeiten mit starker Führung angelegt: Jede Einheit beginnt mit einer Leitfrage, Missionen und Aufgaben geben sofort Rückmeldung.
Vorschlag für den Unterrichtsverlauf
Etwa 7 Doppelstunden. Kapitel und Missionen lassen sich einzeln verlinken, Vertiefungen sind aufklappbar und optional.
- DS 1Überblick und Ein-/AusgabeÜberblick – EVAS und Von NeumannDas EingabewerkDas Ausgabewerk
- DS 2SpeicherDas SpeicherwerkSpeichertechnikCache und Register
- DS 3Bus, CPU und BewertungDer SystembusDie CPUStärken und SchwächenBrücke zu Johnny
- DS 4Johnny: Speicher, Busse, RechenwerkM1: Der SpeicherM2: Der AdressbusM3: Der DatenbusM4: Der AkkumulatorM5: Das Rechenwerk
- DS 5Johnny: Befehle und SteuerwerkM6: Befehle sind ZahlenM7: Das MikroprogrammM8: Programmzähler & FETCHM9: Selbst programmieren
- DS 6Johnny: Sprünge, Bedingungen, Von NeumannM10: SprüngeM11: Entscheidungen mit TSTM12: Befehle oder Daten?M13: Du bist das SteuerwerkAufgaben ★
- DS 7Üben und vertiefenAufgaben ★★ und ★★★M14: Neue Befehle (Vertiefung)Transfer ins Original
Didaktisches Konzept
- Leitfragen als roter Faden: „Woher weiß der Computer, was er tun soll?“ wird in Mission 8 beantwortet und in Mission 12/13 vertieft.
- Schrittweiser Aufbau: Im Tutorial erscheinen die Bauteile nacheinander (Speicher → Adressbus → Datenbus → Akku → Rechenwerk → Befehlsregister → Mikrocode → Programmzähler). Die SuS sind zunächst selbst das Steuerwerk.
- Vorhersagen vor dem Ausführen: Viele Schritte verlangen eine Vorhersage, bevor Johnny den Schritt ausführt.
- Einheitliche Farbcodierung: Speicher blau, Adressbus orange, Datenbus grün, Rechenwerk lila, Steuerwerk türkis – im Von-Neumann-Teil und im Simulator gleich.
- Deutsch + Original-Kürzel: Mikrobefehle heißen z. B.
ram→db„Speicher → Datenbus“. So gelingt der Transfer ins Original. - Differenzierung: Aufgaben in drei Kontexten und drei Schwierigkeitsstufen, Tipps in drei Stufen, Musterlösung zuletzt.
Fachliche Hinweise zu verbreiteten Folieninhalten
Johnny-Details, auf die man achten sollte
- TST, INC, DEC und NULL überschreiben den Akkumulator (sie arbeiten intern mit
db→acc). Häufigste Fehlerquelle – Mission 11 und die Aufgaben „Fehlersuche“ und „Akku-Falle“ thematisieren das. - Keine negativen Zahlen:
minussättigt bei 0,plusbei 19999. Aufgaben wie „Abstand“ und „Highscore“ nutzen das bewusst aus. - Ausführen stoppt bei HLT oder wenn sich der Programmzähler nicht mehr ändert (z. B. Zelle mit 00.000).
- Die Simulation entspricht Johnny 2.0 exakt (automatisch getestet: gleicher Mikrocode, gleiche Grenzen, .ram/.mc-Format).
Alle Aufgaben mit Lösungen
Die Lösungen sind auch für SuS nach allen Tipps sichtbar. Jede Lösung wird bei jeder Änderung der Website automatisch gegen die Testfälle geprüft.
Informatik-KlassikerWerte tauschen★Programmieren
Der Klassiker mit der Hilfsvariable.
TAKE 100 SAVE 102 TAKE 101 SAVE 100 TAKE 102 SAVE 101 HLTAufgabe öffnen →
Informatik-KlassikerProgramm lesen★Programm lesen
Vorhersagen, was ein Programm tut – ohne es auszuführen.
TAKE 100 ; Akku = 10 SUB 101 ; Akku = 6 SAVE 100 ; Zelle 100 = 6 TAKE 101 ; Akku = 4 ADD 100 ; Akku = 10 SAVE 101 ; Zelle 101 = 10 HLTAufgabe öffnen →
Informatik-KlassikerDrei Werte rotieren★★Programmieren
Jeder Wert rückt eine Zelle weiter, der letzte kommt nach vorn.
TAKE 102 SAVE 103 TAKE 101 SAVE 102 TAKE 100 SAVE 101 TAKE 103 SAVE 100 HLTAufgabe öffnen →
Informatik-KlassikerVerschieben im Bonsai-Modus★★Programmieren
Einen Wert kopieren – nur mit INC, DEC, TST, JMP und HLT.
TST 101 JMP 003 JMP 005 DEC 101 JMP 000 TST 100 JMP 008 HLT DEC 100 INC 101 JMP 005Aufgabe öffnen →
Informatik-KlassikerFehlersuche – der Akku lügt★★Fehlersuche
Ein Programm rechnet falsch. Finde und behebe den Fehler.
NULL 101 TST 100 JMP 004 HLT TAKE 101 ADD 100 SAVE 101 DEC 100 JMP 001Aufgabe öffnen →
Informatik-KlassikerProgramm lesen – die Akku-Falle★★Programm lesen
Eine Schleife mit Tücken im Kopf durchspielen.
000 TAKE 100 → Akku 1 001 ADD 101 → Akku 4 002 SAVE 102 → 102 = 4 003 DEC 101 → 101 = 2, Akku 2 004 TST 101 → Akku 2 (≠ 0) 005 JMP 001 001 ADD 101 → Akku 4 002 SAVE 102 → 102 = 4 003 DEC 101 → 101 = 1, Akku 1 004 TST 101 → Akku 1 005 JMP 001 001 ADD 101 → Akku 2 002 SAVE 102 → 102 = 2 003 DEC 101 → 101 = 0, Akku 0 004 TST 101 → 0 → JMP wird übersprungen 006 HLTAufgabe öffnen →
Informatik-KlassikerSumme einer Liste★★★Programmieren
Ein Programm, das seinen eigenen Befehl verändert.
TAKE 048 SAVE 007 NULL 051 TST 050 JMP 006 HLT TAKE 051 ADD 100 SAVE 051 INC 007 DEC 050 JMP 003Aufgabe öffnen →
Rechnen & MatheSumme dreier Zahlen★Programmieren
Drei Zahlen addieren und das Ergebnis speichern.
TAKE 100 ADD 101 ADD 102 SAVE 103 HLTAufgabe öffnen →
Rechnen & MatheDifferenz – und eine Überraschung★Programmieren
a − b berechnen und herausfinden, was bei negativen Ergebnissen passiert.
TAKE 100 SUB 101 SAVE 102 HLTAufgabe öffnen →
Rechnen & MatheVerdreifachen★Programmieren
Multiplizieren mit 3 – ohne Multiplikationsbefehl.
TAKE 100 ADD 100 ADD 100 SAVE 101 HLTAufgabe öffnen →
Rechnen & MatheAbstand zweier Zahlen★★Programmieren
|a − b| berechnen – mit einem Trick, der nur bei Johnny funktioniert.
TAKE 100 SUB 101 SAVE 103 TAKE 101 SUB 100 ADD 103 SAVE 102 HLTAufgabe öffnen →
Rechnen & MatheDie größere Zahl★★Programmieren
Rechnen & MatheMultiplikation mit einer Schleife★★Programmieren
a · b durch wiederholtes Addieren.
NULL 102 TST 101 JMP 004 HLT TAKE 102 ADD 100 SAVE 102 DEC 101 JMP 001Aufgabe öffnen →
Rechnen & MatheDivision mit Rest★★★Programmieren
a : b = Quotient Rest – durch wiederholtes Subtrahieren.
NULL 102 TAKE 101 SUB 100 SAVE 104 TST 104 JMP 011 TAKE 100 SUB 101 SAVE 100 INC 102 JMP 001 TAKE 100 SAVE 103 HLTAufgabe öffnen →
Rechnen & MatheQuadratzahlen★★★Programmieren
n² berechnen, ohne n zu zerstören.
TAKE 100 SAVE 102 NULL 101 TST 102 JMP 006 HLT TAKE 101 ADD 100 SAVE 101 DEC 102 JMP 003Aufgabe öffnen →
Spiele & ZählerMünze eingesammelt★Programmieren
Spiele & ZählerRaketenstart★★Programmieren
Spiele & ZählerGame Over?★★Programmieren
Schaden abziehen und prüfen, ob noch Leben übrig sind.
TAKE 100 SUB 101 SAVE 100 NULL 102 TST 100 HLT INC 102 HLTAufgabe öffnen →
Spiele & ZählerNeuer Highscore★★Programmieren
Rekord nur überschreiben, wenn er übertroffen wurde.
NULL 103 TAKE 100 SUB 101 SAVE 102 TST 102 JMP 007 HLT TAKE 100 SAVE 101 INC 103 HLTAufgabe öffnen →
Spiele & ZählerWer hat gewonnen?★★★Programmieren
Zwei Spielstände vergleichen – mit Unentschieden.
NULL 102 TAKE 100 SUB 101 SAVE 103 TAKE 101 SUB 100 SAVE 104 TST 103 JMP 012 TST 104 JMP 014 HLT INC 102 HLT INC 102 INC 102 HLTAufgabe öffnen →
Praktisches
- Datenschutz: Keine Anmeldung, kein Tracking. Fortschritt und Programme liegen nur im
localStoragedes Browsers. - Geteilte Geräte: Den Fortschritt auf diesem Gerät kann man hier zurücksetzen:
- Programme einsammeln: In der Sandbox erzeugt Mehr → Link zum Programm kopieren einen Link, der das Programm enthält. Alternativ .ram-Dateien speichern.
- Offline: Die Seite ist statisch und benötigt keine externen Dienste (auch keine Web-Schriftarten von Drittanbietern).
Inhalte selbst anpassen
Alle Texte liegen als einfache Dateien im GitHub-Repository. Nach einer Änderung auf GitHub baut sich die Seite automatisch neu (ca. 2 Minuten).
| Was? | Wo? | Format |
|---|---|---|
| Von-Neumann-Kapitel | src/content/kapitel/*.mdx | Markdown mit eingebetteten Bausteinen |
| Tutorial-Missionen | src/content/tutorial/level-XX.md | YAML: Schritte vom Typ info, aktion, quiz, vorhersage |
| Aufgaben | src/content/aufgaben/*.yaml | Text, Zellen, Startspeicher, Tests, Tipps, Lösung |
| Sandbox-Beispiele | src/content/beispiele/*.yaml | Titel, Beschreibung, Programm |
Eine ausführliche Anleitung mit Beispielen steht in derREADME auf GitHub.