Automatisierte Bewertung (ab August 2024)

Eine Kombination von Worksflows, Skripts und eines Moodle-Plugins ermöglicht das automatisierte Bewerten von Aufgaben.

Die Lernenden müssen Ihren GitHub-Benutzernamen in ihrem Moodle-Profil eintragen. Unter “GitHub Classroom” befindet sich das Feld “GitHub Benutzername”.

  1. Erstelle eine Kopie des Repositorys um alle benötigten Dateien zu erhalten:
    • .github/workflows/autograding.yml
    • .github/autograding/unittest.json
    • .github/autograding/lint.json
  2. Markiere im Menu “Settings” das Repository als Template.
  3. Passe die Konfigurationen für Unittests und Linter an.

autograding.yml

TODO

unittest.json

TODO

lint.json

TODO

  1. Erstelle ein neues Assignment in GitHub Classroom.
    • Der Name des Assignments wird in Kleinbuchstaben und mit Bindestrichen geschrieben, z.B. m111-lu01-a02-exercise
    • Wähle das Vorlage-Repository aus dem letzten Abschnitt aus.
  1. Erstelle eine neue Aktivität im Moodle-Kurs. Wähle “External Assignment” als Art der Aktivität.
  2. Trage die Angaben zum Classroom Assignment ein:
    • Name: Der Name des Assignments, z.B. m111-lu01-a02-exercise
    • URL: Die URL zum Akzeptieren des Assignments für die Lernenden.
    • Punkte
      • Automatische Bewertung: Maximalpunkte aus den automatisierten Tests.
      • Manuelle Bewertung: Maximalpunkte für allfällige manuelle Bewertungen.
      • Bestehensgrenze: Wieviel Prozent der maximalen Punkte (automatisch + manuell) muss ein Lernender erreichen, dass die Aufgabe als erfüllt gewertet wird.

Die Punktzahl aus dem Workflow wird anhand der Angabe in “Automatische Bewertung” skaliert.

Beispiel

  • Bewertung aus dem Workflow: 12 von 20 Punkten
  • Maximum automatische Bewertung in Moodle: 100 Punkte
  • Resultat: 60 Punkte (12 * 100 / 20)

.github/workflows/autograding.yml

Dieser Workflow steuert die automatisierte Verarbeitung bei jedem Push des Repositories. Er ruft den Workflow in https://github.com/BZZ-Commons/workflows/blob/main/.github/workflows/pygrader.yml auf.

.github/autograding

In diesem Ordner befinden sich die Konfigurationsdateien für die Bewertung.

  • unittest.json: Test-Funktionen und Bewertung für die Unittests
  • lint.json: Konfiguration des Linters.

py_autograding.yml

Dieser Workflow führt die Skripts zum Prüfen des Python-Sourcecodes aus, den der Lernende auf GitHub gepushed hat.

  1. Checkout des Repositories des Lernenden
  2. Checkout des Repositories https://github.com/BZZ-Commons/pygrader mit den Skripts für pytest und pylint.
  3. Ausführen der Tests
  4. Übermitteln der Resultate an Moodle.

Dieses Repository enthält die Skripts um pytest und pylint auszuführen. Die Skripts lesen die Konfigurationsdateien “unittest.json” und “lint.json” aus dem Repository des Lernenden.

  • howto/git/grading/automatic_grading.txt
  • Last modified: 2024/04/09 14:02
  • by msuter