Eine Programmieraufgabe aus einem Git-Repository erstellen, mit versteckten Tests
Eine gute Programmierübung ist meist ein kleines Projekt: Startcode, ein paar Hilfsdateien, eine Paketdatei und ein Ordner mit Tests. Wenn Sie Ihre Übungen schon in Git verwalten, müssen Sie sie nicht Datei für Datei in den Browser kopieren. Laden Sie das Repository in eine Aufgabe, legen Sie fest, welche Dateien Tests sind, die Lernende nicht sehen dürfen, und weisen Sie die Aufgabe zu.
Das funktioniert mit dem Git-Server, der zur Plattform gehört, für Mitarbeitende und Lernende einer Einrichtung. Jede Programmieraufgabe lässt sich so laden, auch eine, die Lernende klonen und in die sie pushen, wofür es eine eigene Seite gibt.
Eine Aufgabe aus einem Repository laden
Klicken Sie im Editor der Aufgabe auf „Aus Git laden“, wählen Sie ein Repository, das Sie lesen können, und einen Branch (oder geben Sie einen Tag oder einen Commit ein) und klicken Sie auf „Vorschau“. Die Vorschau listet jede Datei auf, die geladen würde, die Datei, von der aus das Programm läuft, und jede Datei, die ausgelassen würde, samt Grund: kein Text, zu groß oder ein Name, der nicht verwendet werden kann. Nichts ändert sich, bevor Sie auf „Laden“ klicken.
Beim Laden werden die Dateien einmal kopiert, Ordner und Paketdatei eingeschlossen. Danach ist die Aufgabe wie jede andere: Sie bearbeiten sie wie gewohnt im Browser, und das Repository bleibt unverändert. Es gelten dieselben Grenzen wie für jedes Projekt, 50 Dateien mit je bis zu 64 KB.
- Die Aufgabe in ihrem Editor öffnen. Klicken Sie über dem Code bei den Werkzeugen auf „Aus Git laden“.
- Das Repository und den Branch wählen. Es werden nur Repositories aufgelistet, die Sie lesen können. Ein Tag oder ein Commit funktioniert ebenfalls.
- Die versteckten und geschützten Pfade auflisten. Einer pro Zeile: ein Ordner wie tests/, ein Name wie test_*.py oder ein Pfad.
- Vorschau, dann Laden. Prüfen Sie, was geladen und was ausgelassen wird, bevor sich etwas ändert.
- Zuweisen. Jede lernende Person erhält eine eigene Kopie, ohne die versteckten Dateien.
Versteckte Testdateien und Dateien, die Lernende nicht ändern können
Listen Sie im selben Dialog die Pfade auf, die Lernende nie sehen sollen, etwa tests/ oder test_*.py, und die Pfade, die sie sehen, mit deren Änderung sie das Ergebnis aber nicht beeinflussen dürfen. Versteckte Dateien werden nie zugewiesen und nie in das Repository einer lernenden Person gelegt.
Immer wenn die Arbeit von Lernenden getestet oder bewertet wird, werden Ihre versteckten und geschützten Dateien zuerst aus der Aufgabe wiederhergestellt. Einen Test in der eigenen Kopie zu ändern, bewirkt also nichts, was zählt. Für Python, Java, Go und JavaScript auf Node werden versteckte Testdateien vom eigenen Test-Runner der Sprache ausgeführt, also pytest, JUnit, go test oder dem von Node, neben dem Reiter „Tests“ der Aufgabe.
Die Listen gibt es nicht nur für Aufgaben aus Git: Auch eine Aufgabe, die Sie im Browser eingetippt haben, kann versteckte und geschützte Pfade haben.
Die Aufgabe aus einem späteren Commit aktualisieren
Die Aufgabe merkt sich, aus welchem Commit sie stammt. „Aus Git aktualisieren“ lädt einen späteren und ersetzt, was seitdem im Browser bearbeitet wurde. Lernende, die die Aufgabe schon haben, behalten ihre eigenen Kopien, sodass eine Korrektur am Startcode diejenigen erreicht, denen die Aufgabe als Nächstes zugewiesen wird.
Häufige Fragen
- Kann ich eine Aufgabe von GitHub laden?
- Vom Git-Server der Plattform. Um ein Projekt zu verwenden, das auf GitHub liegt, pushen Sie es zuerst in ein Repository auf unserem Git-Server, was ein git remote add und ein git push bedeutet.
- Sehen Lernende mein Repository?
- Nein. Sie erhalten eine eigene Kopie der Aufgabe, ohne die versteckten Dateien. Wenn Sie ihnen erlauben, die Aufgabe zu klonen, erhält jede Person ein neues Repository, das aus ihrer eigenen Kopie erstellt wird, nie aus Ihrer.
- Können Lernende die Tests ändern, mit denen sie bewertet werden?
- Nein. Versteckte Testdateien werden ihnen nie gegeben, und immer wenn ihre Arbeit getestet oder bewertet wird, werden Ihre versteckten und geschützten Dateien aus der Aufgabe wiederhergestellt.