Hallo,

ich bin dabei die praktischen Übungen für die Datenstrukturen und Algorithmen Vorlesung im kommenden Sommersemester am vorbereiten. Dieses Jahr soll die Vorlesung zum ersten Mal mit der Programmiersprache Python gelehrt werden. Hierzu wird es auch praktische Aufgaben und Abgaben der Studenten geben. Zusätzlich möchten wir den Studenten auch über Live-Coding die einzelnen Algorithmen näher bringen.

Die Idee ist über Jupyter Notebooks den Studenten die Aufgaben zur Verfügung zu stellen. Um einen möglichst einfachen Einstieg in Python zu ermöglichen bin ich gerade dabei verschiedene Tools am ausprobieren und bin unter anderem auf RWTHjupyter gestoßen. Hier würde ich zunächst etwas Support und Unterstützung benötigen.


Als erstes würde ich gerne den Studenten eine kollaborative Programmierumgebung zur Verfügung stellen. Das erlaubt uns allen Studenten die gleichen Voraussetzungen zu schaffen und minimiert Probleme bei der Installation und dem Environment Setup. Zudem sollten die Studenten in der Lage sein zu zweit oder dritt (Pair-Programming) an einem Notebook gleichzeitig zu arbeiten und so ihre Aufgaben zu lösen. Online Tools, wie Deepnote oder CoColab bieten solche Möglichkeiten an, sind allerdings externe und/oder kostenpflichtige Services. JupyterLab sollte dies auch mit dem Real Time Collaboration (https://jupyterlab.readthedocs.io/en/stable/user/rtc.html) Feature anbieten können. Gibt es eine Instanz bei RWTHjupyter auf der man dieses Feature zunächst ausprobieren könnte?


Zudem würde ich gerne die Bewertung automatisieren und die `nbgrader` extension für Jupyter Notebooks nutzen, da wir bei bis zu 1200 Studierenden sehr viele Abgaben erwarten. Diese Abgaben sollen von 25 Tutoren bearbeitet und bewertet werden. `nbgrader` automatisert diesen Prozess und bietet auch eine Anbindung an JupyterHub (https://nbgrader.readthedocs.io/en/stable/configuration/jupyterhub_config.html). Gibt es hier schon Erfahrungen aus anderen Vorlesungen oder Veranstalltungen, um sich austauschen zu können? Ist es möglich entsprechende Zugangsberechtigungen zu bestimmten Ordnern innerhalb einer Instanz zu beschärnken, damit einerseits die Studenten jeweils nur auf ihre Abgabe zugreifen können und die Tutoren nur die die Ordner der ihnen zugeordneten Studenten? Wie kann man verhindern, dass die Studenten untereinander die Lösungen über "shared" Verzeichnisse austauschen? Ist es möglich diese für die Vorlesungsinstanz komplett zu beschränken?


Zudem wäre es sehr sinnvoll, wenn die Tutoren nicht auf ihren eigenen Rechnern die Aufgaben korrigieren bzw. den Code ausführen müssen, sondern dies direkt auf einem sicheren Server machen können. Auch wenn `nbgrader` es versucht schadhaften Code zu minimieren, können wir leider nicht ganz ausschließen. Hier wären wieder die oben genannten Fragen relevant, in wie weit wir die Zugangsberechtigungen einzelnen Nutzergruppen bzw. einzelnen Nutzern zuweisen können. 


Vielen Dank für den Support.

Mit freundlichen Grüßen
Gregor Kobsik