Dieses Projekt ist eine prototypische Lernplattform für Programmierung, die Aufgaben ähnlich wie bekannte Plattformen Codewars oder LeetCode bereitstellt.
Die Nutzer:innen können dabei Aufgabenstellungen direkt im integrierten Inline-Codeeditor bearbeiten und lösen.
Der entscheidende Unterschied – und zugleich der Kern meiner Bachelorarbeit – ist eine zusätzliche Visualisierungs-Funktion:
Beim Testen des eigenen Codes erzeugt die Plattform eine animierte Darstellung jedes Ausführungsschrittes des Algorithmus.
Das Besondere: Fehler im Code spiegeln sich auch in der Visualisierung wider – so werden Logikfehler nicht nur im Ergebnis, sondern auch im Ablauf sichtbar.
Bubblesort Algorithmus (YouTube-Video):
Quicksort Algorithmus (YouTube-Video):
Als Beispiel wurden die Algorithmen Bubblesort und Quicksort implementiert.
Die Visualisierung erkennt dabei automatisch verschiedene Zustände und markiert diese in der Animation sowie im zugehörigen Code.
Einige zentrale Beispiele:
- In Blau markiert sind die Elemente, die im aktuellen Schritt getauscht wurden.
- Die Elemente 64 und 12 sind gestrichelt umrandet und wackeln, um anzuzeigen, dass sie im nächsten Schritt vertauscht werden.
- Im Code werden die dafür verantwortlichen Zeilen hervorgehoben.
Hier ist zu sehen, wie Elemente sukzessive durch 0 ersetzt werden. Die Animation folgt dabei direkt dem Codefluss.
- Das aktuelle Pivot-Element wird in Orange hervorgehoben.
- Dieses wird automatisch aus dem Parameter der Funktion
quickSortRecursiveabgeleitet.
Die Visualisierung erkennt auch Rückgabewerte von Funktionen und markiert deren Einfluss direkt in der Liste.
Rekursionen werden klar erkennbar dargestellt, sodass nachvollziehbar ist, welche Aufrufe gerade aktiv sind.
Auch Vergleiche zwischen Elementen werden erkannt und im Ablauf hervorgehoben.
-
Konfiguriere die
.env-Datei (z. B. Port, Umgebungsvariablen). -
Analysis-Tool-Docker-Image (aktuell manuell):
Der Executor startet den Analyse-Container überANALYSIS_DOCKER_IMAGE. Indocker-compose.prod.ymlwird das Image nicht mehr mitgebaut; du musst es einmal selbst bauen (oder ein bereits gebautes Image von einer Registry pullen) und den Image-Namen in der.envsetzen.Beispiel: Image aus dem Projektverzeichnis bauen und Namen wählen:
docker build -t bachelor-thesis-analysis-tool ./analysis-tool
In der
.envdenselben Namen eintragen:ANALYSIS_DOCKER_IMAGE=bachelor-thesis-analysis-toolFür die lokale Entwicklung mit
docker compose(ohne-f docker-compose.prod.yml) kannst du dasanalysis-tool-Service weiterhin nutzen, damit Compose das Image baut; der Compose-Projektname ergibt dann typischerweise ein Image wie<projektordner>-analysis-tool– diesen vollen Namen trägst du ebenfalls inANALYSIS_DOCKER_IMAGEein. -
Starte das Projekt mit:
docker compose up -d
-
Wenn der Port in der .env-Datei nicht angepasst wurde, ist die Webseite anschließend unter http://localhost:3000 erreichbar.
Die gezeigte Plattform ist ein Prototyp, der exemplarisch an Sortieralgorithmen demonstriert wird. Das Visualisierungskonzept ist jedoch universell erweiterbar: In Zukunft könnten weitere Algorithmen oder sogar komplexere Programmieraufgaben unterstützt werden, um Lernenden tiefere Einblicke in das Verhalten ihres Codes zu geben.













