Jupyter Notebooks in der Lehre – Bausteine für digitales forschendes Studieren, Reproducable Science und Data Literacy

Inhaltsverzeichnis

Dies sind nur zwei Anwendungsbeispiele für den Einsatz von Jupyter in der Lehre. Studierende und Lehrende können mit Hilfe von Jupyter Notebooks in einer gemeinsamen, webbasierten Umgebung interaktiv programmieren, Daten analysieren, ganze Texte schreiben, die Ergebnisse direkt in den Notebooks visualisieren und auswerten.

Diese Vielseitigkeit der Open-Source-Software macht Jupyter[1] besonders wertvoll für Fächer wie Data Science, Mathematik und Naturwissenschaften. Aber auch in den Wirtschaft-, Sozial- und Geisteswissenschaften wird die Plattform zunehmend genutzt, um komplexe Themen greifbar zu machen.

Seit dem Wintersemester 2023 steht erstmals allen Angehörigen der Universität Bremen eine Jupyter Cloud für die Lehre zur Verfügung. Ein wichtiger Baustein, wenn es um die Etablierung von Themen, wie Data Literacy, Reproducable ScIence und forschenden Studieren geht. In diesem Artikel stellen wir Jupyter und insbesondere den Cloudservice von Jupyter an der Universität Bremen, JupyterHub[2], vor, präsentieren Einsatzmöglichkeiten und Erfahrungsberichte vor Ort.


[1] Projektseite von Jupyter: https://jupyter.org/ (abgerufen am 13.11.2024)

[2] JupyterHub an der Universität Bremen https://jupyter.uni-bremen.de (abgerufen am 13.11.2024)

Vor- und Nachteile

VorteileNachteile

Part of the bigger picture

Die Welt von Jupyter

In der Welt von Jupyter sind die Notebooks das zentrale Element. Wie im ersten Abschnitt beschrieben, sind sie interaktiv: Die Interaktion findet in den Zellen statt, von denen beliebig viele in ein Jupyter-Notebook eingebaut werden können. In die Zellen können Text, Code oder Markdown-Befehle zur Formatierung von Text geschrieben werden. Durch die Tastenkombination „SHIFT+ENTER“ wird der Inhalt einer Zelle ausgeführt und das Ergebnis im Notebook angezeigt. Dies kann eine einfache Berechnung, die Auswertung und Visualisierung einer Datenreihe oder formatierter bzw. unformatierter Text sein. Zelle an Zelle ergibt sich so eine fortlaufende Programmierung, eine thematische Abhandlung oder bereits die Vorlage für eine Veröffentlichung.

Jupyter-Notebooks werden im sogenannten JSON-Format gespeichert. „JSON“ steht für JavaScript Object Notation und ist besonders in Webanwendungen gängig, wo es zur Datenübertragung zwischen Server und Client dient, etwa in APIs (Application Programming Interfaces[1]) und Webservices. JSON ist außerdem von Menschen gut lesbar und lässt sich leicht bearbeiten.

Die Notebooks lassen sich so einfach teilen und inhaltlich weiterbearbeiten. Da in Jupyter-Notebooks auch der Code enthalten ist, mit dem Visualisierungen, Graphen und Ergebnisse generiert werden, können nach einer Weitergabe problemlos neue Forschungsschwerpunkte gesetzt werden. Die Bereitstellung des zugrunde liegenden Codes fördert außerdem die Transparenz in der wissenschaftlichen Arbeit und zeigt den Weg, wie Ergebnisse erzielt wurden – ein wesentlicher Aspekt in Forschung und Lehre.

Jupyter ist ein Akronym, das sich aus den Programmiersprachen Julia, Python und R zusammensetzt. Jupyter entstand 2014 aus dem IPython-Projekt[2] und ist als Open-Source-Software programmiersprachen-agnostisch. Laut Projektwebseite werden bis zu 40 gängige Programmier- und Skriptsprachen mit entsprechenden Paketen und Bibliotheken unterstützt. Konkret heißt das, dass man in Jupyter-Notebooks in verschiedenen Programmiersprachen arbeiten kann – sogar in mehreren Sprachen innerhalb desselben Notebooks. Python ist aktuell besonders populär und hat sich weltweit zu einer der beliebtesten Programmiersprachen entwickelt[3]. Diese Popularität hängt mit dem starken Wachstum im Bereich künstlicher Intelligenz, maschinellem Lernen und Data Science zusammen, aber auch mit der steigenden Anzahl von Datenanalyst:innen, die Jupyter-Notebooks und Python nutzen.

Die Einführung von JupyterLab im Jahr 2018 als erweiterte Arbeitsumgebung für Jupyter-Notebooks könnte zu dieser wachsenden Nutzerzahl beigetragen haben. JupyterLab bietet zusätzliche Funktionen, die über die eines klassischen Notebooks hinausgehen, denn hier können mehrere Notebooks, Terminals, Textdateien und andere Medien parallel geöffnet und bearbeitet werden. Dank Drag-and-Drop lässt sich der Arbeitsbereich individuell gestalten, und Aufgaben können auf verschiedene Fenster verteilt werden.

Mit einem verbesserten visuellen Dateiverzeichnis behalten die Nutzer:innen den Überblick. Gängige Dateiformate wie CSV (in einer verbesserten Tabellenansicht), TXT, DOCX und PDF werden angezeigt und können bearbeitet werden. Auch Bilder und Videos lassen sich einfügen und betrachten. Syntax-Highlighting und Autovervollständigung erleichtern das Programmieren und machen es effizienter. Erweiterungen können über den Extension Manager einfach nachinstalliert werden, und es ist möglich, in Echtzeit kollaborativ zu arbeiten.

Die Cloud-Anwendung von Jupyter heißt JupyterHub und wurde bereits 2015 eingeführt. Sie unterstützt die Nutzung innerhalb von Schulen, Universitäten, Unternehmen und Forschungseinrichtungen. JupyterHub ermöglicht mehreren Nutzer:innen den Zugriff auf eine Jupyter-Installation über eine Webseite. Jede:r Nutzer:in erhält eine eigene, isolierte Jupyter-Notebook-Umgebung, die unabhängig von den Umgebungen anderer läuft, nicht lokal installiert werden muss und deren Daten und Arbeitssitzungen auch nach dem Abmelden oder Neustarten des Servers verfügbar bleiben.

Wie andere Cloud-Anwendungen verfügt JupyterHub über eine zentrale Administration, die Nutzer:innen, Berechtigungen und Ressourcen (CPU-, Speicher- und Netzwerkauslastung) verwaltet. Es können Gruppen für Klassen, Teams oder Forschungsgruppen eingerichtet und individuell gestaltet werden.

Verschiedene Authentifizierungsmethoden (z. B. OAuth, PAM, LDAP*[4] und andere) stehen zur Verfügung, sodass JupyterHub an die Bedürfnisse der jeweiligen Einrichtung angepasst und skaliert werden kann. Die Ausführung der Notebooks erfolgt in Containern (z. B. Docker oder Kubernetes*), was eine flexible Skalierung ermöglicht, sodass viele Benutzer:innen gleichzeitig arbeiten können, ohne sich gegenseitig zu beeinträchtigen.

In diesem Abschnitt haben wir die wesentlichen Funktionen und Entwicklungen von Jupyter – dem zentralen Element Jupyter-Notebooks, der erweiterten Umgebung JupyterLab und der Cloud-Anwendung JupyterHub – zusammengefasst. Diese flexible Open-Source-Lösung bietet vielfältige Anpassungsmöglichkeiten. In den folgenden Abschnitten gehen wir auf die konkrete Umsetzung an der Universität Bremen ein.


[1] Eine API (Application Programming Interface) ist eine Schnittstelle, die es verschiedenen Softwareanwendungen ermöglicht, miteinander zu kommunizieren und Daten oder Funktionen auszutauschen, ohne dass die internen Details der jeweiligen Programme bekannt sein müssen.

[2] Das IPython-Projekt https://ipython.org/ (abgerufen am 13.11.2024)

[3] GitHub – Top 50 Programming Languages Globally: https://innovationgraph.github.com/global-metrics/programming-languages (abgerufen am 13.11.2024)

[4] Die mit Asterisk gekennzeichneten Verfahren und Eigenschaften kamen bei der Installation von Jupyter an der Universität Bremen zu Einsatz.

Vom InnovationLab in die ganze Universität – Anwendungsbeispiele für den Einsatz von Jupyter

Im Projekt SKILL-UB[1] sind in verschiedenen Kleinprojekten, sogenannten InnovationLabs, nachhaltige und später skalierbare Maßnahmen ergriffen worden, um die entsprechenden Fachbereiche oder Studiengänge in Hinblick Digitalisierung, kollaboratives Studieren und Studienzentriertheit weiterzuentwickeln.

Jupyter war ein zentraler Aspekt des InnovationLabs des Fachbereichs Geowissenschaften. Jupyter wurde hier schon von Prof. Dr. Heiko Pälike in seinen Veranstaltungen eingesetzt, der der federführende Antragssteller war[2]:

[Einschub von Heiko Pälike: Seit 2021 sind in diesem Fachbereich Programmierung, Datenanalyse, die Erstellung wissenschaftlicher Abbildungen und Zeitreihenanalyse integrale Bestandteile der Module „Digital Competences“ im Bachelorstudiengang Marine Geosciences und Geowissenschaften sowie „Advanced Digital Competences“ im Masterstudiengang Applied Geosciences und Marine Geosciences.

Prof. Dr. Heiko Pälike und Dr. Ulrike Wolf-Brozio (v.l.) stellen Ihr InnovationLab beim SKILL-Vernetzungstreffen am 22. November 2022 vor. (Foto: Melanie Buschmann)

Um diese Lehrziele zeitgemäß zu erreichen, beantragte ich für den Fachbereich die Einrichtung und Erprobung einer uniweiten Jupyter-Instanz. Ich hatte in meiner Lehre die Open-Source-Software schon eingesetzt und im kleinen Stil für Meine Veranstaltung eine Nutzerverwaltung aufgesetzt. Somit konnte ich erste technische und didaktische Erfahrungen beitragen. ]

In Zusammenarbeit mit dem ZMML[3], dem Zentrum für Multimedia in Lehre, wurde nun ein JupyterHub, ein das Multi-User-System von Jupyter, aufgesetzt und in Kooperation mit dem Zentrum für Netze, ZfN, mit einer Anmeldung über Shibboleth versehen. Auf diese Weise können sich nun alle Angehörigen der Universität mit ihrem Uni-Account auf dem JupyterHub anmelden. Aus Projektmittel wurden zudem leistungsstarke Server angeschafft, so dass eine große Anzahl von Nutzer:innen gleichzeitig auf dem Hub arbeiten können.

 [Möglicher zweiter Teil von Heiko, was wurde nun im Fachbereich 5 umgesetzt, was war jetzt möglich, Schulungen, Lehrmaterialien/ Skalierung im Fachbereich 5. Beispieltext: Von Studierenden des Fachbereichs wurden erste Materialien entwickelt und den Lehrenden zur Verfügung gestellt. In mehreren Workshops habe ich meine Erfahrungen mit dem Tool mit meinen Kollegen geteilt, die Vor- und Nachteile diskutiert. Die Erleichterungen überwiegen den Aufwand auf die Umstellung auf JupyterNotebooks und vor allem langfristig.]

Auch für das InnovationLab Digital Data Literacy & Analysis (DiDaLiA)[4] des Fachbereichs 9, ZeMKI, wurde Jupyter eine Alternative zu kommerziellen Tools. Neben einer umfangreichen Einführung in die quantitative Datenanalyse, R und RStudio [5], wird in den Modulen die Jupyter-Umgebung genutzt.

[von Stefanie Geise, Cornelius Puschmann, Ziele des Kurses, Einsatz und Erfahrungen im speziellen mit Jupyter]

Parallel zu den InnovationLabs wird Jupyter auch schon in anderen Fachbereichen eingesetzt. Zum Beispiel in einer Übungsveranstaltung des Fachbereichs 4 Maschinenbau und Vermessungstechnik zur Einführung in Python

[Hier eine Beschreibung von Daniel Weerts, Inhalt seiner Veranstaltung, Herausforderungen, Vorteile]

Im Fachbereich 7 werden ebenfalls mehrere Veranstaltungen mit der Unterstützung von Jupyter gestaltet.

Insgesamt findet Jupyter schon in 7 Fachbereichen der Universität Anwendung (Stand September 2024), ein Zeichen dafür, dass es hier nicht nur um die schlichte Erwerbung von Programmierkenntnissen geht.


[1] Das Projekt SKILL-UB: https://www.uni-bremen.de/skill (abgerufen am 13.11.2024)

[2] Das InnovationLab des Fachbereich 5, Geowissenschaften: https://www.uni-bremen.de/skill-ub/innovation-labs-1/innolab-fachbereich-5 (abgerufen am 13.11.2024)

[3] Zentrum für Multimedia in der Lehre (ZMML): https://www.uni-bremen.de/zmml (abgerufen am 13.11.2024)

[4] InnovationLab des ZeMKI, https://www.uni-bremen.de/skill-ub/innovation-labs-1/innolab-fachbereich-9

[5] „Einführung in quantitative Forschungsdesigns und Datenanalyse“: https://pzerrer.pages.git.zmml.uni-bremen.de/einfuehrung_datenanalyse_in_r/Home.html

Jupyter-Profile machen die Lehre individuell gestaltbar

Um den Anforderungen in der Lehre Rechnung zu tragen, wurde die Möglichkeit entwickelt individuelle Lehrprofile anzulegen. Die Lehrenden legen fest, welche der vielen möglichen Programmiersprachen und Pakete verwendet werden. Mit Hilfe von GitLab können auch Materialien für ein Lehrprofil zur Verfügung gestellt werden. Eine Verknüpfung über Stud.IP erlaubt eine Teilnehmerverwaltung für das entsprechende Profil und das in Gruppen in den Notebooks kollaborativ in Echtzeit gearbeitet werden kann.

Um ein Profil anzulegen benötigen Sie ein paar Voraussetzungen. Hier eine kurze Checkliste bevor Sie mit der Erstellung beginnen:

  • Sie müssen Lehrende:r sein und benötigen eine Veranstaltung auf Stud.IP, welches in einem bestimmten Semester läuft. Sollten Sie bisher keine Lehrveranstaltung haben, sprechen Sie den/die LV-Planer:in in Ihrem Bereich an.
  • Die Veranstaltung solle einen aussagekräftigen Namen haben(deutsch/englisch)
  • Eine Kurzbeschreibung für die Veranstaltung (deutsch/englisch)
  • Welche Programmiersprache(n) wollen Sie nutzen (mindestens eine ist notwendig)
  •  Welche Pakete möchten Sie Installieren und welche sonstigen Erweiterungen benötigen Sie
  • Wollen Sie Dateien via eines GitLab Repositories zur Verfügung stellen, dann benötigen Sie
    •   den Link zum Gitlab Repository  
    •   und den Access Token zum Gitlab-Repository (Optional, nur wenn Repository auf private gestellt ist) 

Überprüfen Sie also zunächst, ob Sie in Stud.IP in der gewünschten Veranstaltung als Lehrende:r eingetragen sind. Nur Lehrende haben aktuell die Möglichkeit eigene Profile anzulegen und diese mit einer Veranstaltung in Stud.IP zu verknüpfen.

Lehrende können Tutor:innen berechtigen, erstellte Profile zu bearbeiten, neu zu bauen und freizugeben. Die Verknüpfung erlaubt eine Verwaltung der Teilnehmer:innen.

Wenn das Profil nicht öffentlich ist, können so nur die Teilnehmer:innen der Veranstaltung das Profil nach dem Einloggen sehen und nutzen. Ein weiteres Feature ist, dass Sie mit Hilfe eines Git-Repositories Lehrmaterialien im Profil zur Verfügung stellen können.

Ein aktuelle Anleitung zur Erstellung eines Profils finden Sie entweder auf den Seiten des ZMML zur JupyterHub[1] oder in  der FAQ-Seite[2] auf dem JupyterHub.

Die Erstellung von Profilen nimmt Ihnen viele Verwaltungsaufgaben ab. Die Profile können auch danach wieder verändert, für das neue Semester gebaut werden und ergänzt werden.

Wenn Sie in Ihrem Studiengang oder Fachbereich keinen Zugang zu einem GitLab haben sollten, können Sie das GitLab von ZMML nutzen. Aktuell erfolgt der Zugang noch über eine Whitelist.

SHIFT+ENTER – los!

[2 GRAFIKEN]


[1] Informationen zu JupyterHub auf der Seite des ZMML:
   https://www.uni-bremen.de/zmml/kompetenzbereiche/studip-ublogs-co/jupyterhub-an-der-universitaet-bremen

[2] FAQ-Seite des JupyterHubs: https://jupyter.uni-bremen.de/hub/faq

„Hallo Welt!“ – Mal eben

„Das war eigentlich nicht das, was ich studieren wollte.“ oder „Ich will eigentlich nicht so viel am Computer machen“ könnten vielleicht Gedanken sein, die Studierende mancher Fachrichtungen haben. Sie haben sich für einen Studiengang entschieden, der auf den ersten Blick nichts mit Programmierung oder Datenauswertung am Computer zu tun hat, sehen sich dann aber genau damit konfrontiert. Die Lernkurve wird plötzlich sehr steil. Denn bevor man überhaupt inhaltlich loslegen kann, müssen erstmal die technischen Randbedingungen eingerichtet werden. Dies stellt dann häufig nicht nur Studenten und sondern auch Lehrende zu Beginn der Veranstaltung vor Herausforderungen.

Die Kohorten, die nun ins Studium starten, sind häufig mit Tablets und Smartphones groß geworden und nutzen diese auch für Ihr Studium. Hierfür existieren Lösungen wie zum Beispiel Juno, Pythonista, Pydroid oder GoogleColab. Die Apps und Angebote eignen sich allerdings entweder nicht für komplexere Aufgaben oder werfen datenschutzrechtliche Fragen auf.

Kommen die Studierenden nicht weiter, müssen die Betreuer:innen häufig für verschiedene Programme und Betriebssysteme Problemlösungen parat haben und zwar jedes Semester aufs Neue.

Zusammenfassend lässt sich sagen, es gibt eine große Heterogenität bezüglich der technischen Affinität, Ausstattung und dem Vorwissen der Studierenden. Diese unterschiedlichen Startbedingungen können zumindest zum Teil mit Hilfe von Jupyter ausgeglichen werden, denn es nimmt die eigene Installation und Einrichtung durch die Student notwendig, einen Browser gibt es auf fast jeden webfähigen Gerät. Die Studierenden finden eine eingerichtete Programmierumgebung vor, die sie zwar auch kennenlernen müssen, aber in der schon alles funktioniert, was sie brauchen. Die Berechnungen finden auf den vom ZMML gehosteten Servern statt. Die Studenten und Studentinnen können erstmal mit de Inhalt der Veranstaltung beginnen.

Eine diskutierbare Frage ist, ob es nicht zum Lernprozess dazu gehört, sich eine eigene Programmierumgebung anzulegen und zum Laufen zu bringen.

Weiterführende Links:

JupyterHub an der Universität Bremen

Der JupyterHub an der Universität Bremen

https://jupyter.uni-bremen.de

Hosting und Informationen zu JupyterHub an der Universität Bremen

https://www.uni-bremen.de/zmml/kompetenzbereiche/studip-ublogs-co/jupyterhub-an-der-universitaet-bremen

Das InnovationLab Geowissenschaften an der Universität Bremen

https://www.uni-bremen.de/skill-ub/innovation-labs-1/innolab-fachbereich-5

Jupyter Usergroup an der Universität Bremen

https://elearning.uni-bremen.de/dispatch.php/course/details?sem_id=bffdb775e17267b656b00af110fc170f&again=yes

Jupyter Project Seite

Nach oben scrollen