Java-Abgabe- und Prüfungssystem

Automatisiert Abgabe, Benotung und Feedback für Java-Aufgaben und -Prüfungen unter Verwendung von GitLab als zentrale Plattform und einer sicheren Flex Client-Prüfungsumgebung.

Idea
Plan
Prototype
Pilot
Live

Übersicht

Mehrwert: Automatisiert Abgabe, Benotung und Feedback für Java-Aufgaben und -Prüfungen unter Verwendung von GitLab als zentrale Plattform und einer sicheren Flex Client-Prüfungsumgebung.

Problem: Verwendete GitLab-Funktionen: CI/CD für automatisierte Bewertung; Repository-Vorlagen für Prüfungen, Projekte und Hausaufgaben; Meilensteine zur Planung von Fälligkeitsterminen; Issues für Bug-Tracking und Kommunikation; Artefakte zum Speichern von Testberichten; geschützte Branches zur Verhinderung verspäteter Commits. Flex Client: eine isolierte Desktop-Prüfungsumgebung, die in Laboren oder Online-Prüfungen verwendet werden kann; beschränkt den Zugriff auf externe Programme, Dateien und das Internet; startet automatisch das GitLab-Repository und den Editor (z. B. VS Code im Nur-Lese-Modus). Weitere Informationen: https://git.fh-aachen.de/exam/doc

Lösung: Automatisierte Ausführung, Benotung und Feedback für Java-Abgaben und -Prüfungen mit GitLab als zentraler Plattform und Flex Client als sicherer Prüfungsumgebung.

Wer profitiert

Primär

  • Studierende
    • Sofortiges Feedback zu Abgaben
    • Konsistente Bewertungskriterien
    • Sichere Prüfungsumgebung
    • Klare Notentransparenz
  • Lehrende
    • Automatisierter Benotungsprozess
    • Reduzierte Korrekturzeit
    • Standardisierte Bewertung
    • Betrugsprävention während Prüfungen

Sekundär

  • Systemadministrator*innen
    • Zentralisierte Bewertungsinfrastruktur
    • Skalierbares Bewertungssystem
    • Reduzierte manuelle Eingriffe

Wann geeignet

  • Java-Programmierkurse
  • Anforderungen an automatisiertes Testen
  • Große Studierendengruppen
  • Bedarf an sicheren Prüfungsumgebungen
  • Standardisierte Bewertungskriterien

Wann nicht geeignet

  • Nicht-Programmierfächer
  • Subjektive Bewertungskriterien
  • Kleine Klassengrößen mit Präferenz für manuelle Benotung
  • Andere Sprachen als Java ohne Tooling-Unterstützung

Prozess

  1. Studierende erhalten Aufgabe in privatem GitLab-Repository
  2. Implementierung der Lösung unter Verwendung bereitgestellter Vorlagen und Anforderungen
  3. Code-Abgabe via Git-Commit vor Fristende
  4. GitLab CI/CD führt automatisch Tests aus (JUnit, Checkstyle, SonarQube)
  5. Ergebnisse werden als Artefakte gespeichert und Noten berechnet
  6. Lehrende überprüfen automatisierte Ergebnisse und vergeben Endnoten

Voraussetzungen

Personen

  • Studierende
  • Java-Lehrende
  • Systemadministrator*innen
  • Technisches Support-Personal

Daten-Inputs

  • Aufgabenspezifikationen
  • Java-Quellcode
  • Testfälle
  • Bewertungsrubriken

Tools & Systeme

  • GitLab mit CI/CD
  • Java-Entwicklungsumgebung
  • JUnit-Testframework
  • Checkstyle
  • SonarQube
  • Flex Client
  • GitLab Runner (Docker-basiert)

Richtlinien & Compliance

  • Richtlinien zur akademischen Integrität
  • Datenschutz für Studierende
  • Prüfungssicherheitsanforderungen
  • Notenaufbewahrungsrichtlinien

Risiken & Gegenmaßnahmen

  • Systemausfall während Prüfungsfristen

    • Hochverfügbarkeits-GitLab-Setup
    • Backup-Bewertungssysteme
    • Verfahren für verlängerte Fristen
    • Echtzeitüberwachung
  • Umgehung der Flex Client-Sicherheit durch Studierende

    • Umfassende Sicherheitskontrollen
    • Aktivitätsüberwachung
    • Verstoßerkennung
    • Backup-Aufsichtsmethoden
  • Falsch positive/negative Ergebnisse beim automatisierten Testen

    • Umfassende Testsuiten
    • Manuelle Überprüfungsprozesse
    • Einspruchsverfahren
    • Validierung von Testfällen

Erste Schritte

Um diesen Anwendungsfall zu implementieren, benötigen Sie GitLab mit CI/CD, Java-Entwicklungsumgebung, Testframeworks und Flex Client für sichere Prüfungen.

  1. Einrichten der GitLab-Instanz mit entsprechender Authentifizierung und Benutzerverwaltung
  2. Konfigurieren von CI/CD-Pipelines mit Java, JUnit, Checkstyle und SonarQube
  3. Installieren und Konfigurieren des Flex Clients für sichere Prüfungsumgebung
  4. Erstellen von Aufgabenvorlagen und automatisierten Testsuiten
  5. Schulung von Lehrenden und Studierenden in der Systemnutzung

FAQ

Was ist der Flex Client und wie funktioniert er?

Der Flex Client ist eine isolierte Desktop-Anwendung, die eine sichere Prüfungsumgebung schafft, indem sie den Zugriff auf externe Programme und das Internet einschränkt, während notwendige Entwicklungstools bereitgestellt werden.

Können Studierende Teilpunkte für teilweise funktionierende Lösungen erhalten?

Ja, das automatisierte Testsystem kann so konfiguriert werden, dass Teilpunkte basierend auf bestandenen Testfällen und Codequalitätsmetriken vergeben werden.

Wie werden verspätete Abgaben behandelt?

Geschützte Branches in GitLab verhindern Commits nach Fristen, aber Lehrende können Berechtigungen für Ausnahmefälle anpassen.

Glossar

Flex Client
Isolierte Desktop-Anwendung, die eine sichere Prüfungsumgebung für Programmierbewertungen bietet
JUnit
Unit-Test-Framework für die Programmiersprache Java
Checkstyle
Tool zur Überprüfung von Java-Code gegen Codierungsstandards und Stilrichtlinien
SonarQube
Plattform zur kontinuierlichen Inspektion von Codequalität und Sicherheitslücken