Programming together with students during a course? Or run and discuss a prepared data analysis live? There are many occasions when lecturers would like to invite students to experiment on their own laptops or computers. It makes sense to set the technical hurdles for students as low as possible here. The majority of students have at least a modern browser on the end device of their choice (PC, laptop, tablet, …). This is where the server application JupyterHub comes in. It allows to run selected code editors in the browser. Students visit a URL announced at the beginning of the course, log in and can then immediately start working on the assignment in the browser. The installed code editor as well as the required data (program code, data sets, etc.) are already ready.
The code editors “Jupyter Notebook” and “JupyterLab” are used particularly frequently on JupyterHubs. Interactive worksheets (referred to as “Jupyter Notebooks”) are created and run in both. A Jupyter notebook usually contains explanatory texts and source code. Other elements, such as images, online maps, videos or graphics, can also be embedded via HTML and Markdown. The source code is executed directly in the document. The output of the code fragment (e.g. console output, table, visualizations or error messages) appears directly below it after execution.
On this page we compile content on the technical and didactical use of a JupyterHub in teaching, which should enable the individual institutes of the TUHH to independently install a JupyterHub and integrate it into existing courses.
On 11/30/2020, Marvin Kastner gave the talk “How to Talk About Machine Learning with Jupyter Notebooks” at the TUHH internal network meeting MLE@TUHH[mehr] .
Wofür benötige ich eine virtuelle Maschine?
Der Großteil des akademischen Personals an der TUHH verwendet Windows 10 als Betriebssystem. Die Server-Applikation JupyterHub kann allerdings nur auf einem Linux/Unix-basierten Betriebssystem installiert und ausgeführt werden – die Nutzenden greifen über einen Browser auf den JupyterHub zu, deren Betriebssystem ist irrelevant. Um diese Server-Applikation lokal ausprobieren zu können, wird empfohlen, eine virtuelle Maschine auf dem eigenen Rechner aufzusetzen. Auf der virtuellen Maschine kann dann eine aktuelle Linux-Distribution, bspw. Red Hat oder Ubuntu, installiert werden. Wenn Sie sich für die bereits vorkonfigurierte Variante The Littlest JupyterHub (tljh) entscheiden sollten, wird in der Installationsanleitung die Unterstützung auf die Linux-Distribution Ubuntu reduziert.
Virtuelle Maschine mit Hyper-V
Mit Hyper-V lassen sich virtuelle Maschinen unter Windows 10 einrichten. Hierfür werden Administrator-Rechte auf dem eigenen Rechner benötigt. Für die Einrichtung gibt es Anleitungen von Microsoft:
Sobald Sie Ubuntu in einer virtuellen Maschine gestartet haben, können Sie mit der eigentlichen Installation des JupyterHubs beginnen.
Installation des JupyterHubs
Die Server-Applikation JupyterHub kommt mit einer detaillierten Installationsanleitung und ist stark konfigurierbar. Für JupyterHub-Experten ist dies genau der richtige Weg. Für Neueinsteiger werden im Folgenden zwei einfache Standard-Konfigurationen vorgestellt:
- Für die vorkonfigurierte Variante The Littlest JupyterHub gibt es eine eigene Installationsanleitung. Sie können in der eigenen virtuellen Maschine einfach einen “Custom Server” aufsetzen.
- Für Fortgeschrittene gibt es auch eine docker-basierte Variante im GitLab der TUHH. Die Konfiguration wird im Insights-Artikel Prüfungen mit JupyterHub erläutert.
Diese Konfigurationen können dann an die Anforderungen, die sich aus dem Konzept der Lehrveranstaltung ergeben, weiter angepasst werden.
Den Instituten der TUHH bietet das Rechenzentrum an, virtuelle Server zu betreiben. Technische Details stellt das Rechenzentrum unter Services für Institute > Virtualisierung vor. Eine dort gehostete virtuelle Maschine läuft rund um die Uhr. Nehmen Sie Kontakt mit der oder dem DV-Beauftragten an Ihrem Institut auf, der eine virtuelle Maschine für Sie anfragen kann.
Firewall-Einstellungen
Die virtuelle Maschine befindet sich zunächst hinter einer der Netzwerk-Firewalls der TUHH und kann nur aus dem Institutsnetz über die IP-Adresse oder die URL erreicht werden. Die URL entspricht dem Muster http://servername.subdomain-des-instituts.tuhh.de. Sichern Sie die virtuelle Maschine zunächst ab, damit sie nicht von anderen missbraucht oder sogar übernommen werden kann. Online gibt es verschiedene Anleitungen, wie z. B. How to Secure a Linux Server oder How to Secure Your Server. Achten Sie bei der Anleitung bitte darauf, dass diese aktuell ist. Sie als Administrator der virtuellen Maschine sind verantwortlich für die Sicherheit. Nachdem die Maschine abgesichert ist, kann der oder die DV-Beauftragte eine Firewall-Freischaltung beantragen. Erst dann können Studierende auf die virtuelle Maschine zugreifen. Es wird empfohlen, den Zugriff auf das Campus-Netz zu beschränken. Damit ist der JupyterHub nur erreichbar, wenn sich die Nutzenden auf dem Campus befinden oder über VPN verbunden sind.
Absicherung über HTTPS
Standardmäßig ist der JupyterHub über das unverschlüsselte HTTP-Protokoll erreichbar. Innerhalb des Netzwerks der TUHH können also Unbefugte den Netzwerkverkehr mitlesen und manipulieren. Moderne Browser warnen die Nutzenden davor, über HTTP ihre Anmeldedaten zu verschicken, weil Passwörter ausgespäht werden können. Um die Sicherheit zu erhöhen (und die Warnmeldung zu vermeiden), lässt sich ein SSL-Zertifikat auf der virtuellen Maschine mit dem JupyterHub installieren. Dafür wird zunächst beim Rechenzentrum über die DV-Beauftragte oder den DV-Beauftragten ein Antrag auf ein SSL-Zertifikat gestellt. Danach installieren Sie das SLL-Zertifikat für den JupyterHub. Dafür gibt es eine Anleitung für die traditionelle Konfiguration und für The Littlest JupyterHub,
Hier werden Erfahrungsberichte rund um Jupyter Notebooks und JupyterHub an der TUHH aufgeführt. Falls Sie selbst bereits mit Jupyter Notebooks Erfahrungen gesammelt haben, kontaktieren Sie gerne Marvin Kastner! Gerne nehmen wir auch Ihre Erfahrungen in die Liste auf.
- Das Institut für Biomedizinische Bildgebung bietet Vorlesungen zu Computergraphik und numerischen Methoden der medizinischen Bildgebung an. In den begleitenden Übungen wird unter anderem Jupyter Notebooks genutzt, um numerische Algorithmen mit der Open Source Programmiersprache Julia nachzuimplementieren und anzuwenden. Die Studierenden lernen so, mathematische Formalismen in Computerprogramme umzusetzen und den Umgang mit Programmbibliotheken und einer Vielzahl von Datenformaten. Die Notebooks helfen bei der ausführlichen Beschreibung der Lerninhalte und Lernziele und werden so gestaltet, dass die Studierenden selbständig ihre Fortschritte evaluieren können. Die Designideen werden in diesem Blogbeitrag erläutert
- Das Institut für Kommunikationsnetze verwendet Jupyter Notebooks mit dem Editor JupyterLab in der Übung des Moduls “Traffic Engineering”. In den Jupyter Notebooks werden Warteschlangensysteme simuliert und die mit der Simulation gewonnenen Daten dann visualisiert. Das Ergebnis wird außerdem mit einer analytischen Lösung verglichen. Auf dem Poster wird beschrieben, wie Jupyter Notebooks beim Erreichen der Lernziele hilft.
- Das Institut für Kunststoffe und Verbundstoffe analysiert Eigenschaften von verschiedenen Polymeren mithilfe von Jupyter Notebooks. Den Studierenden wird so die Materialcharakterisierung mit aktueller Open Source Software vermittelt. Nebenbei erlernen und vertiefen die Studierenden den Umgang mit der Skriptsprache Python. Dem Ansatz des forschenden Lernens folgend werden Lehrinhalte interaktiv aufbereitet. Eine exemplarische Umsetzung wird auf dem Poster skizziert.
- Das Institut für Maritime Logistik beschreibt im Digitalen Freischwimmer den Einsatz von Jupyter Notebooks im Modul “Maschinelles Lernen in der Logistik”. Zum Konzept gehört, dass die erworbenen Fähigkeiten auch abgeprüft werden. Die gesammelten Erfahrungen mit Jupyter Notebooks in der Prüfung inklusive einer Beispiel-Implementierung sind auf der Instituts-Homepage beschrieben.
- Am Institut für Quantitative Unternehmensforschung und Wirtschaftsinformatik ist die Arbeit mit Python für das exakte und heuristische Lösen linearer und (gemischt-)ganzzahliger Probleme sehr nützlich. Um Studierende ohne ausreichende Programmierkenntnisse auf Seminar- und Abschlussarbeiten vorzubereiten, werden mit Jupyter Notebooks Schritt für Schritt mathematische Modelle aufgebaut und am Ende mit Optimierungssoftware gelöst. Der Mehrwert der Jupyter Notebooks liegt darin, dass sich ausführbarer Code und die dazugehörigen erklärenden Texte übersichtlich im gleichen Dokument befinden.
Der Autor
Technische Unterstützung
Wenn es mindestens 4 Interessenten gibt, können wir einen gemeinsamen Hackerspaces organisieren. An dem Termin werden wir zunächst die Standard-Installation von JupyterHub lokal auf dem Arbeits-Laptop durchführen. Sobald wir eine funktionierende lokale Installation haben, können wir dort gemeinsam verschiedene Features ausprobieren. Je nach Lehrveranstaltung können unterschiedliche Features und Erweiterungen interessant sein. Für den tatsächlichen Einsatz in einer Lehrveranstaltung wird eine Installation des JupyterHubs auf einem Server (z. B. einer virtuellen Maschine des Rechenzentrums) benötigt. Die hier benötigten Schritte können ebenfalls gemeinsam besprochen werden.