Jupyter Notebooks

Gemeinsam mit Studierenden während einer Lehrveranstaltung programmieren? Oder eine vorbereitete Datenanalyse live ausführen und besprechen? Es gibt viele Anlässe, zu denen Dozierende die Studierenden zum Experimentieren am eigenen Laptop bzw. Computer einladen möchten. Es bietet sich an, hier die technischen Hürden für die Studierenden so niedrig wie möglich anzusetzen. Der Großteil der Studierenden verfügt auf dem Endgerät ihrer Wahl (PC, Laptop, Tablet, …) zumindest über einen modernen Browser. An dieser Stelle setzt die Server-Applikation JupyterHub an. Sie ermöglicht es, ausgewählte Code-Editoren im Browser auszuführen. Die Studierenden besuchen eine zu Lehrveranstaltungsbeginn bekannt gegebene URL, loggen sich ein und können danach sofort im Browser mit der Bearbeitung der Aufgabe beginnen. Der installierte Code-Editor ebenso wie die benötigten Daten (Programm-Code, Datensätze etc.) liegen schon parat.

Besonders häufig werden auf JupyterHubs die Code-Editoren “Jupyter Notebook” und “JupyterLab” eingesetzt. In beiden werden interaktive Arbeitsblätter (als “Jupyter Notebooks” bezeichnet) erstellt und ausgeführt. Ein Jupyter Notebook enthält meist Erklär-Texte und Quellcode. Über HTML und Markdown können auch weitere Elemente, wie z. B. Bilder, Online-Kartenmaterial, Videos oder Grafiken, eingebettet werden. Der Quellcode wird direkt im Dokument ausgeführt. Die Ausgabe des Code-Fragments (z. B. Konsolenausgabe, Tabelle, Visualisierungen oder Fehlermeldungen) erscheint nach Ausführung direkt darunter.

Auf dieser Seite stellen wir Inhalte zum technischen und didaktischen Einsatz eines JupyterHubs in der Lehre zusammen, die es den einzelnen Instituten der TUHH ermöglichen sollen, eigenständig einen JupyterHub zu installieren und diesen in bestehende Lehrveranstaltungen zu integrieren.

NeuigkeitenEigene VM einrichtenVM beim RZ einrichtenErfahrungen an der TUHH

Am 16.03.2021 fand der Workshop “Einführung in Jupyter Notebooks” an der Graduiertenakademie der TUHH statt. Dieser Workshop richtet sich an Mitarbeiter*innen der TUHH, die Jupyter Notebooks in ihrem Arbeitsalltag, z. B. bei der eigenen Dissertation, einsetzen wollen [Ankündigung] [Workshop-Materialien].

Am 18.02.20210 fand der Workshop “Digitale Medien im Forschenden Lernen einsetzen” als Teil des Programms I3ProTeachING statt. Die Teilnehmenden diskutierten, welchen Mehrwert Jupyter Notebooks in der Lehre schaffen können.

Am 30.11.2020 hielt Marvin Kastner den Vortrag “How to Talk About Machine Learning with Jupyter Notebooks” im Rahmen des TUHH-internen Netzwerktreffens MLE@TUHH. Er stellte vor, wie Jupyter Notebooks zu einer transparenteren und nachvollziehbareren Forschung und Lehre führen können [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*innen-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*innen 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*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*in der virtuellen Maschine sind verantwortlich für die Sicherheit. Nachdem die Maschine abgesichert ist, kann die*der 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*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,

Weiterer Austausch

Bei Fragen rund um JupyterHub gibt es das Jupyter Community Forum. Hier kann Hilfe angefragt werden, Kontakt mit den Entwickler*innen hergestellt werden und es gibt in regelmäßigen Abständen virtuelle Telefonkonferenzen zum Austausch über Neuigkeiten im Ökosystem des Jupyter Projekts.

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.
  • Das Institut für Mathematik nutzt Jupyter Notebooks in der Forschung. Hierbei wird der SageMath-Kernel (als OpenSoure Alternative zu Mathematica) eingesetzt, um im Forschungsgebiet der Operator- und Spektraltheorie systematisch analytische Berechnungen durchzuführen und die Ergebnisse anschließend aufzubereiten. Die Erweiterung RISE wird zur Präsentation aktueller Forschungsergebnisse und der schnellen Vorstellung neuer Ideen verwendet.
  • Im Rahmen des Qualifizierungsprogramms Forschendes Lernen an der TUHH wurde am Institut für Nachrichtentechnik eine Lehrinnovation für die Vorlesung Digital Filters and Digital Signal Processing mit dem Titel Wo bin ich? Lokalisierung und Navigation erarbeitet. Ziel der Lehrinnovation war, theoretische Grundlagen auf eine praktische relevante Fragestellung anzuwenden. In dem Jupyter Notebook konnten Studierende Textaufgaben und theoretische Rechenaufgaben lösen. Ebenfalls programmierten die Studierenden dort Algorithmen, um aufwändige Handrechnung zu ersetzen. Die Algorithmen ließen sich direkt im Jupyter Notebook ausführen und debuggen. Ergebnisse und Erfahrungen dieses Praxisprojekts werden auf dem Poster zusammengefasst.
  • 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.
  • Am Institut für Softwaresysteme wurde über das Projekt Data Quality Explored (QuaXP) das Online-Lehrangebot der Hamburg Open Online University um einen Kurs zum Thema Datenqualität erweitert. Dies wurde mit einem Jupyter Book realisiert, über das mehrere Jupyter Notebooks als Seiten in einem Buch zusammengefasst werden. Das Buch ist online zugänglich und die Lernenden können die Codezellen direkt im Browser bearbeiten und ausführen. Die Jupyter Notebooks werden von den Lernenden verwendet, um die Qualität von drei Datensätzen in Python zu untersuchen und einige Experimente zum maschinellen Lernen mit weit verbreiteten Bibliotheken wie Pandas oder Plotly durchzuführen. Die Jupyter Notebooks verwenden auch interaktive Widgets aus der Bibliothek ipywidgets, die es den Studierenden ermöglicht, die Daten über eine kleine interaktive Oberfläche zu visualisieren und mit ihnen zu spielen, ohne zu programmieren. Der Kurs ist auf dieser Webseite frei zugänglich.

Der Autor

Marvin Kastner
Tel: 040 42878-4677
E-Mail senden

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.