ProFormA-Plugin für Moodle (aus Sicht Lehrender)

Das ProFormA-Plugin für Moodle bietet die Möglichkeit, Programmieraufgaben in Moodle automatisiert zu bewerten. Eingereichte Lösungen werden dabei gegen eine Testsuite laufen gelassen. Aus den Ergebnissen des Testlaufs wird dann anhand zuvor festgelegter Kriterien automatisch die Bewertung ermittelt. Die Tests laufen auf einem externen System (Praktomat) jeweils in einer gesicherten Umgebung (Sandbox).

Es wird im Weiteren vorausgesetzt, dass der Umgang mit der Fragensammlung und den Tests in Moodle vertraut ist.

Die gesamten Arbeiten entstanden im Rahmen des eCULT-ProFormA-Projekts.

Übersicht

Der ProFormA-Standard, der Namensgeber des Moodle-Plugins war, definiert eine Programmieraufgabe als XML-Datei, die alle notwendigen Informationen zur Aufgabe im ProFormA-Aufgabenformat enthält. Dies ist neben der Aufgabenbeschreibung vor allem die Testsuite, die vom Praktomat zur Bewertung der Einreichung durchlaufen wird. Das eigentliche Format ist für die Anwender (Lehrende und Studierende) irrelevant, so dass sie sich damit nicht beschäftigen müssen.

ProFormA-Aufgaben können direkt in Moodle oder aber extern erzeugt und anschließend in Moodle importiert werden. In Moodle besteht allerdings lediglich die Möglichkeit, einfache Java-Aufgaben zu erstellen. Für andere Programmiersprachen und komplexere Java-Aufgaben kann der ProFormA-Aufgaben-Editor genutzt werden.

Egal, wie eine Aufgabe erstellt wurde, Moodle speichert intern die ProFormA-XML-Datei ab und sendet diese im Rahmen einer studentischen Einreichung zum Praktomat.

Erstellen

Derzeit unterstützt das System folgende Programmiersprachen mit folgenden Test-Frameworks:

Für die Testsuite werden gängige Standards genutzt. Im Fall von Java sind dies JUnit und CheckStyle. Dies hat den Vorteil, dass für die automatisierte Bewertung betriebsbewährte Software zum Einsatz kommt. Zudem bleibt der Einarbeitungsaufwand für die Autoren überschaubar, da sie mit den Standards vertraut sind und meist existiert eine Vielzahl von Werkzeugen, die beim Erstellen der Tests genutzt werden können (z.B. IDE).

Das ProFormA-Plugin unterstützt den Einsatz der ProFormA-Fragen im Rahmen von Moodle-Tests. Ein Test kann natürlich neben ProFormA-Aufgaben auch noch andere Aufgabentypen enthalten, so dass man die Tests abwechslungsreicher gestalten kann. Außerdem kann man Tests mit nur einer (eher umfangreichen) Aufgabe erzeugen oder aus mehreren (kleineren) Aufgaben zusammensetzen.

Bei größeren Aufgaben empfiehlt es sich tatsächlich, diese in mehrere kleinere Teilaufgaben aufteilen. Dies bietet den Vorteil, dass die Studierenden, die Aufgabe in kleineren Einheiten abarbeiten können und die Kriterien für die Bewertung detailierter festgelegt werden können.

Letztlich lassen sich ProFormA-Aufgaben sehr vielfältig sowohl für Anfängeraufgaben als auch für komplexe Laborübungen einsetzen.

Erzeugen einer ProFormA-Aufgabe in Moodle

Wie bereits erwähnt, gibt es zwei Wege, eine Aufgabe in Moodle anzulegen:
  1. Direktes Erstellen im in Moodle eingebauten Editor (nur einfache Java-Aufgaben möglich)
  2. Erstellen mit dem externen ProFormA-Aufgaben-Editor und anschließender Import

Den prinzipiellen Ablauf beschreibt die folgende Tabelle:

Vorgang Umgebung A. Frage in Moodle erstellen B. Frage extern erstellen und importieren
Voraussetzungen schaffen extern (z.B. Eclipse) Musterlösung und Testsuite erstellen
ProFormA-Aufgaben-Editor
  1. die Aufgabe zusammenstellen
    (Hochladen der Testsuite und der Musterlösung, Eingabe der Aufgabenstellung...)
  2. Download der ProFormA-Datei
Frage in Fragesammlung erstellen Moodle
  1. Fragensammlung des Kurses öffnen, in dem die Frage genutzt werden soll
  2. Frage direkt in Moodle erstellen (über 'Neue Frage erstellen...')
  1. Fragensammlung des Kurses öffnen, in dem die Frage genutzt werden soll
  2. Import der ProFormA-Datei
  3. ggf. Ändern von Einstellungen der Aufgabe
Frage in Test nutzen Moodle
  1. Anlegen eines Tests
  2. Einstellungen anpassen!
  3. Einfügen der Aufgabe(n) in den Test

Das Anlegen des Tests in Moodle kann auch erfolgen, bevor die Frage erstellt wird. Einstellungen von Aufgaben und Tests können auch später noch verändert werden.

Einige Besonderheiten werden im Nachfolgenden erläutert.

Voraussetzungen

Nachdem in etwa klar ist, wie die Aufgabe aussehen soll, erstellt man

Die Musterlösung ist nicht zwingend erforderlich. Sie ist aber hilfreich, da sie das Überprüfen des Bewertungsablaufs der Aufgabe ermöglicht. Die Testfälle sollten mit der Musterlösung fehlerfrei durchlaufen. Die vorgenannten Dateien können am besten in einer geeigneten Entwicklungsumgebung (IDE) erstellt und ausgetestet werden.

Ansatz A: Erstellen in Moodle

Einfache Java-Aufgaben lassen sich in Moodle direkt eingeben. Die Einschränkung bezieht sich hier vor allem auf die Anzahl der genutzten Testdateien. Je JUnit-Test kann nämlich nur eine Datei eingebenen werden. Außerdem kann auch nur ein Checkstyle-Test mit ebenfalls nur einer Datei hinzugefügt werden.

Weitere Informationen zu den Einstellungen finden sich weiter unten.

Ansatz B: Importieren einer ProFormA-Aufgabe

Dazu ruft man die Importfunktion der Fragensammlung auf und wählt das ProFormA-Format. Die ProFormA-Datei muss ausgewählt oder in die Drop-Zone gezogen werden. Danach wird der Import gestartet.

Während des Imports werden verschiedene Daten der ProFormA-Datei ausgelesen und in ein Frage-Objekt von Moodle übernommen (z.B. Aufgabenbeschreibung). Es handelt sich dabei i.W. um Angaben, die vom Praktomat nicht verwendet werden (z.B. die Aufgabenbeschreibung). Diese Werte können in Moodle beliebig geändert werden.

Import

Aufgabeneinstellungen

In Moodle lassen sich verschiedene Daten einer Aufgabe einstellen. Dabei handelt es sich

  1. hauptsächlich um Angaben, die die Anzeige für den Studierenden betreffen (z.B. Aufgabenbeschreibung, Codeschablone),
  2. Form der Einreichung (Editor, Datei-Upload, Export aus Versionsverwaltung) sowie
  3. Einstellungen zur Bewertung (maximal erreichbaren Punkte, Punktabzug beim Frageverhalten 'Mehrfachbeantwortung (mit Abzügen) oder Gewichte).

Aufgabebeschreibung

Die Angaben, die dem Studierenden angezeigt werden, sollten im Wesentlichen selbsterklärend sein. Dazu gehört die Aufgabenbeschreibung oder Dateien, die der Studierende herunterladen kann. Dabei kann es sich um weitere Erläuterungen zur Aufgabe z.B. in Form einer pdf-Datei handeln oder auch um Code-Bibliotheken oder Eingabedateien.

Form der Einreichung

Es werden folgende Eingabeformen unterstützt:

  1. Editor mit Codevorgabe und Syntax-Highlighting
  2. Datei-Upload (Filepicker)
  3. Versionskontrollsystem SVN

Filepicker: Die akzeptierten Dateitypen können als Endung mit vorangestelltem Punkt (.java) oder als Mimetype angegeben werden.

Versionskontrollsystem: Dies wird i.allg. mit Gruppen genutzt. Dazu müssen die Kursteilnehmer vorab in Gruppen eingeteilt werden. Die Gruppennummer wird dann je Teilnehmer automatisch ermittelt und in die URI an den Platzhalter {group} eingetragen. Dort wird die Einreichung erwartet und vom Praktomat heruntergeladen.

Aufgabenbewertung

Es wird unterschieden in die 'all-or-nothing'-Bewertung, bei der eine Einreichung entweder mit 0 oder mit voller Punktzahl (z.B. 1) bewertet wird und der gewichteten Summe. Bei letzterer wird aus den Teiltests eine Punktzahl ermittelt, wobei jeder Teiltest mit einem Gewicht versehen ist. Die Gewichte sind frei wählbar. Allerdings muss die Summe größer als 0 sein.

Neben der Bewertung können auch die Titel und Beschreibungen der Tests geändert werden.

Anlegen eines Tests in Moodle

Zur Nutzung einer ProFormA-Frage muss ein Test in einem Kurs angelegt werden. Auch für diesen Test gibt es bei den Einstellungen einiges zu beachten.

Test-Einstellungen

Besonderes Augenmerk muss auf das Frageverhalten und die Berichtsoptionen gelegt werden. Hier wird festgelegt, ob, wann und wie der Studierende eine Rückmeldung zu seiner Einreichung erhält.

Beim Frageverhalten ist zu beachten, dass dies beim ProFormA-Plugin intern immer auf die Mehrfachbeantwortung (mit oder ohne Abzüge) hinausläuft - unabhängig davon, was eingestellt wurde. Selbsteinschätzung und Hinweise werden nicht unterstützt.

Standardeinstellung ist die 'Spätere Auswertung'. Diese Einstellung verhält sich 'zur sicheren Seite', d.h. wenn man vergisst, hier Änderungen vorzunehmen, dann bekommt man zu wenig angezeigt. Wäre die Mehrfachbeantwortung der Standard, so würde ohne Änderung u.U. mehr angezeigt als man beabsichtigt, so dass diese Voreinstellung durchaus Sinn macht.

Die 'Spätere Auswertung' ist bei Übungsaufgaben allerdings meistens nicht sinnvoll. Hier möchte man i.allg., dass der Studierende die Rückmeldung des Systems (das Spezifische Feedback) direkt nach einem Versuch (nach Drücken von 'Prüfen') angezeigt bekommt, was bei der 'späteren Auswertung' nicht möglich ist.

In den Berichtsoptionen sollte sorgfältig ausgewählt werden, was der Studierende wann als Fedback erhält. Insbesondere sollte überlegt werden, ob der Studierende die 'Richtige Lösung' (Musterlösung) überhaupt zu Gesicht bekommen soll.

Berichtsoptionen

Der folgende Screenshot verdeutlicht, welche Anzeigefelder mit den einzelnen Berichtsoptionen verbunden sind. (Die Rückmeldung des Graders und die Musterlösung sind ausklappbar.)

Bedeutung der Berichtsoptionen

Einfügen der ProFormA-Aufgabe in den Test

Wenn die Frage in der Fragensammlung vorliegt, kann sie in den Test eingefügt werden ("Testinhalt bearbeiten", danach "hinzufügen" und "aus der Fragensammlung" auswählen) und ist einsatzbereit.