Eine lokal gehostete Python-Umgebung für Lehre und Prüfung
In Kooperation mit dem TLC wurde an der FH Graubünden eine lokal gehostete Python - Entwicklungsumgebung entwickelt, die für Studierende über einen Webbrowser zugänglich ist. Ziel war es, eine stabile, faire und didaktisch sinnvolle Entwicklungsumgebung zu schaffen, die sowohl im Unterricht als auch mit dem Safe Exam Browser in Prüfungen eingesetzt werden kann – unabhängig von externen Diensten und vollständig kompatibel mit den lokalen Visual Studio Code Installationen der Studierenden.
Einbettung in die Lehre
Eine stabile und performante Programmierumgebung, die sich möglichst wenig von den im Unterricht verwendeten Systemen unterscheidet, ist zentral für ein reibungsloses Prüfungssetting und in Folge eine faire Beurteilung von Programmierleistungen. Gerade in Prüfungen sollte sichergestellt sein, dass keine technischen Stolpersteine oder Überraschungen auftreten. Mit der lokal betriebenen Lösung auf Basis des code-server (Visual Studio Code im Browser) steht den Studierenden in Safe Exam Browser - Prüfungen eine Umgebung zur Verfügung, welche sich (i) analog zu einer lokalen Visual Studio Code Installation verhält und (ii) über alle im Unterricht verwendeten Bibliotheken und Funktionalitäten verfügt.
Umsetzung in der Praxis
Die Realisierung erfolgte in mehreren Schritten:
1. Containerisierung mit Docker:
Der offizielle code-server Docker-Container wurde erweitert und angepasst:
- Python samt wichtiger Bibliotheken wurde integriert.
- Der Container wurde sicherheitsseitig gehärtet.
- Das Setup wird in einem GitHub-Repository gepflegt – für Wiederverwendbarkeit und Weiterentwicklung.
2. Aufbau der Serverinfrastruktur:
- Ein dedizierter Server ermöglicht den parallelen Betrieb von bis zu 100 Instanzen. Diese werden täglich automatisiert zurückgesetzt – für ein sauberes, konsistentes Setup.
3. Benutzerverwaltung via Flask-App:
- Eine eigene Flask-Webanwendung weist den Studierenden ihre individuelle Instanz zu – je nach Modus (Unterricht oder Prüfung). Der Zugang erfolgt über personalisierte, zeitlich begrenzte URLs. Ein vorgeschalteter Nginx-Server übernimmt das Routing.
Ergebnisse und Vorteile
Die neue Umgebung bietet sowohl technische als auch didaktische Vorteile:
- Standardisierte Lernumgebung: die Python Prüfungsumgebung kann zuverlässig zusammen mit Moodle und dem Safe Exam Browser (SEB) verwendet werden
- Datensicherheit: Alle erstellten Dateien werden lokal gespeichert und können bei Bedarf wiederhergestellt werden.
- Konsistenz: Die einheitliche Entwicklungsumgebung in Unterricht und Prüfung reduziert die kognititve Belastung und erhöht die Fairness
- Stabilität und Performance: Unabhängig von Cloud-Diensten und Drittanbietern
- Realitätsnähe: Die Prüfungsumgebung bildet echte Programmierbedingungen ab.
Einzige Einschränkung: Anwendungen mit grafischen Oberflächen (z.B. turtle) werden nicht unterstützt. Diese sind in den relevanten Prüfungen jedoch nicht notwendig.
Take-Aways
- Realitätsnahe Programmierumgebung unterstützt kompetenzorientiertes Prüfen
- Einheitliche Entwicklungsumgebung erhöht Fairness und senkt Prüfungsstress
Mit der lokal gehosteten Python-Prüfungsumgebung wurde eine zukunftsfähige Lösung realisiert, die sowohl den Bedürfnissen der Studierenden als auch den Anforderungen der Lehrenden gerecht wird. Sie ermöglicht ein faires, stabiles und praxisnahes Prüfen und Lernen und ist damit ein Paradebeispiel für technologiegestützte Didaktik an der FH Graubünden.
Weiterführende Links und Ressourcen
- Visual Studio Code in the Browser Projekt
- Für Python adaptierte Version des Code Servers
- Flask basierender FHGR Code Server Controller
Kontakt
Albert Weichselbraun
Dozent
Schweizerisches Institut für Informationswissenschaft (SII)
E-Mail: Albert.Weichselbraun@fhgr.ch