No description
Find a file
Sören 066ba4b42f README fuer die Startseite
Was es ist, fuer wen, wie man es startet und baut, womit man anfaengt,
was didaktisch darin steckt und wo was liegt. Die Gruende hinter dem
Aufbau bleiben in ARCHITECTURE.md - die README ist die Tuer, nicht das
Haus.

Die Lizenz steht ausdruecklich dabei: kostenlos, privat und
nicht-kommerziell, Veraendern und Weitergeben ausgeschlossen. Das ist
keine Open-Source-Lizenz, und ein Repo ohne diesen Hinweis liest sich
wie eines.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RCZZBUMQwRJPpQMqKHmri8
2026-10-31 10:44:34 +01:00
app Ein Zip zum Weitergeben: ./gradlew :app:paket 2026-10-11 19:39:11 +02:00
aufgaben Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
beispiele Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
bilder Die Rollleiste gehoert in die Textbreite eingerechnet 2026-10-30 07:29:18 +01:00
core Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
curriculum Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
gradle Oberflaeche nach dem Vorbild von Turing Complete 2026-10-11 04:40:33 +02:00
lehrgaenge Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
model Wer die Breiten verwechselt, erfaehrt jetzt was 2026-10-30 07:49:06 +01:00
ui Beim Oeffnen die ganze Schaltung zeigen 2026-10-30 09:04:54 +01:00
verify Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
.gitignore Simulationskern mit Verzoegerungsmodell 2026-10-11 03:57:04 +02:00
ARCHITECTURE.md Ein Zip zum Weitergeben: ./gradlew :app:paket 2026-10-11 19:39:11 +02:00
build.gradle.kts Gedankenstriche: ein Strich statt zweier 2026-10-11 19:33:42 +02:00
gradlew Simulationskern mit Verzoegerungsmodell 2026-10-11 03:57:04 +02:00
gradlew.bat Simulationskern mit Verzoegerungsmodell 2026-10-11 03:57:04 +02:00
README.md README fuer die Startseite 2026-10-31 10:44:34 +01:00
settings.gradle.kts Aufgaben mit automatischer Pruefung 2026-10-11 10:31:10 +02:00

logic-learn

Lernsoftware für digitale Logik im Schulunterricht, angelehnt an LogiSim und das Spiel Turing Complete.

Schülerinnen und Schüler bauen Schaltungen aus Gattern, sehen die Signale fließen und arbeiten sich von einem einzelnen Draht bis zum Volladdierer vor. Die Reise endet bewusst bei Flipflops, Zählern, Registern und Vergleichsoperatoren - nicht bei einer CPU mit Assembler.

Java Swing

Starten

Gebraucht wird Java 17 oder neuer, sonst nichts. Keine Installation, keine Administratorrechte - gedacht für Computerräume, in denen man beides nicht hat.

java -jar logic-learn.jar

Wichtig ist das Arbeitsverzeichnis: Das Programm sucht aufgaben/, lehrgaenge/ und beispiele/ neben sich. Die mitgelieferten Startdateien (logic-learn.cmd für Windows, logic-learn.sh für Linux und macOS) wechseln vorher dorthin.

Ein weitergabefertiges Paket mit Programm, Startdateien und allem Unterrichtsmaterial baut:

./gradlew :app:paket      # -> app/build/paket/logic-learn.zip

Zum Bauen und Testen aus den Quellen:

./gradlew build           # übersetzt, prüft, baut die Jar
./gradlew :app:run        # startet direkt aus dem Quelltext

Gebaut wird mit JDK 21, übersetzt für Java 17. Gradle bringt sein Wrapper-Skript mit, es muss nichts installiert werden.

Womit man anfängt

Aufgabe ▸ Lehrgang öffnen … und lehrgaenge/grundkurs.json wählen. Zwanzig Aufgaben in einer Reihenfolge, die aufeinander aufbaut: vom einzelnen Draht über das NAND zu allen übrigen Gattern, weiter zu Paritätsprüfung, Verdoppeln und Volladdierer. Offen ist immer die nächste Aufgabe, die noch nicht bestanden ist; wer sie schafft, schaltet die folgende frei. Die ersten zehn folgen den ersten zehn Leveln von Turing Complete.

F1 zeigt alle Gesten und Tastenkürzel. Die wichtigsten:

Geste Wirkung
Von einem Anschluss ziehen Draht legen - der Weg knickt automatisch
Mitten auf einem Draht ziehen Abzweig
Rechtsklick Löschen
Rechte Maustaste ziehen Rahmen um mehrere Dinge
Klick auf einen Schalter Umlegen
R, Entf, Esc Drehen, Löschen, Abbrechen

Was darin steckt

Vier Werte je Bit statt zwei. Eine Leitung führt 0, 1, unbestimmt (blau) oder Kurzschluss (rot). Dadurch sieht man beim RS-Latch, dass es nach dem Einschalten noch keinen Zustand hat - und dass zwei Ausgänge auf einer Leitung kein Rechenergebnis liefern, sondern einen Widerspruch.

Simulation mit Laufzeit. Jedes Bauteil hat eine Verzögerung, Ereignisse werden der Reihe nach abgearbeitet. Gedächtnis entsteht daraus von selbst: ein Latch ist keine eingebaute Sonderform, sondern zwei Gatter, die sich gegenseitig treiben. Eine Schaltung, die nicht zur Ruhe kommt, wird nach einem Ereignisbudget abgebrochen und als schwingend gemeldet - mit dem Rasterpunkt, an dem es am meisten flackert.

Eigene Bauteile. Jede Schaltung des Projekts lässt sich als Bauteil in einer anderen verwenden, beliebig tief verschachtelt. Beim Aufbereiten werden sie flachgeklopft; jedes Exemplar behält seinen eigenen Zustand.

Aufgaben sind Daten, kein Code. Eine Aufgabe ist eine JSON-Datei mit Beschreibung, Hinweisen, erlaubten Bauteilen und erwarteter Tabelle. Eine Lehrkraft schreibt eigene, ohne zu programmieren - im Programm über Aufgabe ▸ Neue Aufgabe aus dieser Schaltung …, das die Tabelle aus einer gebauten Lösung rechnet. Geprüft wird jede Zeile aus dem Einschaltzustand heraus, damit keine Lösung besteht, die nur von der vorigen Zeile lebt.

Wo was liegt

Ordner Inhalt
core/ Signale, Bauteile, Simulation - kennt keine Schaltung und kein Fenster
model/ Schaltung, Drähte, Verbindungsanalyse, Kommandos, Dateiformat
verify/ Wahrheitstabellen aus einer gebauten Schaltung
curriculum/ Aufgaben, Lehrgänge, Prüfung
ui/ Swing-Oberfläche: Zeichenfläche, Palette, Inspektor, Dialoge
app/ Startpunkt, Fat-JAR, Paket
beispiele/ Fertige Schaltungen zum Ansehen
aufgaben/ Zwanzig Aufgaben mit automatischer Prüfung
lehrgaenge/ Der Grundkurs: die Aufgaben der Reihe nach

Die Entscheidungen hinter dem Aufbau - und die Gründe, die damals dagegen sprachen - stehen in ARCHITECTURE.md. Jeder Datenordner hat eine eigene README mit dem Dateiformat.

Lizenz

Urheber: Sören Biester - KielCode

Die Nutzung ist kostenlos und auf den privaten, nicht-kommerziellen Gebrauch beschränkt; Verändern und Weitergeben sind ausgeschlossen. Den vollständigen Text zeigt das Programm beim ersten Start und jederzeit über Hilfe ▸ Lizenzvereinbarung …; er steht im Quelltext in ui/src/main/java/de/logiclearn/ui/LicenseAgreement.java.