„Überall Programmieren lernen“: Forschungsprojekt entwickelt flexible Lehr-, Lernumgebung für Informatik

20.12.2017: Studierende der Informatik erlernen das Programmieren im Regelfall in den hochschuleigenen Computerpools, also in Computerräumen, auf deren Geräten die für das Coden benötigten Programmierumgebungen und -sprachen schon fertig eingerichtet sind. Ein erster Schritt in Richtung Flexibilisierung dieser durch die Ortsgebundenheit relativ starren Lernarchitektur erfolgte an vielen Hochschulen durch die Verlagerung der Lernumgebung in die Cloud, für Baden-Württemberg den „bwLehrpool“. Ein Forschungsprojekt der Hochschule Mannheim ist nun noch einen Schritt weiter gegangen. Das Projekt „Überall Programmieren lernen (ÜPL)“ hat eine Infrastruktur und Services entwickelt, die die Rechner des Computerpools quasi virtualisiert und einen Online-Zugang für Studierende anbietet. Damit wird es möglich von überall auf die benötigte Software zuzugreifen und das Programmieren ortsunabhängig zu erlernen.

Neue technologische Möglichkeiten führen dazu, dass sich die Erwartungen der Studierenden an die Gestaltung der Hochschullehre verändern. So rechnen viele Studierende der Informatik inzwischen damit, dass sie das Programmieren auf ihren eigenen Geräten erlernen können. Die Realität sieht indes vielerorts noch anders aus. Das Lernen findet an festen Orten und festen Plätzen in den sogenannten ‚Computerpools‘ der Hochschule statt. Diese feste räumliche Verankerung hat ihren Grund. Durch die zentrale Verwaltung eines festen Rechnerbestands können Dozierende dafür Sorge tragen, dass alle für die Lehre benötigten Mittel vorhanden sind und die Studierenden auf die gleiche Lernumgebung zugreifen können. Denkbar wäre es zwar auch, dass sich die Studierenden die Programmier-Software auf ihren eigenen Geräten selbst installieren. Diese Lösung hat jedoch den Nachteil, dass die Studierenden dann individuell die Last der teils recht aufwändigen Wartungs-und Installationsarbeiten zu tragen hätten. Durch die Verwendung von Hardware der lehrenden Institution brauchen sich die Studierenden hingegen nicht um diese Aufgaben zu kümmern, bzw. kann sichergestellt werden, dass alle die gleichen Lernvoraussetzungen haben.

Mit dem vom Ministerium für Wissenschaft, Forschung und Kunst des Landes Baden-Württemberg geförderten Projekt „Überall Programmieren lernen“ wird nun versucht, die Vorteile der stationären Lösung mit der Beweglichkeit mobiler Medien zu verbinden. Dies geschieht, indem auf den Geräten, die die Studierenden mitbringen, ein zweites System parallel betrieben wird. Dieses System verwaltet die Software für jede Vorlesung bzw. Veranstaltung und kann diese bei Bedarf unaufwändig aktualisieren. Das heißt, das System installiert die Software, verwaltet Daten und macht einen schnellen Wechsel unterschiedlicher Softwarekonfigurationen möglich. Daten werden dabei mit einem zentralen Server synchronisiert und können bei Bedarf von jeder Plattform aus abgerufen werden. Zusätzlich steht für die professionelle Programmierung ein weiterer Serverdienst zur Verfügung: eine Versionsmanagement-Umgebung ähnlich wie GitHub.

Das Pilot-Projekt ÜPL verfolgt demnach das Ziel den Studierenden Aufwand abzunehmen und gleichzeitig den Professoren ein neues Tool mit an die Hand zu geben, mit dem sie für ihre Studierenden gezielt Softwarekomponenten auswählen können, die später auf deren eigenen Rechnern laufen. Im Einzelnen bietet diese Lösung die folgenden Vorteile:

  • Studierende können mit nur einem Klick auf einen Button ihre Software installieren und löschen sowie zwischen Modulen hin- und herwechseln.
  • Die Notwendigkeit von mehreren virtuellen Umgebungen wird aufgehoben.
  • Lehrende können gezielt Vorlesungsprofile erstellen, diese mit Software und Konfigurationen der Umgebung verknüpfen sowie Daten anfügen (Aufgaben, Projekte, vorbereitete Skripte).
  • Die Bindung an feste Rechner der Einrichtung wird aufgehoben und es können eigene Geräte verwendet werden.
  • Einfacher Raumwechsel für Studierende und Lehrende, was eine flexiblere Raumgestaltung und Raumnutzung ermöglicht.
  • Sie bietet die Freiheit an der Stelle weiter zu arbeiten, an der zuvor die Arbeit beendet wurde, egal ob es sich um das eigene Gerät oder ein Gerät der Bildungseinrichtung handelt (synchrone Daten unter den unterschiedlichen Geräten).

Daraus ergeben sich die folgenden Anforderungen:

  • Bestehender technischer Support muss erweitert werden.
  • Geräte müssen mit dem virtuellen Zweitsystem kompatibel sein.
  • Die Infrastruktur der Bildungseinrichtung muss auch von außen auf irgendeine Art und Weise zugänglich sein.
  • Software und Konfigurationen müssen von einem Experten in das System eingefügt und von Lehrenden dann zu einer Konfiguration hinzugefügt werden.

 

Abbildung 1 - Übersicht der Projektkomponenten. Links oben sind die externen Dienste wie der Datenserver und das Versionskontrollsystem für Daten abgebildet, die auf einem separaten Rechner betrieben werden können. Im Fokus steht der Block rechts oben, der ein virtuelles Betriebssystem (das Zweitsystem) darstellt und mit entsprechenden Systemdiensten ausgestattet ist, die die Verwaltung der Konfigurationen erst möglich machen. Der letzte Teil, links unten im Schaubild, zeigt eine Web-API Komponente, die alle Daten und Software für die virtuellen Systeme zugänglich macht und gleichzeitig eine Schnittstelle über den Browser anbietet, bei welcher Lehrende und IT-Experten die Software, Updates und die zugehörigen Daten verwalten können.

Verwaltung durch die Lehrenden

Die Verwaltung der Konfigurationen gestaltet sich für Lehrende ziemlich einfach, da diese lediglich Vorlesungskonfigurationen anlegen und die dazu gewünschte Software auswählen müssen:

Abbildung 2 - Vorlesungen anlegen oder verwalten

 

Abbildung 3 - Zugehörige Software auswählen und speichern

Danach können die Lehrenden ihre Studierenden veranlassen, die Software auf ihrem Zweitsystem zu installieren. Die hinterlegten Profile können auch genutzt werden, um daraus eine Umgebung für den bwLehrpool zu bauen. Dies setzt voraus, dass das Zweitsystem einmalig mit der Konfiguration installiert wird und dann in Form der virtuellen Maschine auf den Server des bwLehrpool-Systems hochgeladen wird.

Nutzung durch die Studierenden

Studierende nutzen die auf dem Zweitsystem vorinstallierte Konfigurationsanwendung (derzeit „ÜPL Config“ genannt) und suchen aus einer Liste von Vorlesungsprofilen die gewünschten Konfigurationen aus. Dabei reicht ein Klick um die hinterlegte Software zu installieren und die zugehörigen Daten zu überspielen:

Abbildung 4 - "ÜPL Config" auf den Geräten der Studierenden im Zweitsystem. Dies ist die Steuerungszentrale, in der Studierende ihre aktuelle Konfiguration auswählen und die zugehörige Software installieren können.

Durch das System wird also automatisch eine Kompatibilität gewährleistet, was zur Folge hat, dass sobald eine Konfiguration auf einem Rechner funktioniert, diese auch auf allen anderen Rechnern funktioniert, die mit diesem System ausgestattet sind.

Verwaltung der Softwarepakete und Konfigurationsskripte durch Admins

Administratoren müssen in der Web-Umgebung die Software, sowie Skripte zum Managen der Anwendungen und der Umgebung einpflegen. Der Aufwand für diesen Prozess kommt dem Aufwand einer Ersteinrichtung eines Betriebssystems gleich und kann je nach Komplexität unterschiedlich ausfallen:

Abbildung 5 - Skripte für die Installation, Entfernung und Konfiguration dieses Softwarepakets

 

Abbildung 6 - Im Softwarepaket hinterlegte Dateien werden angezeigt und neue Dateien können dazu hochgeladen werden

Hintergrundinformationen zum Projekt

Die Infrastruktur und Software wird an der Hochschule Mannheim im Rahmen des Förderprogramms „Digital Innovations for Smart Teaching - Better Learning“ unter dem Projektnamen „Überall Programmieren Lernen“ entwickelt. Die Förderung erfolgt seit dem 01.03.2017 (offiziell 01.10.2016) bis 31.03.2018.  

Das Projekt startete mit einer Evaluationsphase für unterschiedliche moderne Technologien, Virtualisierungslösungen und Betriebssysteme, sowie den rechtlichen und technischen Rahmenbedingungen. Im Anschluss an die Evaluationsphase wurden duch einen Projektmitarbeiter erste Prototypen der drei eigens für das Projekt entwickelten Komponenten erstellt und mit der Evaluation dieser Lösungen begonnen. Aus der Übersicht (Abb. 1) sind drei „Komponenten“ Bestandteil einer Eigenentwicklung. Diese Bestandteile sind die Verwaltungsanwendung (ÜPL Config), ein administrativer Systemservice (ProjectClient) und die Web-API mit dazugehöriger Seite für Dozierende sowie Administratorinnen und Administratoren. Bis zur Fertigstellung dieser Prototypen, durchliefen das Projekt und die Software mehrere Iterationen und wurden zum Zwecke der besseren Nutzbarkeit mehrfach geändert. Ergebnisse wurden dabei sowohl durch Probanden (Dozierende, Administratorinnen/ Administratoren und Studierende) einer Usability-Studie gewonnen, als auch durch den Einsatz der Software durch mehrere Lehrende in stichprobenartigen Veranstaltungen (Zweck: Test der Prototypen in 1-2 Zeitstunden).

Ausblick

Derzeit stellt die Hochschule Mannheim eine Testumgebung innerhalb des bwLehrpools der Einrichtung bereit, die erprobt werden kann. Die notwendigen Dienste und weitere externe Services werden durch die Hochschule Mannheim evaluiert und sind – aus Gründen der Sicherheit – vorläufig nur innerhalb der Hochschulinfrastruktur zugänglich. Code, Infrastruktur und andere Dokumente können durch andere Hochschulen und Einrichtungen auf GitHub (unter https://github.com/informatik-mannheim/UEPL) abgerufen und ohne für die Software anfallende Kosten betrieben werden. Zudem werden Anleitungen und Dokumentationen sobald wie möglich über eine Website (verknüpft mit dem GitHub Account) bereitgestellt.

Das virtuelle Zweitsystem kann von jeder Hochschule unter den geltenden Lizenzierungsbedingungen zusammengestellt werden. Alternativ bietet die Hochschule Mannheim das eigene Zweitsystem als virtuelle Arbeitsumgebung für alle Studierenden und Bildungseinrichtungen auf Anfrage kostenlos an. Als nächster Punkt auf der Liste der zu erledigenden Aufgaben steht der Support von anderen (kommerziellen) Betriebssystemen an, sowie die Integration von weiteren Diensten und die Erweiterung der Sicherheit auf Anwendungs- und Systemebene der eigens entwickelten Dienste, Applikationen und Webseiten.