Variablen (Jack2)
Beschreibung
Eine wichtige Funktion von formularbasierten Aufgaben ist die Parametrisierung der Aufgaben durch Variablen. Dadurch können beliebig viele Insatnzen derselben Aufgabe, bspw. mit verschiedenen Zahlenwerten generiert werden. Eine Variable definiert nach dem Verständnis von JACK einen oder mehrere (z.B. eine Menge) solcher variabler Werte. Sie kann zufällig oder nach einer vorgegebenen Berechnungsvorschrift bestimmt werden und trägt einen für die Aufgabe eindeutigen Namen, welcher dazu dient, sie zu referenzieren.
Beispiel
Die obige Beispielaufgabe dient dazu, die Idee der Parametrisierung von Aufgaben zu erläutern. Der Lernende soll in einer typischen Mathematikaufgabe den größten gemeinsamen Teiler von den beiden Zahlen <math>n = 120</math> und <math>x_2 = 125</math> berechnen. Natürlich könnte diese Aufgabe auch mit zwei beliebigen anderen, zufällig gewählten natürlichen Zahlen gestellt werden und der größte gemeinsame Teiler stets berechnet werden. Es wäre daher denkbar, die beiden Zahlen <math>x_1</math> und <math>x_2</math> zufällig aus einer vorgegebenen Menge ziehen zu lassen und man erhielte für jede Möglichkeit eine andere Instanz derselben Aufgabe. Da man in diesem Fall vermutlich zumeist 1 als größten gemeinsamen Teiler erhalten würde, bietet einem JACK jedoch auch die Möglichkeit, anders vorzugehen. So kann der ggt zuerst als zufällige natürliche Zahl aus einem vorgegebenen Intervall gezogen werden und die Zahlen <math>x_1</math> und <math>x_2</math> anschließend mithilfe geeigneter ebenfalls zufällig gezogenen Faktoren ermittelt werden. Es können also bereits belegte Variablenwerte verwendet werden, um andere zu berechnen.
Definition von Variablen in der ExerciseChain
Die Definition von Variablen geschieht in JACK in der ExerciseChain über das Tag variables. Jede Variable definiert man durch ein Tag option und gibt ihr einen Namen über das Attribut name. Referenziert werden können die Variablen anschließend über ihren Namen mittels des Platzhalters [var=name]
. Die kann an allen Stellen innerhalb einer Aufgabe geschehen, also z.B. in der ExerciseChain, in der Aufgabenstellung, in Hinweisen oder auch im Feedback. Die Berechnungsvorschrift kann mithilfe verschiedener Funktionen geschehen, die hier vorgestellt werden sollen:
Ganzzahlige Zufallszahl aus einem vorgegebenen Intervall
Dies geschieht durch die Angabe einer unteren und einer oberen Grenze des Intervalls mittels der Attribute min und max. Der folgende Eintrag wählt beispielsweise eine ganzzahlige Zufallszahl im Intervall [1,5] aus, also eine der Zahlen 1,2,3,4 und 5:
<option name="a" min="1" max="5" />
Ziehen von Elementen aus einer Menge
Das Attribut set kann verwendet werden, um eine Menge zu definieren, aus der zufällig ein Element gezogen wird. Die folgende Variablendeklaration kann verwendet werden, um zufällig eine der ersten fünf Primzahlen zu ziehen:
<option name="a" set="{2,3,5,7,11}" />