zum Inhalt springen

Entwicklung eines Fragetyps für Programmieraufgaben im E-Learning-System ILIAS

Projektverantwortlich: Manuel Molina Madrid (Math-Nat)

Beteiligt:     Competence Center E-Learning

Projektlaufzeit:    08/2013 bis 07/2015 (4 Semester)

Für den Programmierkurs des Instituts für Informatik sollen unter ILIAS praxisnahe E-Klausuren eingeführt und automatisch korrigiert werden. Eine Herausforderungen ist dabei die automatische Bewertung von Programmieraufgaben, da es sich um offene Fragen handelt und diese als frei formulierte Texte (Freitext-Fragen) beantwortet werden, z. B. als Programme in einer bestimmten Programmiersprache. Prüflinge geben ihre Lösung als Programmcode ein und lassen sie vom Compiler übersetzen. Programme die am Ende nicht  lauffähig und korrekt sind, müssen abgestuft bewertet werden.


Systemarchitektur des ILIAS-Plugins mit Bewertungssystem


1.    Während der Klausur:
 - Serverseitige Ausführung des Programmcodes
 - Rückgabe der Compiler-Meldung an das ILIAS-Plugin
2.    Am Ende der Klausur:
 - Serverseitige Ausführung des Programmcodes mit Testwerten:
    Wenn Programmcode lauffähig, dann Ergebnis überprüfen
                sonst fehlerhaften Programmcode austauschen
                und Programmcode erneut ausführen

Projektfortschritt:

Planung 2015

 

  • Durchführung einer E-Klausur für den Programmierkurs. E-Klausur ohne Bewertungssysteme für Programmieraufgaben. Zuvor Erstellung einer E-Übungsklausur für die Studierenden zur Vorbereitung.

  • Weiterentwicklung des ILIAS-Plugins und des Bewertungssystems, um nicht lauffähigen Programmcode abgestuft bewerten zu können. Formulierung von Programmieraufgaben, die einen Rahmen bilden, um mehrere einfache Konzepte in Java abzufragen, z. B. if-Anweisung, for-Schleife, Deklaration.

  • Test und Evaluation des ILIAS-Plugin mit Bewertungssystem. Überarbeitung des Plugins, um die Softwarequalität zu verbessern.

2014

  • Entwicklung des ILIAS-Plugins für Programmieraufgaben basierend auf der Analyse bestehender andere Open-Source-Plugins.

  • Dozenten-Sicht: Eingabe der Programmierfrage, Vorgabe des Bewertungsschemas, Eingabe einer Lösung, Speicherung der Programmierfrage in ILIAS.

  • Studierenden-Sicht: Eingabe des Programmcodes in einem Editor mit Syntaxhervorhebung und automatischen Einrücken, Versenden des Codes zum kompilieren, Fehlermeldung wird zurückgegeben, endgültige Speicherung der Antwort.

  • Entwicklung des Bewertungssystems für Programmieraufgaben basierend auf dem in 2013 entworfenen Konzeptes.

  • Entgegennahme des Programmcodes aus dem ILIAS-Plugin und Weiterreichung an den Java-Interpreter. Weiterreichung der Compiler-Meldung an das ILIAS-Plugin zur Darstellung in der Studierenden-Sicht.

  • Lösungscode des Dozenten wird mit dem Code des Studierenden auf Korrektheit geprüft und gemäß des Bewertungsschemas bewertet. Es wird auf rekursiven Code, korrekte Syntax und Semantik, richtiges Ergebnis, Compiler-Fehler geprüft (einige dieser Überprüfungen liefert bereits der Compiler).

  • Erstellung von Fehlerklassen bei Programmieranfängern in Java und ihre Gewichtung als Basis für die abgestufte Bewertung.

2013

  • Auf ILIAS aufbauende Entwicklungsumgebung für E-Klausuren und automatische Bewertungssysteme installiert. Beschaffung der IT-Technik. Suche und Einstellung von qualifiziertem Personal.

  • Aufgaben und Bewertungsmustern der Stift-&-Papier-Klausuren sind in ILIAS-Fragepools teilweise übertragen und falls nötig angepasst worden. Die Programmieraufgaben in ILIAS werden in dieser Phase als Lücken-/Auswahl-Fragen mit automatischer Bewertung oder als Freitext-Fragen mit manueller Bewertung übertragen.

  • Konzeptionelle Entwürfe des Bewertungssystems für Programmieraufgaben als Freitext-Fragen, denen folgende zwei Modelle zugrunde liegen:

    1. Bewertung durch Austausch von fehlerhaften durch korrekte Code-Abschnitte und    Prüfung auf Lauffähigkeit.

    2. Bewertung durch Scannen der Fehlermeldungen des Java-Compilers nach bestimmten  Fehlern und Zuordnung in vordefinierte Fehlerklasse.