Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
howto:git:classroom50:classes [2026/08/19 08:51] – msuterhowto:git:classroom50:classes [2026/08/25 10:54] (aktuell) – msuter
Zeile 1: Zeile 1:
-====== Classroom50: Klasse erstellen ======+====== Classroom50: Classroom erstellen ======
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Jede Organisation kann eine oder mehrere Klassen enthalten. +Jede Organisation kann einen oder mehrere Classrooms enthalten. 
-Diese Seite beschreibt, wie du eine Klasse innerhalb der Organisation erstellst.+Diese Seite beschreibt, wie du eine Classrooms innerhalb der Organisation erstellst.
 </WRAP> </WRAP>
  
Zeile 11: Zeile 11:
 //[[https://wiki.bzz.ch/howto/git/classroom50/setup|Classroom50: Organisation einrichten]]// //[[https://wiki.bzz.ch/howto/git/classroom50/setup|Classroom50: Organisation einrichten]]//
  
-===== Klasse erstellen =====+===== Classroom erstellen =====
   - Gehe zu [[https://classroom50.org/]].   - Gehe zu [[https://classroom50.org/]].
   - Öffne den gewünschten Classroom. \\ {{:howto:git:classroom50:cr50_organisation.png?400|}}   - Öffne den gewünschten Classroom. \\ {{:howto:git:classroom50:cr50_organisation.png?400|}}
Zeile 21: Zeile 21:
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Um alle Lernenden einer Klasse hinzuzufügen, erstellst du am einfachsten eine CSV-Datei.+Um alle Lernenden einem Classroom hinzuzufügen, erstellst du am einfachsten eine CSV-Datei.
 </WRAP> </WRAP>
   * Die Teilnehmerliste eines Moodle-Kurses bildet eine gute Basis für die 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.     - Lade die Teilnehmerliste aus dem Moodle-Kurs als CSV-Datei herunter.
     - Ersetze die erste Zeile mit ''first_name,last_name,email,section''     - Ersetze die erste Zeile mit ''first_name,last_name,email,section''
-    - Füge am Anfang jeder Zeile ein Komma ein und entferne das Komma am Ende der Zeile.+    - Entferne das Komma am Ende der Zeile.
  
 === Beispiel === === Beispiel ===
Zeile 35: Zeile 35:
 ... ...
 </code> </code>
-  * Lade nun die bearbeitete CSV-Datei in deine Klasse hoch. +  * Lade nun die bearbeitete CSV-Datei in deinen Classroom hoch. 
-    - Öffne die Klasse innerhalb des Classrooms über den Button [View assignments] \\ {{:howto:git:classroom50:cr50_class.png?400|}} +    - Öffne den Classroom innerhalb der Organisation über den Button [View assignments] \\ {{:howto:git:classroom50:cr50_class.png?600|}} 
-    - Klicke den Button für den CSV-Upload und lade die Datei hoch.+    - Gehe zu "Roster" und klicke den Button für den CSV-Upload und lade die Datei hoch. \\ {{:howto:git:classroom50:cr50_roster.png?600|}} 
 + 
 + 
 +===== Individueller Autograder ===== 
 +<WRAP center round tip 60%> 
 +Du kannst für deine Klassen einen individuellen Grader (z.B. pygrader vom BZZ) verwenden. 
 +</WRAP> 
 + 
 +==== 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 ==== 
 +<WRAP center round tip 60%> 
 +In der Datei ''autograder.py'' auf Zeile 21 wird die Version eingestellt. 
 +Aktualisiere diese Version auch bei bestehenden Repos regelmässig. 
 +</WRAP> 
 + 
 +<code python> 
 +#!/usr/bin/env python3 
 +"""Classroom 50 default autograder for the BZZ Python classrooms. 
 + 
 +Install it once per classroom: 
 + 
 +    gh teacher autograder set-default <org> <classroom> --from bootstrap/autograder.py 
 + 
 +It is published verbatim to the classroom's Pages site as 
 +`<classroom>/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}' 
 + 
 +... 
 +</code> 
  • howto/git/classroom50/classes.1787122271.txt.gz
  • Zuletzt geändert: 2026/08/19 08:51
  • von msuter