====== Classroom50: Klasse erstellen ====== Jede Organisation kann eine oder mehrere Klassen enthalten. Diese Seite beschreibt, wie du eine Klasse innerhalb der Organisation erstellst. ===== Voraussetzungen ===== * Die GitHub-Organisation wurde erstellt. * Die Organisation in Classroom50 wurde erstellt. //[[https://wiki.bzz.ch/howto/git/classroom50/setup|Classroom50: Organisation einrichten]]// ===== Klasse erstellen ===== - Gehe zu [[https://classroom50.org/]]. - Öffne den gewünschten Classroom. \\ {{:howto:git:classroom50:cr50_organisation.png?400|}} - Klicke auf [+ New classroom] {{:howto:git:classroom50:cr50_create_classroom.png?400|}} ===== Lernende hinzufügen ===== Um alle Lernenden einer Klasse hinzuzufügen, erstellst du am einfachsten eine CSV-Datei. * Die Teilnehmerliste eines Moodle-Kurses bildet eine gute Basis für die CSV-Datei. - Lade die Teilnehmerliste aus dem Moodle-Kurs als CSV-Datei herunter. - Ersetze die erste Zeile mit ''first_name,last_name,email,section'' - Entferne das Komma am Ende der Zeile. === Beispiel === first_name,last_name,email,section Hanna,Huser,huserh@bzz.ch,IA25a Beat,Beispiel,beispielb@bzz.ch,IA25a ... * Lade nun die bearbeitete CSV-Datei in deine Klasse hoch. - Öffne die Klasse innerhalb des Classrooms über den Button [View assignments] \\ {{:howto:git:classroom50:cr50_class.png?400|}} - Gehe zu "Roster" und klicke den Button für den CSV-Upload und lade die Datei hoch. \\ {{:howto:git:classroom50:cr50_roster.png?400|}} Aktuell wird der Vor/Nachname der Lernenden im Roster nicht angezeigt. Falls du dies möchtest, kannst du die Datei ''roster.csv'' im GitHub-Repository ''classroom50'' bearbeiten. ===== Individueller Autograder ===== Du kannst für deine Klassen einen individuellen Grader (z.B. pygrader vom BZZ) verwenden. ==== 1. autograder.py kopieren ==== - Öffne das Repository ''classroom50'' innerhalb der GitHub-Organisation. Zum Beispiel ''https://github.com/m320-ix25/classroom50.git''. - Öffne den Ordner für die gewünschte Klasse. Zum Beispiel ''m320-ix25''. \\ In diesem Ordner sind schon einige JSON- und CSV-Dateien. - Kopiere das Skript ''autograder.py'' von [[https://github.com/BZZ-Commons/pygrader50/blob/main/bootstrap/autograder.py]] in den Klassenordner. ==== 2. Korrekte Version auswählen ==== In der Datei ''autograder.py'' auf Zeile 21 wird die Version eingestellt. Aktualisiere diese Version auch bei bestehenden Repos regelmässig. #!/usr/bin/env python3 """Classroom 50 default autograder for the BZZ Python classrooms. Install it once per classroom: gh teacher autograder set-default --from bootstrap/autograder.py It is published verbatim to the classroom's Pages site as `/autograder.py` and fetched by runner.py on every submission. Pages serves this single file without siblings, so the grading engine is installed from PyPI-style git at a PINNED tag: grading stays reproducible, and upgrading a classroom is a one-line edit here plus a publish-pages run. Everything else — grading, result.json, release-body.md — lives in https://github.com/BZZ-Commons/pygrader50 """ import subprocess import sys # The rollout gate: this line is what every student's run installs. Moving it # reaches them on their next push, so it moves between assignments, never in the # middle of one, and only together with a `gh teacher autograder set-default`. VERSION = 'v2.2.2' PACKAGE = f'pygrader50 @ git+https://github.com/BZZ-Commons/pygrader50@{VERSION}' ...