Result: Framework zur Visualisierung von Algorithmen+Datenstrukturen
Further Information
An der Hochschule für Technik Rapperswil (HSR) werden in den Modulen Algorithmen und Datenstrukturen 1 & 2 diverse Algorithmen unterrichtet, deren Funktionsweise schwierig nachzuvollziehen ist. Infolgedessen bekunden viele Studenten Schwierigkeiten beim Erlernen dieser abstrakten Konzepte. Abhilfe schafft der Graphs-Visualization-Service (GVS), welcher die Datenstrukturen Graph und Tree sowie ausgewählte darauf anwendbare Algorithmen visualisiert. Es hat sich gezeigt, dass die Visualisierung der Konzepte den Lernerfolg der Studenten positiv beeinflusst. Der GVS ist in seinem Funktionsumfang auf die genannten Datenstrukturen limitiert. Zudem wurde dessen Architektur nie für grössere Erweiterungen konzipiert. Ziel dieser Bachelorarbeit ist es, einen erweiterbaren Nachfolger zu entwickeln, der den GVS in Zukunft vollständig ablösen kann und weitere Datenstrukturen, wie beispielsweise eine Linked-List, in Form von Modulen unterstützt. Unter Berücksichtigung des Funktionsumfangs des GVS wurden die Anforderungen an den neuen Algorithm & Data Structure Visualizer (ADV) spezifiziert. Zusätzlich lieferte eine Benutzerumfrage wertvolle Inputs, welche insbesondere auf die Benutzeroberfläche und das Feature-Set Einfluss hatten. Bei der Planung der Architektur lag der Fokus auf der Erweiterbarkeit der Software sowie einer intuitiven Benutzeroberfläche. Damit die Umsetzbarkeit der Designentscheide überprüft werden konnte, wurden diese bereits früh mit Prototypen verifiziert. Der ADV wurde in zwei Teilkomponenten aufgeteilt. Beim Benutzer wird eine Library eingebunden, welche Klassen zur Visualisierung von Datenstrukturen zur Verfügung stellt. Zudem wurde eine JavaFX Applikation entwickelt, welche sich um die Visualisierung kümmert. Zentraler Baustein der Visualisierungs-Komponente ist ein modulares Framework, das wiederverwendbare Widgets, wie Knoten oder Pfeile, zur Verwendung in den Modulen bereitstellt. Zur Unterstützung künftiger Erweiterungen der Software wurde ein umfassender Buildprozess spezifiziert, der die ...