Der ProFormA-Editor ermöglicht es, eine XML-Datei für Programmieraufgaben komplett neu zu erstellen. Außerdem kann eine existierende XML-Datei (ggf. auch in einer abweichenden Formatversion) eingelesen werden, geändert und im aktuellen Format 2.0 exportiert werden. Das XML-Format entspricht dem Standard für den Austausch von Programmieraufgaben entsprechen.
Die Programmieraufgaben bestehen im Wesentlichen aus einer Aufgabenbeschreibung und geeigneten Testfällen. Diese sollen üblicherweise die Funktionaität der studentischen Einreichung überprüfen. Es können aber je nach Zielsetzung auch andere Kriterien hinzugezogen werden (Compilierbarkeit, Stil, Robustheit, Performance...).
Die Testfälle nutzen bekannte Standards, die je nach gewählten Programmiersprache zur Verfügung stehen (z.B. JUNIT und Checkstyle bei Java).
Der Editor nutzt Funktionen, die nicht jeder Browser in der benötigten Form unterstützt. Chrome (getestet mit Version 72.0.3626.96 (64-bit)) und Firefox (getestet mit 65.0 (64-Bit)) sind hier die Browser der Wahl.Zunächst wird unter dem Main-Reiter die Aufgabenbeschreibung erstellt. Damit wird vor allem die studentische Sicht auf die Aufgabe festgelegt. Sie besteht aus:
Dazu muss weiterhin die Programmiersprache aus einer Liste ausgewählt werden.
In einem weiteren Abschnitt kann die studentische Einreichung eingeschränkt werden, um bereits auf Client-Seite einige Fehler abfangen zu können (z.B. maximale Dateigröße).
Hier können auch ein oder mehrere Templates (Code-Schablonen) angegeben werden. Diese erleichtern dem Studierenden den Einstieg
in die Aufgabe und helfen, lange Schnittstellenbeschreibungen zu vermeiden.
Bei Verwendung des Editors im Lernmanagementsystem wird dieser beim ersten Darstellen der Aufgabe
mit der Schablone vorbelegt.
Der Lernende kann dann seinen Code direkt in die Schablone tippen.
Wird der Filepicker eingesetzt, wird die Code-Vorlage als Download angeboten.
Wichtig ist im gesamten Formular: Alle mit einem roten Stern (*) gekennzeichneten Felder müssen ausgefüllt sein, damit eine Aufgabe exportiert werden kann.
Die Musterlösung wird im Reiter Musterlösung eingegeben. Sie besteht aus dem Quellcode, der sinnvollerweise in einem externen Editor bzw. einer entsprechenden Entwicklungsumgebung erstellt und vorab getestet wird.
Die Datei wird entweder über die [open...]-Option der Filename-Auswahlliste oder am einfachsten per Drag&Drop in den Editor geladen.
Wichtig: Wenn die studentische Eireichung nur aus Text in einem Editor (im Gegensatz zu einer hochgeladenen Datei) besteht, so wird dieser Text im Grader in einer Datei gespeichert, die denselben Namen wie die Musterlösung trägt. Es ist daher auf den korrekten Namen der Musterlösung zu achten.
Die Tests bilden den Kern der Aufgabe. Sie werden vom Grader ausgeführt, um eine Bewertung der studentischen Einreichung zu ermitteln. Hier müssen entprechend der Programmiersprache und der Aufgabenstellung geeignete Tests definiert werden. Der Editor bietet abhängig von der Programmiersprache unterschiedliche Testmöglichkeiten an: Bei Java gibt es z.B. JUnit- oder Compiler-Tests.
Testskripte werden analog zur Musterlösung hinzugefügt.
Anhand der verschiedenen Knöpfe unten auf der Test-Seite können weitere Tests hinzugefügt werden.
Jede Datei muss einen Namen mit einer entsprechende Endung (z.B. .java
) erhalten.
(Werden die Dateien über die [open...]-Option oder per
Drag&Drop geladen, so wird der Original-Dateiname automatisch übernommen.)
Eine Besonderheit gibt es für Java-Dateien. Hier wird der Dateiname aus dem Dateiinhalt ermittelt (Package und Klassenname). Stimmt er nicht mit dem echten Dateinamen überein, so erscheint eine Warnung.
Alle Dateien sollten mit Tests, der Musterlösung oder auf der Hauptseite (Template, ...) verknüpft sein.
Dateien haben je nach Anwendungszweck eine unterschiedliche Sichtbarkeit:
Anzeige (interne Bezeichnung) | Bedeutung | Beispiel | Nutzung durch Grader | sichtbar für Studierende |
---|---|---|---|---|
Downloadable File(s) | enthält enthält weitere Details zur Aufgabenstellung (z.B. pdfs)
oder Code, den der Studierende benötigt,
um seine Lösung zu entwickeln. Gleichzeitig kann die Datei auch in einem der Tests beim Compilieren/ Linken eingebunden werden. |
pdf, Java-Interface-Klasse, jar-Datei, c-Header | nur, falls zusätzlich in Test eingebunden | x |
Code-Schablone | Code-Schnipsel (skeleton), der vom Studierenden bis zur vollständigen Lösung ergänzt werden soll. | Klassenrahmen mit Funktionsrümpfen | - | x |
Test | Testskripte, Bibliotheken u.ä., die entsprechend dem Testtyp in der Sandbox oder aber ausgeführt werden | JUNIT-Dateien, Checkstyle-Dateien | x | nur, falls zusätzlich in Liste der Downloadable Files |
Musterlösung | Musterlösung(en) | x (i.allg. aber nicht benutzt) | abhängig vom LMS und dessen Einstellungen |
Sichtbar für Studierende bedeutet, dass sie die Dateien zumeist als Download angeboten bekommen.
Die Musterlösung wird dem Studierenden nur nach der Einreichung angezeigt und auch nur dann, wenn der Lehrende dies im LMS einschaltet. Der Grader sieht die Musterlösung, nutzt sie im Normalfall aber nicht.
Dateien beinhalten zumeist Tests, zum Beispiel Unittests, Blackbox Tests oder statische Tests. Der Zweck jeder Datei wird dadurch angegeben, dass sie mit einem Test oder einer Musterlösung verknüpft wird. Die Verbindung zwischen der Datei und ihrem Zweck erfolgt über den Dateinamen.
Sobald alle gewünschten Dateien und Tests hinzugefügt wurden, kann
die Aufgabe als Zip-Datei exportiert werden.
Dazu wird der Save Zip File
-Knopf verwendet.
Eine XML-Datei oder eine Zip-Datei, welche eine task.xml enthält, können
auch zu Bearbeitungszwecken eingelesen
werden. Dazu wird über den Load Task...
-Knopf eine Datei gesucht und geladen.
Die Aufgabe kann nun wie oben beschrieben verändert und auch wieder exportiert
werden.