Project Jupyter in der Lehre¶
(c) 2024 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
Inhalt¶
- Kurzvorstellung
- Programmieren in der Lehre
- IPython Notebook
- Project Jupyter
- Projekt OWL - Offene digitale Werkzeuge in der Lehre
- Jupyter Notebook
- JupyterHub
- nbgrader
- Ausblick
Kurzvorstellung¶
Mitte der 70er¶
Programmierung numerischer Simulationen für geo- und schneephysikalische Differentialgleichungssysteme in Algol, Pascal, Fortran, C
Mitte der 80er¶
Verantwortlich für die Entwicklung der Datenkommunikation und des ersten automatischen Data Request Managers im deutschen Datenzentrum zur Überwachung der Kernwaffentests bei der BGR
Mitte der 90er¶
Beginn der Web-Programmierung mit Perl und Python als Leiter des Bitök-Rechenzentrums an der Uni Bayreuth
Mitte der 00er¶
Professor für Neue Medien und Internet Technologien an der Hochschule Augsburg - Python als universelle Programmiersprache und Jupyter Notebook in allen meinen Lehrveranstaltungen benutzend
IPython Notebook¶
Server zum einfachen Erstellen von Code und HTML¶
- basiert auf IPython und dessen Zellen Orientierung
- 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 enthalten
- 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
Beispiele¶
Vor- und Nachteile der Zellenstruktur¶
Bessere Struktur von Code sowie der Beschreibung mit Markdown¶
Ausführungs- und Variablen-Status kann bei Anfängern sehr schnell unübersichtlich werden¶
$\Rightarrow$ Hinweise und Anmerkungen zu Jupyter Notebooks
Zertifikat Hochschullehre Bayern - Profistufe -¶
WS 2013/2014 + SS 2014¶
Entwicklung eines Lernportfolios für die Veranstaltung Webprogrammierung mittels IPython Notebook
IPython Notebook als Dozent¶
alle Zellen - Code- und Markdown-Zellen - werden als einzelne Folien dargestellt (RISE Slideshow)
IPython Notebook als Teilnehmer¶
Jeder Teilnehmer musste IPython Notebook selbst auf seinem Laptop installieren, Beispiele aus dem Skript nachprogrammieren sowie Aufgaben entsprechend lösen
Beispiele¶
- Aktives Plenum
- JavaScript Aufgaben (entwickelt in Anlehnung an Open edX)
Projekt OWL - Offene digitale Werkzeuge in der Lehre¶
Teilprojekt Jupyter Notebook¶
In der Lehre sollten Studierende angehalten werden, eigeninitiativ und selbstreguliert zulernen. Dies gilt insbesondere für e-Learning-Angebote. Dazu ist ein Umfeld erforderlich, das es erlaubt, jederzeit das eigene Wissen und die eigenen Kompetenzen zu testen, also ein Self-Assessment vorzunehmen. Ziel dieses Teilprojekts war es, mit Hilfe digitaler Methoden individualisierte Aufgaben zu stellen, studentische Abgaben automatisch zu testen und entsprechendes Feedback zu geben.
Grundlage und Rahmen dieses Teilprojekts waren die Tools aus dem inzwischen gegründeten Project Jupyter.
Es wurden daher Jupyter Notebooks (als Nachfolger der IPython 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 aufsetzenden Framework nbgrader entwickelt und zur Verfügung gestellt.
$\Rightarrow$ Teaching and Learning with Jupyter
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
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
Einführungen in den OWL Server¶
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)
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
Dozentensicht¶
Studierendensicht¶
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)
OWL Server - JupyterHub mit nbgrader¶
$\Rightarrow$ OWL Server
Ausblick¶
Voila¶
mit dem neuen Teilprojekt von Jupyter
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
JupyterHub in der Cloud¶
allgemein¶
Unis und Hochschulen¶
- Google Suche jupyterhub uni
- AG Didaktik der Informatik der Uni Osnabrück
AddOns¶
LMS und Grading¶
- Open edX mittels ibleducation.com
- UC Berkeley's Otter-Grader
- UC Berkeley's OK
IDEs¶
- Spyder
- Microsoft's Visual Studio Code
- JetBrain's PyCharm
Publishing¶
Vielen Dank für Ihre Aufmerksamkeit¶
Quellen¶
- Folien und weitere Informationen: https://klever.hs-augsburg.de/nb/OWL/
- Teaching and Learning with Jupyter