TddL 2020 - Jupyter Notebook, JupyterHub und Nbgrader

(c) 2020/2021 Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever

Jupyter Notebook, JupyterHub und Nbgrader

Nik Klever

Wissenschaftlicher Leiter Projekt Digital und Regional

Fakultät für Informatik - Hochschule Augsburg

Inhalt

  1. Projekt OWL
  2. Jupyter Notebook
  3. JupyterHub
  4. Nbgrader - Framework
  5. Nbgrader - Management von Studierenden
  6. Nbgrader - Management von Assignments
  7. Nbgrader - Grading
  8. Ausblick
  9. Quellen - https://klever.hs-augsburg.de/nb/OWL

Projekt OWL - Offene digitale Werkzeuge in der Lehre

Dieses Projekt wurde 2017 initiiert um erste Initiativen für ein digitales Umfeld als Werkzeugkiste zum eigeninitiativen und selbstregulierenden Lernen zu entwickeln, auszutesten und anzuwenden. Dieses Projekt gliedert sich in 3 Teilprojekte:

  1. Teilprojekt Jupyter Notebook (Nik Klever) - siehe nachfolgend
  2. Teilprojekt PeerActivate (Michael Kipp, Philipp Rummelsberger) zur Erstellung einer ersten (Web-)Plattform als Prototyp eines Forums zum Einstellen von Aufgaben und Beispiellösungen sowie Piloteinsatz dieses Prototyps für Code-Abgaben in Javascript
  3. Teilprojekt Dynamisch generierte Aufgaben für Mathematik und Statistik (Stefan Etschberger, Stefan Jansen) zur Erstellung von dynamisch generierten Aufgaben und zur Einspielung in Moodle für eigenständige, wöchentliche Übungen für die Studierenden sowie zwei mal im Semester als Bonustest

Projekt OWL - Teilprojekt Jupyter Notebook

Im Rahmen dieses Teilprojekts wurden Jupyter Notebooks für die Studierenden des Studiengangs Systems Engineering in den Veranstaltungen Informatik 1 und Informatik 2 (Programmieren mit Python) des 1. und 2. Semesters über einen JupyterHub sowie dem auf Jupyter Notebook und JupyterHub aufsetzenden Framework Nbgrader entwickelt und zur Verfügung gestellt.

Die Rückmeldungen der Studierenden sind sehr positiv, insbesondere sind die Feedbacks zu den Übungsaufgaben äusserst beliebt.

Jupyter Notebooks werden generell immer mehr auch von Dozenten verwendet, allerdings derzeit noch nicht auf der Basis des JupyterHub.

Jupyter Notebook - Server zum einfachen Erstellen von Code und HTML

  • basiert auf dem zellen-orientierten IPython und wurde inzwischen zum Projekt Jupyter umbenamt
  • die einzelnen Zellen können entweder Markdown (eine einfache Markup-Sprache für HTML) oder Code enthalten
  • die Markdown-Zellen können dabei auch unterschiedliche Medienformate wie HTML, LaTeX, SVG, Bilder, Videos, eingebetteter Code
  • die Code-Zellen werden standardmäßig in der Programmiersprache Python angeboten, kann aber mit unterschiedlichen Kernel für unterschiedliche Programmiersprachen (Javascript, Java, R, etc...) eingerichtet werden
  • auch diese Folien sind Markdown-Zellen in einem Notebook

-> Beispiel OWL Server Home Page mit Python Test Notebook

JupyterHub - Server für Jupyter Notebook Server

  • damit nicht jeder Dozent oder Studierende einen eigenen Jupyter Notebook Server installieren muss, wurde die Multi-User Version JupyterHub entwickelt
  • dabei kann der JupyterHub mit Authenticator-Adaptern für unterschiedliche Authorisierungs-Umgebungen umgehen als auch über Spawner den einzelnen Jupyter Notebook Servern unterschiedliche Konfigurationen verwenden
  • an der Hochschule Augsburg wird als Authorisierung LDAP verwendet, weshalb der entsprechende ldapauthenticator zu einem ldap2localuserauthenticator erweitert wurde, dass beim Einloggen jeweils ein Unix-Account erstellt werden kann, in dem als Spawner ein Single-User-Notebook gestartet wird.
  • der Vorteil am JupyterHub liegt natürlich auch daran, dass für alle Mitglieder der Hochschule eine möglichst umfangreiche Umgebung geschaffen wird, z.B. durch die Vorinstallation mehrerer Programmiersprachen-Kernel

-> Beispiel OWL Server als Test Student

Nbgrader - Framework für die Verwendung von Jupyter Notebooks im Studienbetrieb

  • Dozenten können einzelne oder mehrere Modulveranstaltung (Courses) pro Semester anbieten
  • die Modulveranstaltungen werden in Einzelveranstaltungen (Assignments) eingeteilt

Management von Studierenden

  • Studierende können an einzelnen oder mehreren Modulveranstaltungen pro Semester teilnehmen
  • Studierende müssen für eine Modulveranstaltung freigeschaltet werden, um teilnehmen zu können

Nbgrader - Management von Assignments

  • Erstellung und Überprüfung von Jupyter Notebooks für Einzelveranstaltungen (Edit, Generate, Preview)
  • Bereitstellung von Jupyter Notebooks an die Studierenden zu vorgegebenen Terminen (Release)
  • Studierende können sich diese Jupyter Notebooks ab diesen Terminen abholen (fetch)
  • die Studierenden können diese Jupyter Notebooks dann bearbeiten und anschliessend abgeben (submit)
  • Abholen der Jupyter Notebooks nach dem Abgabetermin (Collect)

-> Beispiel OWL Server - Nbgrader Management

Nbgrader - Grading

Autograde

  • Automatisches Korrigieren (Autograde) funktioniert nur mit Python
  • über Code-Zellen mit einem Tag Autograded answer mit der gelösten Aufgabenstellung (SOLUTION)
  • und einer darauffolgenden Code-Zelle mit dem Tag Autograder tests mit entsprechenden assert Tests (HIDDEN TESTS)

Manually Grading

  • Manuelles Korrigieren kann sowohl für textuelle Antworten (mittels Markdown-Zellen)
  • als auch für alle Programmiersprachen (mittels Code-Zellen) verwendet werden

Nbgrader - Feedback

  • Feedback kann während der manuellen Korrektur (und Überprüfung der Autokorrektur) für jede Grading-Zelle in allen Abgaben individuell für jeden Studierenden erstellt werden
  • kann anschliessend als HTML-Seite erstellt (Generate Feedback)
  • und für alle Studierenden zur Verfügung gestellt werden (Release Feedback)

-> Beispiel OWL Server - Grading und Feedback

Ausblick

  • mit dem derzeit neuesten Teilprojekt von Jupyter

      Voila 
    
    

    könnte ein zusätzlich interessanter Aspekt des anonymen Selbstlernens entstehen, wenn die Selbstlernphasen ohne Authorisierung möglich werden.

  • Anonymes Selbstlernen in Kombination mit persönlichem Feedback über Nbgrader erscheint eine sinnvolle Kombination für die Überwindung von Unsicherheiten im Lernverhalten von Studierenden

Vielen Dank für Ihre Aufmerksamkeit

Quellen