Organisation der Repositories

Durch den vermehrten Einsatz von GitHub und Classrooms müssen wir unsere Repositories organisieren.

Organisation Einsatzzweck
Für Lehrpersonen
bzz-fgict Aktuell für alles, etwas chaotisch
teacher-python Aufgaben, Leistungsbeurteilungen, Lösungen für M319, M320, ???
teacher-java Aufgaben, Leistungsbeurteilungen, Lösungen für M403, M404, M120, M320, M322, ???
Modulbereich “Programmierung - Webapplikationen” Aufgaben, Leistungsbeurteilungen, Lösungen für M133/M151
BZZ-Commons Skripts, Workflows, … die wir weltweit freigeben
Für Vorlagen (Templates)
templates-python Vorlagen für Assignments im Classroom
templates-java
Für Lernende
BZZ-2022 Jahrgang 2022 (IA22a, IA22b, IM22a, IM22b, …)
BZZ-2023 Jahrgang 2023 (IA23a, IA23b, IM23a, IM23b, …)

Ich beschreibe den Ablauf jeweils am Beispiel einer neuen Programmieraufgabe im Modul 319. Der Titel der Aufgabe lautet: “LU06.A01: Listen”. Ich möchte diese Aufgabe bei den Klassen IM22a und IM22b einsetzen.

Bei dieser Variante wird nur ein Repository mit Branches für die Vorlage (main) und den Lösungsvorschlag (solution) genutzt.

Ich erstelle ein neues Repository für diese Aufgabe (siehe Vorlage für Pycharm mit GitHub Classroom ). Dieses Repository ist public definiert. Die Lernenden müssen Zugriff auf dieses Repository haben.

  • Organisation: templates-python
  • Repository: M319_LU06_A01_Lists
  • Branch: main

Ich kennzeichne dieses Repository als “Template”.

Die Vorlage enthält alle Dateien und Funktionen, welche die Lernenden als Startpunkt erhalten:

  • Branch: main
lists.py Dieses Skript sollen die Lernenden erstellen/ergänzen
lists_test.py Unit-Tests für die Lernenden
.gitignore
requirements.txt Libraries die importiert werden müssen
.github Ordner für die Workflows
classroom/autograding.json Testfälle mit Bewertung
workflows/classroom.yml Workflow zum Durchführen der Testfälle

Die Musterlösung kann direkt im gleichen Repository als eigener Branch z.B. solution erstellt werden.

Mein Repository ist nun vollständig.

Bei dieser Variante haben die Lernenden keinen Zugriff auf den Branch “solution”. Dieses Vorgehen ist vor allem bei Leistungsbeurteilungen sinnvoll.

Ich erstelle ein neues Repository für diese Aufgabe. Dieses Repository ist internal (oder private) definiert. Die Lernenden sollen keinen Zugriff auf dieses Repository erhalten.

  • Organisation: teacher-python
  • Repository: M319_LU06_A01_Lists
  • Branch: main

Die Vorlage enthält alle Dateien und Funktionen, welche die Lernenden als Startpunkt erhalten:

  • Branch: main
lists.py Dieses Skript sollen die Lernenden erstellen/ergänzen
lists_test.py Unit-Tests für die Lernenden
.gitignore
requirements.txt Libraries die importiert werden müssen
.github Ordner für die Workflows
classroom/autograding.json Testfälle mit Bewertung
workflows/classroom.yml Workflow zum Durchführen der Testfälle

Die Musterlösung kann direkt im gleichen Repository als eigener Branch z.B. solution erstellt werden.

Mein Repository ist nun vollständig.

Ich erstelle eine Kopie meines Repositories, wobei ich nur den main-Branch hochlade. Damit wird meine Lösung nicht übernommen wird.

  • Name: “templates-python/M319_LU06_A01_Lists”
  • Visibilty: “public”

Dieses Repository kennzeichne ich als “Template”.

Um ein Repository in einem Classroom zu verwenden, muss das Repository public sein oder in der gleichen Organisation wie der Classroom liegen.

  • Das Template für die Assignments wird in der Organisation “templates-python” angelegt. |
  • Für die Classrooms der Klassen “IM22a” und “IM22b” verwende ich die Organisation “BZZ-2022”.

Falls noch kein Classroom für meine Klassen “IM22a”, “IM22b” und das Modul “319” existiert, erstelle ich einen neuen Classroom in der Organisation “BZZ-2022”.

  • Classroom-Name: “M319-2022”

Ich erstelle ein Assignment im Classroom “M319-2022” für die Aufgabe.

  • Assignment: “Aufgabe_M319_LU06_A01_Lists”
  • Template: “templates-python/M319_LU06_A01_Lists”

Den Link zu diesem Assignment stelle ich den Lernenden zur Verfügung.

Anpassungen am Template werden in künftigen Repositories übernommen. Es gibt keinen Automatismus um bereits erstellte Repositories der Lernenden zu aktualisieren.

Aufräumen von Organisationen / Repos / Benutzerkonten

Am Ende der Lehre

  • Lernende auffordern Ihre Repos zu sichern
    • Repository in anderes Konto transferieren
    • UserId, Emailadresse ändern und Organisation verlassen

Nach Ablauf der Rekursfristen

  • Organisation löschen
  • Classroom löschen
  • howto/git/organisation.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1