FormBased (Jack2): Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(34 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Beschreibung ===
=== 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-Dateien|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|XML-Dateien]] erstellt werden. Allgemeine Informationen über XML-Dateien wie auchweiterführende Links etc. findet man unter [[XML-Dateien|XML-Dateien]].
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-Dateien|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|XML-Dateien]] erstellt werden. Allgemeine Informationen über XML-Dateien wie auchweiterführende Links etc. findet man unter [[XML-Dateien|XML-Dateien]].


=== Die ExerciseChain ===
=== Die ExerciseChain ===
Zeile 7: Zeile 7:


In der ExerciseChain werden allgemeine Informationen zur Aufgabe gespeichert: Möchte man bspw. eine Aufgabe mit Variablen definieren, so muss man dies in
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
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 (Jack2)|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,  
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-Dateien|XML-Datei]] erzeugt, die '''zwingend'''  
die angezeigt werden soll, wenn der Lernende den '''Überspringen'''-Button klickt. Die ExerciseChain wird als [[XML-Dateien|XML-Datei]] erzeugt, die '''zwingend'''  
Zeile 13: Zeile 13:


=== Die Definition einer Stufe ===
=== 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
''→ Hauptartikel:'' [[Stage (Jack2)|Stage]]
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"?>
Jede Teilaufgabe (Stufe) in JACK bedarf einer eigenen Stage-Datei. Bei dieser Datei handelt es sich ebenfalls um eine [[XML-Dateien|XML-Datei]]. Der Name
  <exercise type="" editor="">
dieser Datei ist dabei beliebig und muss nur an der entsprechenden Stelle in der ExerciseChain referenziert werden. Innerhalb der Stage-Datei stehen die konkreten Inhalte der Stufe wie Fragestellung, Antwortoptionen, Feedback, Hinweise etc., die gegebenenfalls durch Variablen aus der exerciseChain erhalten werden. Jede Stufe muss außerdem eine von momentan vier Aufgabentypen sein:
    <input condition="">
* [[Checker#InstantMultipleChoiceChecker | Mutliple Choice]]: Es stehen mehrere Antwortmöglichkeiten zur Verfügung, aus denen durch Markieren von Checkboxen eine oder mehrere ausgewählt werden können.
      <inputvalue name="" type="" />
* [[Checker#InstantFillInChecker|Fill In]]: Es stehen ein oder mehrere Eingabefelder zur Verfügung, in denen Antworten eingegeben werden können.
    </input>
* [[SCList (Jack2)|SCList]]: Enthält eine Tabelle mit Checkboxen, durch die man Verknüpfungen zwischen Zeilen- und Spaltenbezeichnern angeben kann.
    ...
* [[InstantOrbitalChecker|Atomorbital]]: Stellt einen Editor zum Zeichnen von Atomorbitalen zur Verfügung und generiert automatisch Feedback.
    {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:
=== Kurzanleitung ===
* '''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.
Eine kompakte Erkläuterung, wie man ohne Vorwissen formbasierte Aufgaben erstellt, findet man im Artikel [[Kurzanleitung: Aufgabe FormBased (Jack2)|Kurzanleitung: Aufgabe FormBased]].
* '''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 <code>[pos=...]</code> 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 <code>[pos=1]</code> 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.


Die genauen Erläuterungen zu jedem einzelnen Stufentyp finden sich in den folgenden Abschnitten:
[[category:Aufgabentyp]]
 
# [[Multiple Choice]]
# [[Fill In]]
# [[SCList]]

Aktuelle Version vom 9. Juni 2023, 11:37 Uhr

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.

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

→ Hauptartikel: Stage

Jede Teilaufgabe (Stufe) in JACK bedarf einer eigenen Stage-Datei. Bei dieser Datei handelt es sich ebenfalls um eine XML-Datei. Der Name dieser Datei ist dabei beliebig und muss nur an der entsprechenden Stelle in der ExerciseChain referenziert werden. Innerhalb der Stage-Datei stehen die konkreten Inhalte der Stufe wie Fragestellung, Antwortoptionen, Feedback, Hinweise etc., die gegebenenfalls durch Variablen aus der exerciseChain erhalten werden. Jede Stufe muss außerdem eine von momentan vier Aufgabentypen sein:

  • Mutliple Choice: Es stehen mehrere Antwortmöglichkeiten zur Verfügung, aus denen durch Markieren von Checkboxen eine oder mehrere ausgewählt werden können.
  • Fill In: Es stehen ein oder mehrere Eingabefelder zur Verfügung, in denen Antworten eingegeben werden können.
  • SCList: Enthält eine Tabelle mit Checkboxen, durch die man Verknüpfungen zwischen Zeilen- und Spaltenbezeichnern angeben kann.
  • Atomorbital: Stellt einen Editor zum Zeichnen von Atomorbitalen zur Verfügung und generiert automatisch Feedback.

Kurzanleitung

Eine kompakte Erkläuterung, wie man ohne Vorwissen formbasierte Aufgaben erstellt, findet man im Artikel Kurzanleitung: Aufgabe FormBased.