====== 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}'
...