SysProgInteract

Interaktive Simulationen für die Lehre

Computer erklärbar machen –
Interact with SysprogInteract

Computer sind aus unserem Alltag kaum wegzudenken. Fast jede*r hat einen Laptop, Smartphone und/oder Tablet. So praktisch und oft diese Geräte eingesetzt werden, sind sie über die Jahre immer komplexer geworden, sodass man die internen Prozesse zwischen der Hardware und der Software nur schwer praktisch veranschaulichen kann. Genau diese Abhängigkeiten der Prozesse zwischen der Hardware und Software sind in jedem Betriebssystem (z.B. Windows, Linux, Android) verankert und gleichzeitig essenzieller Bestandteil von Systemen, auf die die Informatik aufbaut. Im Grundstudium der Informatik müssen  Studierende daher diese wichtigen Grundlagen erlernen, um in den folgenden Semestern darauf aufbauen zu können. Da jedoch Betriebssysteme praktisch nicht mehr veranschaulicht werden können, werden in den Vorlesungen einzelne Methoden theoretisch besprochen. Studierende fragen sich zurecht: Welche Funktionsweisen eines Betriebssystems sind essentiell wichtig? Welche Vor- und Nachteile haben die einzelnen Methoden in der Anwendung? Wie hängen die Methoden überhaupt zusammen?

In diesem Lehrprojekt sollen die zukünftigen Expert*innen durch neue digitale Simulationen beim Lernprozess unterstützt werden und sich mit Interaktionen experimentell die wichtigsten Vor- & Nachteile und  Zusammenhänge erarbeiten können.

Das erfahren Sie in diesem Artikel:

Wie Sie Prozesse eines Computers interaktiv darstellen

Hardware wird immer komplexer und teurer, sodass es nicht mehr möglich ist jedem Studierenden die Hardware bereit zu stellen, bzw. einzelne essentielle Funktionsweisen praktisch zu zeigen. Für die Entwicklung eines tiefgehenden Methodenverständnisses für Computer ist eine Simulation daher ein wichtiges Hilfsmittel. Der Einsatz von Simulationstools zur Visualisierung ist nicht neu, jedoch sind Simulationstools nicht in adäquater Form im Kontext der Systemprogrammierung vorhanden. Unser entwickeltes Simulationstool SysprogInteract soll hierbei entscheidende Unterstützung anbieten.

SysprogInteract bietet interaktive Visualisierungen für die Darstellung von Abhängigkeiten zwischen Software und einzelner Hardwarebauteile eines Computers. Hierbei stehen die Bauteile CPU, Arbeitsspeicher und Hauptspeicher im Vordergrund. Spezifischer wird eine Vielzahl von verschiedenen Algorithmen visualisiert, welche die Abarbeitung von Programmcode und Prozessen auf Computern und dessen Einfluss auf die einzelnen Hardwarebauteile darstellt. Abbildung 1 zeigt diese Abhängigkeiten und einige spezialisierten Visualisierungen von SysprogInteract (siehe C). Über das Panel A können die einzelnen Algorithmen  ausgewählt werden und eigene Konfigurationen der Parameter eingestellt werden. Diese Konfigurationen können als Datei abgespeichert werden, bzw. geladen werden, welches die experimentelle  Reproduzierbarkeit gewährleistet, sowie Hausabgaben und die Ausführung vorbereiteter Fallbeispiele ermöglicht. Panel B bietet zusätzlich die Möglichkeit, die einzelnen Schritte der Simulation anzeigen zu lassen, die Simulation zu pausieren und Schritte zurück zu gehen. Dies ermöglicht, sich den Lernstoff in Eigenregie und in eigener Geschwindigkeit experimentell anzueignen. Um die Güte der verschiedenen Algorithmen einzuordnen werden zusätzliche Statistiken angezeigt (siehe Abbildung 2).

Benutzeroberfläche eines Programms mit Simulationsparameter links (A), laufenden Prozessen in der Mitte (B) und anstehenden Prozessen rechts in der RAM queue (C)
Abbildung 1: Screenshot von SysprogInteract

 

Abbildung 2: Darstellung von Gütekriterien eines Scheduling Algorithmus über die Zeit.

Neben Visualisierungen für einzelne Komponenten ermöglicht SysprogInteract auch die zeitgleiche Darstellung mehrerer Komponenten. Beispielsweise: je nach Schedulingalgorithmus und Memoryplacement werden sowohl Prozesse in verschiedener Reihenfolge ausgewählt und an verschiedene Stellen im Speicher abgelegt. Hierbei kann es zu Problemen bei der Ausführung kommen, wenn z.B. keine freien Speicherbereiche mehr frei sind. SysprogInteract bietet daher einen Dialog zum interaktiven Auflösen von solchen Ressourcenmanagementproblemen. Studierende können selbst entscheiden wie mit auftretenden
Problemen umgegangen wird und können verschiedene Szenarien und dessen Auswirkungen durchspielen.

Die Darstellung solcher Zusammenhänge ist essentiell, um die einzelnen Kapitel der Vorlesung zu verknüpfen und damit ein grundlegendes Verständnis aufbauen zu können.

Wie Sie Simulationstools in einer Massenveranstaltung integrieren

Der Bedarf an gut ausgebildeten Informatiker*innen wächst derzeit stetig. Um diesen Fachkräftemangel entgegenzuwirken, gibt es glücklicherweise eine steigende Anzahl Studierender, die sich für den Berufszweig interessieren und ein Studium an der TU Berlin beginnen. Derzeit verzeichnen wir bereits mehr als 800 Studierende für unseren Kurs zur Systemprogrammierung. Eine adäquate Betreuung für einzelne Studierende bleibt daher für uns die große Herausforderung. Digitale Simulationstools wie SysprogInteract bieten hier einen wichtigen Baustein, um den Lernfortschritt trotz schlechter Betreuungsrelation entgegenzuwirken. Wie integriert man jedoch Simulationstools in solch eine Massenveranstaltung?

Ein Simulationstool sollte so viele Inhalte einer Veranstaltung wie möglich abdecken (Tabelle 1 zeigt dies für den Kurs Systemprogrammierung und SysprogInteract). Dies bietet die Möglichkeit, Zusammenhänge über den gesamten Lehrstoff hinweg zu verknüpfen. Das repetitive Wiederholen und Aufrufen eines einzigen Tools kann den zukünftigen Expert*innen einen zusätzlichen Ankerpunkt geben, wo sie jederzeit in Eigeninitiative zurückgreifen können. Vorab ist eine Einführung ins Simulationstool wichtig. Hierzu erarbeiteten wir Videos, die verschiedene Nutzungsszenarien zeigen. Die gleichzeitige Nutzung von SysprogInteract sowohl innerhalb unserer Vorlesungen, im Übungsbetrieb, sowie in Hausübungen ist wichtig, um den Studierenden konsistente Darstellungen zu zeigen und mögliche Verwirrungen des komplexen Lehrstoffes zu vermeiden.Damit SysprogInteract in diesen verschiedenen Formaten verwendet werden kann, haben wir uns entschieden, das Tool als webbasierte, mobile Anwendung mit Javascript zu entwickeln. Dadurch ist eine Nutzung für verschiedene Endgeräte wie Smartphones, Tablets, Laptops gewährleistet. Zudem gibt es die Möglichkeit, eine Offlineversion zu verwenden, da sich die Anwendung als Komplettpaket herunterladen lässt. Dies ist vor allem sinnvoll, wenn in Räumlichkeiten mit schlechtem Internetempfang unterrichtet wird.Die Visualisierungen von SysprogInteract basieren auf verschiedene Darstellungen aus Lehrbüchern und existierenden Vorlesungsfolien und wurden mit interaktiven Elementen erweitert. Dadurch wird z.B. das Ein- und Ausblenden von Teilgrafiken ermöglicht und es können weitere Informationen angezeigt werden, wenn man beispielsweise mit der Maus auf Speicherplatzbereiche klickt. Den Lehrkräften bietet es die Chance, Foliensätze nicht im großen Umfang abändern zu müssen, sondern auf bestehende Diagramme zurückgreifen und um zusätzliche Darstellungen von SysprogInteract erweitern zu können.

Kapitel SysprogInteract
Rechnerarchitekturen und Betriebssysteme
Prozesse und Threads X
Scheduling X
Synchronisation
Ressourcenmanagement X
Speicherverwaltung X
Dateisysteme X
Sicherheit

Tabelle 1: Übersicht der Simulationen für die einzelnen Kapitel des Kurses Systemprogrammierung.

Was zur nachhaltigen Umsetzung notwendig war

Die nachhaltige Entwicklung des Simulationstools stand von Anfang an im Vordergrund. Hierbei wurde maßgeblich in drei Phasen gearbeitet: Anforderungsanalyse-, Entwicklungs-, & Integrationsphase. In der Anforderungsanalysephase wurden existierende Simulationstools sowie oft genutzte Visualisierungen in dem Betriebssystemlehrbereich angeschaut. Hieraus entwickelten wir über Papierprototypen die ersten Einzelvisualisierungen und steckten den Gesamtumfang des Tools ab. Die Entwicklungsphase wurde mit agilen Techniken umgesetzt. Im Vordergrund war das iterative Weiterentwickeln von SysprogInteract mit wiederholten Benutzbarkeitstests innerhalb des Lehrbetriebs. Durch das direkte und wiederholte Feedback der Studierenden konnte eine hohe Akzeptanz für das Simulationstool erreicht werden. In der letzten Phase wurde vor allem auf die didaktische Integration in die Massenveranstaltung geachtet. Hierzu musste weiteres Material wie Einführungsvideos und Beispiel Übungsaufgaben erstellt werden.

Durch unsere Designentscheidungen hinsichtlich der Entwicklung einer mobilen Anwendung mit Hilfe von Javascript, konnte zudem direkt eine Vielzahl von verschiedenen Endgeräten angesprochen und eine gleichzeitige parallele Nutzung von vielen Personen ermöglicht werden. Zudem haben wir von Anfang an die Strategie verfolgt, SysprogInteract Open Source zu stellen. Damit ist der Programmcode öffentlich verfügbar, welches die zukünftige Weiterentwicklung und Nutzung ermöglicht – auch von externen Schulen/Hochschulen/Universitäten. Wir freuen uns daher auf rege Nutzung und würde Sie gerne einladen SysprogInteract hier auszuprobieren: https://dos-group.github.io/SysprogInteract/

Unsere Lernapp erreicht eine gute Benutzbarkeit, welches wir anhand von Studien mit einem hohen System Usability Score nachgewiesen haben. Die Studien und unsere Erfahrungsberichte vom Einsatz von SysprogInteract haben wir zudem bei der ASEE und SEFI veröffentlicht. Studierende verwenden unser Simulationstool vermehrt vor Abschlusstests, welches uns die Relevanz für das Selbststudium zeigt. Die aktuelle, durch Corona geprägte Zeit zeigt ebenfalls die Notwendigkeit solch digitaler Lernangebote. Wir hoffen, dass wir hierzu entscheidend durch unsere Erfahrungen für zukünftige Entwicklung und Anwendung von Simulationstools beigesteuert haben.

Weiterführende Links und Veröffentlichungen

Complex and Distributed IT Systems

Leitende*r:

Prof. Dr. Odej Kao
Secr. TEL 12-5
Ernst-Reuter-Platz 7
10587 Berlin
odej.kao@tu-berlin.de

Projektbeteiligte:

Prof. Dr. Odej Kao
M. Sc. Florian Johannes Schmidt