Stage (Jack2)

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

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 vier mögliche Fragetypen für eine Stufe: Multiple Choice, Fill In, SCList (eine Tabelle mit Checkboxen) und Atomorbital. Die XML-Dateien der jeweiligen Fragetypen sind unterschiedlich und werden in den folgenden Abschnitten detailliert erläutert.

Aufbau

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. Bei Fill In-Aufgaben können mittels des Attributs suppressEmptyWarnings die automatischen Warnungen des Checkers bei leergelassenen Fill-In-Kästchen unterdrückt werden. Auch hier ist der Defaultwert des Attributs false und es akzeptiert die Werte true und false. Es gibt die Möglichkeit mithilfe des Attributs editor einen Formeleditor in eine Stage einzubinden. Eine ausführliche Beschreibung ist auf der Seite Formeleditor zu finden.
  • 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.
  • skipmessage: Hier kann eine Nachricht angegeben werden, die beim Überspringen der Aufgabenstufe angezeigt wird. Beispielsweise kann dem Studierenden hier die Lösung der übersprungenen Stufe erläutert werden. Gibt man der letzten Aufgabenstufe eine <skipmessage>, zeigt der Überspringen-Button stattdessen Lösung anzeigen an, andernfalls wird der Button hier nicht angezeigt.
  • output: Für jede Variable, die an die ExerciseChain zurückgegeben werden soll, muss in diesem Tag ein Tag vom Typ outputvalue erstellt werden. Eine erweiterte Beschreibung dazu finden Sie |hier.
  • 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). Über das Attribut type wird zudem analog zum Tag inputvalue der Typ der Variable definiert.

LaTeX-Umgebung

In Fragetexten, Antworten, Hinweisen und Feedback kann jederzeit die Matheumgebung von LaTeX verwendet werden. Dies geschieht, indem man einfach den LaTeX-Code eingefasst in $-Zeichen an der entsprechenden Stelle in das XML-Dokument schreibt. Eine Befehlsreferenz zu LateX gibt es hier.

Wichtig ist jedoch, dass ein Fill-In-Kästchen niemals in einer Matheumgebung stehen und in Dropdown-Menüs kein LaTeX-Code stehen darf!

Bilder

Bilder können ebenfalls an allen Stellen in Aufgaben eingepflegt werden. Dies geschieht im XML-Dokument über den Befehl [img name=" "] DATEINAME.ENDUNG [/img]. Dabei muss DATEINAME.ENDUNG durch den richtigen Dateinamen des Bildes sowie die richtige Endung ersetzt werden. Über das Attribut name kann man dem Bild eine Unterschrift geben.

Achtung: Möchte man Bilder benutzen, die man nicht selbst erstellt hat, sollte man die Urheberrechte des Bildes prüfen!

HTML

Man kann an beliebiger Stelle HTML verwenden. Dabei muss darauf geachtet werden, dass die entsprechenden Tags nicht von spitzen Klammern eingefasst sind (diese sind den XML-Tags vorbehalten), sondern durch die jeweilige XML-Notation ersetzt werden. Also &lt; statt < und &gt; statt >.

Möchte man also beispielsweise seinen Text fett markieren, schreibt man nicht <b>fett gedruckter Text</b>, sondern &lt;b&gt;fett gedruckter Text&lt;/b&gt;.

Graphen

Es besteht an den gleichen Stellen wie Bilder und Latex-Code auch die Möglichkeit, dynamisch (interaktive) Graphen mit Hilfe von Javascript zu erstellen.

→ Hauptartikel: Graphen