Tech-Talk: AutoFeedback Git Integration
In zahlreichen Modulen in den Informatik Studiengängen der FHNW sind Programmieraufgaben ein Teil des Unterrichtsmaterials. Um die Auswertung solcher Aufgaben zu vereinfachen, wurde ein System zur automatischen Bewertung von Programmieraufgaben entwickelt: AutoFeedback. Studierende bearbeiten von Dozierenden abgegebene Aufgaben und reichen ihre Abgaben auf der AutoFeedback-Plattform ein. Diese Abgaben werden vom System automatisiert nach Korrektheit, Performance und Qualität bewertet und den Studierenden wird ein individuelles Feedback präsentiert. Zur Überprüfung der Korrektheit kommt neben Unit-Testing auch Softwareverifizierung zum Einsatz. Zudem werden abgegebene Programme mit unterschiedlichen Input-Grössen getestet, um die asymptotische Zeitkomplexität bestimmen zu können. Steht eine Musterlösung zur Verfügung, analysiert AutoFeedback die Ähnlichkeit der Abgabe zur Lösung, sowie Komplexität, Verständlichkeit und benötigte Entwicklungszeit der Abgabe.
Die Interaktion zwischen Studierenden und AutoFeedback sieht so aus, dass sie Ihre Lösungen, als ZIP-Archiv verpackt, über das Web UI hochladen. Dadurch entsteht eine Art Dreieck zwischen der lokalen IDE, einem Git-Repository zur Versionskontrolle und der AutoFeedback-Plattform. Dieses Konzept soll vereinfacht werden. Deshalb wurde untersucht, wie AutoFeedback in ein Git-Ökosystem integriert werden kann.

Der bisherige Ansatz, wie AutoFeedback Studierendenabgaben evaluierte, basiert auf Containern. Pro Abgabe wurde ein Container gestartet. Da dieser Ansatz CI / CD Pipelines (z.B. bei GitLab) ähnelt, wurde der Core von AutoFeedback leicht modifiziert, um in solchen Pipelines laufen zu können.

GitLab Classrooms
GitLab Classrooms hingegen ist eher als Erweiterung an die in der Softwareentwicklung etablierte Plattforme GitLab zu sehen. Wie der Namen schon erraten lässt, handelt es sich bei GitLab Classrooms um eine (Open Source) Alternative zu GitHub Classroom. Da die FHNW schon eine GitLab Instanz betreibt und durch die Erweiterbarkeit, wurde aber nicht auf das Original von GitHub gesetzt. Diese Erweiterbarkeit wurde bei der Integration von AutoFeedback auch direkt ausgenutzt. So wurde die bestehende Plattform erweitert um eine Ansicht zur Darstellung von AutoFeedback Resultaten.

Artemis
Artemis ist durch und durch für den Einsatz im Unterrichtskontext designt und bietet neben der primär untersuchten automatischen Auswertung von Programmieraufgaben noch zahlreiche weitere Features zugeschnitten auf das Erlernen von Informatikthemen (z.B. Programmierprüfungen, Text- und Quiz-Aufgaben, Chat-Kommunikation zwischen Studierenden und Dozierenden). Artemis unterstützt bereits Programmieraufgaben in zahlreichen Sprachen wie Java, C++, Python oder Haskell. AutoFeedback unterstützt zwar nur Java, bietet aber umfangreicheres Feedback als. Zur Integration von AutoFeedback in Artemis wurde eine bestehende Vorlage einer Java Programmieraufgabe erweitert.

Tech-Talk und Blog Beitrag:
Simon Freiermuth (simon.freiermuth@fhnw.ch), MSE Student und Assistent am IMVS
Die Slides sind verfügbar: tech-talk_autofeedback_git_integration.pdf
Kommentare
Keine Kommentare erfasst zu Tech-Talk: AutoFeedback Git Integration