ExerciseChain: Unterschied zwischen den Versionen
Swolff (Diskussion | Beiträge) (→Die Tags der ExerciseChain: Beschreibung zu Step gekürzt und Lunk auf Seite Step gesetzt) |
Swolff (Diskussion | Beiträge) (→Die Tags der ExerciseChain: Beschreibung next gekürzt und auf Next verlinkt) |
||
Zeile 10: | Zeile 10: | ||
* '''input:''' Für jede Variable, die der Stufe übergeben werden soll, muss hier ein Tag vom Typ <code><input></code> erstellt werden. Eine genauere Beschreibung für den Tag <code>input</code> finden Sie [[Input|hier]]. | * '''input:''' Für jede Variable, die der Stufe übergeben werden soll, muss hier ein Tag vom Typ <code><input></code> erstellt werden. Eine genauere Beschreibung für den Tag <code>input</code> finden Sie [[Input|hier]]. | ||
* '''output:''' In diesem Tag werden die Variablen definiert, welche die Stufe zurückgibt und die in der globalen Variablenliste gespeichert werden sollen. Eine genauere Beschreibung finden Sie [[Output|hier]]. | * '''output:''' In diesem Tag werden die Variablen definiert, welche die Stufe zurückgibt und die in der globalen Variablenliste gespeichert werden sollen. Eine genauere Beschreibung finden Sie [[Output|hier]]. | ||
* '''next:''' Dieses Tag definiert, welche Stufe bei welchem Ergebnis angezeigt wird. | * '''next:''' Dieses Tag definiert, welche Stufe bei welchem Ergebnis angezeigt wird. Eine genaue Beschreibung zu diesem Tag finden Sie [[Next|hier]]. | ||
* '''path:''' Definiert die nächste Stufe unter gewissen Bedingungen. Mögliche Bedingungen sind ein bestimmtes Ergebnis, welches vom Lernenden in dieser Stage erreicht wurde und welches im Attribut <code>result</code> angegeben wird oder ein Ausdruck für den Evaluator im Attribut <code>condition</code>, also z.B: wenn die nächste Stufe von den Variablen oder der Eingabe des Lernenden abhängt. Beide Attribute sind nicht verpflichtend, allerdings sollte mindestens eines der beiden angegeben werden. Die ID der nächsten Stufe wird über das Attribut <code>target</code> angegeben und eine Nachricht kann mit Hilfe des Attributs <code>message</code> angegeben werden. Weitere Einstellungsmöglichkeiten für das Attribut <code>target</code> sind <code>repeat</code> und <code>end</code>. | * '''path:''' Definiert die nächste Stufe unter gewissen Bedingungen. Mögliche Bedingungen sind ein bestimmtes Ergebnis, welches vom Lernenden in dieser Stage erreicht wurde und welches im Attribut <code>result</code> angegeben wird oder ein Ausdruck für den Evaluator im Attribut <code>condition</code>, also z.B: wenn die nächste Stufe von den Variablen oder der Eingabe des Lernenden abhängt. Beide Attribute sind nicht verpflichtend, allerdings sollte mindestens eines der beiden angegeben werden. Die ID der nächsten Stufe wird über das Attribut <code>target</code> angegeben und eine Nachricht kann mit Hilfe des Attributs <code>message</code> angegeben werden. Weitere Einstellungsmöglichkeiten für das Attribut <code>target</code> sind <code>repeat</code> und <code>end</code>. | ||
* '''skip:''' Falls der Lernende die Stufe mit dem Button '''Überspringen''' überspringen können soll, so kann man in diesem Tag mittels des Attributs <code>target</code> ein Ziel dafür angeben. Da der Output der Stufe eventuell von den Eingaben des Lernenden abhängt und die ExerciseChain einen Output erwartet, muss in diesem Fall für jeden vorgesehenen Output ein Tag <code><outputvalue></code> definiert werden. Soll dem Studierenden beim Überspringen einer Aufgabenstufe außerdem eine spezielle Nachricht (bspw. die entsprechende Lösung) angezeigt werden, muss diese in der [[Stage]]-Datei als <code><skipmessage></code> angegeben werden. Soll darüber hinaus ein "Überspringen" der letzten Aufgabenstufe (also ein vorzeitiges Beenden der Aufgabe) möglich sein, muss die entsprechende [[Stage]]-Datei in jedem Fall um einen <code><skipmessage></code>-Tag ergänzt werden. In diesem Fall trägt der Button die Aufschrift '''Lösung anzeigen'''. | * '''skip:''' Falls der Lernende die Stufe mit dem Button '''Überspringen''' überspringen können soll, so kann man in diesem Tag mittels des Attributs <code>target</code> ein Ziel dafür angeben. Da der Output der Stufe eventuell von den Eingaben des Lernenden abhängt und die ExerciseChain einen Output erwartet, muss in diesem Fall für jeden vorgesehenen Output ein Tag <code><outputvalue></code> definiert werden. Soll dem Studierenden beim Überspringen einer Aufgabenstufe außerdem eine spezielle Nachricht (bspw. die entsprechende Lösung) angezeigt werden, muss diese in der [[Stage]]-Datei als <code><skipmessage></code> angegeben werden. Soll darüber hinaus ein "Überspringen" der letzten Aufgabenstufe (also ein vorzeitiges Beenden der Aufgabe) möglich sein, muss die entsprechende [[Stage]]-Datei in jedem Fall um einen <code><skipmessage></code>-Tag ergänzt werden. In diesem Fall trägt der Button die Aufschrift '''Lösung anzeigen'''. |
Version vom 15. November 2018, 13:07 Uhr
Beschreibung
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. Die einzelnen Funktionen werden im Folgenden erläutert.
Die Tags der ExerciseChain
- variables: In diesem Tag werden die globalen Variablen der Aufgabe definiert. Wie man Variablen definiert und welche unterschiedlichen Möglichkeiten es dafür gibt, wird in Abschnitt Variablen erläutert. Eine genauere Beschreibung zum Tag
variables
finden Sie auf der Seite Variables. - step: Für jede Stufe der Aufgabe muss ein Tag von diesem Typ erstellt werden. Eine Beschreibung dazu finden Sie auf der Seite Step.
- input: Für jede Variable, die der Stufe übergeben werden soll, muss hier ein Tag vom Typ
<input>
erstellt werden. Eine genauere Beschreibung für den Taginput
finden Sie hier. - output: In diesem Tag werden die Variablen definiert, welche die Stufe zurückgibt und die in der globalen Variablenliste gespeichert werden sollen. Eine genauere Beschreibung finden Sie hier.
- next: Dieses Tag definiert, welche Stufe bei welchem Ergebnis angezeigt wird. Eine genaue Beschreibung zu diesem Tag finden Sie hier.
- path: Definiert die nächste Stufe unter gewissen Bedingungen. Mögliche Bedingungen sind ein bestimmtes Ergebnis, welches vom Lernenden in dieser Stage erreicht wurde und welches im Attribut
result
angegeben wird oder ein Ausdruck für den Evaluator im Attributcondition
, also z.B: wenn die nächste Stufe von den Variablen oder der Eingabe des Lernenden abhängt. Beide Attribute sind nicht verpflichtend, allerdings sollte mindestens eines der beiden angegeben werden. Die ID der nächsten Stufe wird über das Attributtarget
angegeben und eine Nachricht kann mit Hilfe des Attributsmessage
angegeben werden. Weitere Einstellungsmöglichkeiten für das Attributtarget
sindrepeat
undend
. - skip: Falls der Lernende die Stufe mit dem Button Überspringen überspringen können soll, so kann man in diesem Tag mittels des Attributs
target
ein Ziel dafür angeben. Da der Output der Stufe eventuell von den Eingaben des Lernenden abhängt und die ExerciseChain einen Output erwartet, muss in diesem Fall für jeden vorgesehenen Output ein Tag<outputvalue>
definiert werden. Soll dem Studierenden beim Überspringen einer Aufgabenstufe außerdem eine spezielle Nachricht (bspw. die entsprechende Lösung) angezeigt werden, muss diese in der Stage-Datei als<skipmessage>
angegeben werden. Soll darüber hinaus ein "Überspringen" der letzten Aufgabenstufe (also ein vorzeitiges Beenden der Aufgabe) möglich sein, muss die entsprechende Stage-Datei in jedem Fall um einen<skipmessage>
-Tag ergänzt werden. In diesem Fall trägt der Button die Aufschrift Lösung anzeigen.
Beispiel
XML-Datei
<?xml version="1.0" encoding="iso-8859-1"?>
<exercisechain>
<variables>
<option name="a" min="1" max="5" />
<option name="b" value="getRandomFromList(list(2,3,5,7,11))" />
<option name="c" value="[var=a]+[var=b]" />
<option name="d" value="getRandomFromList(list('Sinus','Kosinus'))" />
</variables>
<step id="1" file="stage1.xml" >
<input value="[var=c]" />
<input value="[var=d]" />
<output name="e" />
<output name="f" />
<next default="repeat" message="Bitte versuchen Sie es erneut." >
<path target="2" result="100" message="Richtig" />
</next>
<skip target="2" >
<outputvalue name="e" value="5" />
<outputvalue name="f" value="7" />
</skip>
</step>
<step id="2" file="stage2.xml" >
<input value="[var=c]" />
<input value="[var=d]" />
<next default="repeat" message="Bitte versuchen Sie es erneut." >
<path target="end" result="100" message="Richtig" />
</next>
<skip target="end" />
</step>
</exercisechain>
Beschreibung
Die zu dieser ExerciseChain gehörende Aufgabe besteht aus zwei Stufen, zu denen die Stufendateien stage1.xml und stage2.xml gehören. Bevor wir uns diesen zuwenden, wollen wir jedoch zunächst die Variablendeklaration im Tag <variables>
genauer betrachten. Es werden vier Variablen definiert, die innerhalb der Aufgabe durch die Verwendung des Platzhalters [var=name]
referenziert werden können:
- Die Variable a ist eine ganze Zahl zwischen 1 und 5.
- Die Variable b ist eine Zahl aus der Menge {2,3,5,7,11}, also eine der ersten fünf Primzahlen.
- Die Variable c ist die Summe aus der Variablen a und der Variablen b.
- Die Variable d ist eine Mengenvariable. Die Menge besteht aus den beiden Zeichenketten "Sinus" und "Kosinus".
Kommentiertes Aufgabengerüst
Eine kommentierte exerciseChain.xml kann man hier herunterladen.