FormBased (Jack2)
Beschreibung
Eine formularbasierte Aufgabe ist eine Aufgabe, bei der die Lernenden Eingaben in Felder tätigen müssen, die im Browser angezeigt werden. Sie besteht aus einer oder mehreren Fragen unterschiedlicher Typen (Multiple-Choice, Fill-In, SCList),die beliebig hintereinander geschaltet werden können. Der Lernende muss die Fragen einzeln beantworten und erhält zu jeder seiner Antworten ein individuelles Feedback sowie eine Punktzahl. In Abhängigkeit der Antwort des Lernenden bekommt er anschließend die nächste Stufe (bzw. Frage) angezeigt. So kann der Lehrende den Lernenden z.B. bei einer fehlerhaften Lösung die Probe machen lassen, während er bei einer richtigen Lösung sofort die nächste Frage angezeigt bekommt.Um eine Aufgabe zu erstellen, sind mehrere XML-Dokumente nötig: Ein XML-Dokument für die allgemeine Aufgabendefinition und für jede Frage ein weiteres XML-Dokument.Das XML-Dokument für die allgemeine Aufgabendefinition muss dabei zwingend den Namen exerciseChain.xml tragen. Die Namen für die restlichen Dateien können frei gewählt werden. In diesem Dokument wird zunächst beschrieben, wie man die ExerciseChain erstellt, anschließend wird erläutert, wie die einzelnen Fragetypen und die dafür notwendigen XML-Dateien erstellt werden. Allgemeine Informationen über XML-Dateien wie auchweiterführende Links etc. findet man unter XML-Dateien.
Kurzanleitung
Eine kompakte Erkläuterung, wie man ohne Vorwissen formbasierte Aufgaben erstellt, findet man im Artikel Kurzanleitung.
Die ExerciseChain
→ Hauptartikel: ExerciseChain
In der ExerciseChain werden allgemeine Informationen zur Aufgabe gespeichert: Möchte man bspw. eine Aufgabe mit Variablen definieren, so muss man dies in dieser Datei tun. Für jede einzelne Stufe der Aufgabe muss außerdem ein Abschnitt definiert werden. Dort teilt man der Aufgabe mit, welche Variablen sie dieser Stufe übergeben soll und welche Stufe bei welcher Einreichung als nächstes angezeigt werden soll. Des Weiteren kann man eine Stufe definieren, die angezeigt werden soll, wenn der Lernende den Überspringen-Button klickt. Die ExerciseChain wird als XML-Datei erzeugt, die zwingend den Namen exerciseChain.xml (bitte auf Groß-/Kleinschreibung achten!) tragen muss. Sie wird als Exercise Resource vom Typ WORKING_SHEET an die Aufgabe angehängt.
Die Definition einer Stufe
Um die Inhalte einer Stufe zu definieren, wie z.B. Fragetext, Antwortoptionen, Feedback, etc. ist für jede Stufe eine weitere XML-Datei notwendig. Der Name dieser XML-Datei ist beliebig und muss nur an der entsprechenden Stelle in der ExerciseChain referenziert werden. Zur Zeit gibt es drei mögliche Fragetypen für eine Stufe: Multiple-Choice, Fill-In und SCList (eine Tabelle mit Checkboxen). Die XML-Dateien der jeweiligen Fragetypen sind unterschiedlich und werden in den folgenden Abschnitten detailliert erläutert. Das Grundgerüst einer solchen Stufendefinition ist jedoch immer ähnlich und weist für alle Fragetypen gemeinsame Tags auf. Es hat die folgende Form:
<?xml version="1.0" encoding="iso-8859-1"?>
<exercise type="" editor="">
<input condition="">
<inputvalue name="" type="" />
</input>
...
{Stufenspezifischer Bereich}
...
<advice>
<option> Hinweistext </option>
</advice>
<skipmessage> Nachricht zum Überspringen </skipmessage>
<output>
<outputvalue value="" type="" />
</output>
</exercise>
Die gemeinsamen Tags haben die folgende Bedeutung:
- exercise: Das Wurzeltag einer jeden Stufendefinition. Es besitzt das Attribut "`type"', bei welchem der Fragetyp der jeweiligen Stufe einzutragen ist. Erlaubte Werte sind hier "mc", "fillIn" und "sclist". Des weiteren kann man über das Attribut editor steuern, ob die Stufe einen Formeleditor bei Fill-In-Kästchen besitzen soll. Mögliche Werte sind "true", "false" und der Name des jeweiligen Editors. Statt dem Attribut den Wert "false" zuzuordnen, kann es auch einfach weggelassen werden.
- input: In diesem Tag werden die Variablen definiert, die von der ExerciseChain übergeben werden. Für jeden Tag input muss ein Tag inputvalue definiert werden. Gibt es keine input-Tags in der ExerciseChain, so bleibt dieses Tag leer, es muss jedoch zwingend vorhanden sein. Über das Attribut condition kann außerdem eine Bedingung angegeben werden, die vom System geprüft werden soll. Will man bspw. eine Parabel <math>f(x) = ax^2 + bx + c</math> mit Variablen <math>a,b,c</math> definieren, so sollte <math>a \neq 0</math> gelten. Ist die Bedingung nicht erfüllt, so wird die Aufgabe dem Studierenden nicht angezeigt und er erhält eine Fehlermeldung. Dieses Attribut kann auch weggelassen werden.
- inputvalue: Definiert eine Variable für die lokale Variablenliste. Über das Attribut name wird der Name für die lokale Variablenliste bestimmt. Der Name muss dabei nicht mit dem Namen der Variable in der globalen Variablenliste übereinstimmen, es ist jedoch meist sinnvoll diesen beizubehalten. Außerdem wird über das Attribut type der Typ der Variable angegeben. Mögliche Werte bei diesem Attribut sind "integer" (für ganze Zahlen), "double" (für Dezimalzahlen), "string" (für sonstige Zeichenketten) und "set" für Mengen. Die Defaulteinstellung dieses Attributs ist "string".
- advice: Über das Tag advice können Hinweise gegeben werden. Für jeden Hinweis muss ein Tag option erzeugt werden. Der Studierende kann diese Hinweise über das Klicken des Hinweis-Buttons angezeigt bekommen.
- output: Für jede Variable, die an die ExerciseChain zurückgegeben werden soll, muss in diesem Tag ein Tag vom Typ outputvalue erstellt werden. Sollen keine Variablen zurückgegeben werden, so bleibt dieses Tag leer. Es muss jedoch zwingend vorhanden sein.
- outputvalue: Gibt eine Variable an die ExerciseChain zurück. Im Attribut value wird der Wert der Variable angegeben. Dieser Wert kann ein beliebiger String sein, den der Evaluator evaluieren kann. Möchte man eine studentische Eingabe bei einer Fill-In-Aufgabe zurückgeben, so kann man es mit
[pos=...]
referenzieren. Dabei muss nach dem Gleichheitszeichen die Nummer des Fill-In-Kästchens eingetragen werden. JACK nummeriert die Fill-In-Kästchen beginnend mit 1. Das erste Fill-In-Kästchen wird also durch den Platzhalter[pos=1]
referenziert, usw. (s. auch die Erklärung zum Tag option beim Fragetyp Fill In). Möchte man das Ankreuzmuster einer Multiple-Choice-Aufgabe zurückgeben, so belegt man das Attribut mit dem Wert "ticked". Über das Attribut type wird zudem analog zum Tag inputvalue der Typ der Variable definiert.
Stufentypen
Die genauen Erläuterungen zu jedem einzelnen Stufentyp finden sich in den folgenden Abschnitten: