/* Das ist der Code, damit das Akkordeon geschlossen angezeigt wird. */ /* Das ist der Code, um offene Akkordeons wieder schließen zu können */
Benjamin Schmitz

Benjamin Schmitz

Werner-Heisenberg-Gymnasium

 

Titel der Forschungsarbeit: Automatic Correction of Programming Exercises with Artemis & GitLab CI

Fakultät: TUM School of Computation, Information and Technology

Lehrstuhl: Forschungsgruppe für angewandte Softwaretechnik

Betreuung: Jan Philip Bernius und Matthias Linhuber

Abstract der Forschungsarbeit

Artemis is a Learning Management System (LMS) that facilitates programming exercises using a Version Control System (VCS) and a Continuous Integration System (CIS). Since some VCSs include a Continuous Integration (CI) application, it is possible to reduce the effort required to maintain the servers and migrate the CIS from external applications to the integrated system.
In the existing implementation, programming exercises rely on a configuration stored in the CIS as part of build plans. These configurations are duplicated for every student participation, making it hard to update the configuration throughout the exercise lifecycle.
GitLab CI is the CIS provided by the GitLab VCS. This system supports provisioning build plans via the Artemis Application Programming Interface (API), which makes it possible to update the build plan retrospectively, as the build plan is fetched from the API on each run.
In this thesis, we show how Artemis can be extended to support an VCS with an in-built CIS. We analyze the underlying problem, formalize the requirements, and model the adapted system design. We implement the changes as part of the open-source Artemis system. We generalize the existing Jenkins Server Notification Plugin for usage with different CISs to notify Artemis. Artemis is now capable of conducting Java programming exercises with a single dependency on GitLab.