Das Beispiel im Testquiz benutzt folgende Einstellungen (Bezeichnungen entsprechen jenen in Deutsch, nicht aufgeführte Einstellungen werden auf den Standardwerten belassen) und kann den Fragetyp (Calculated) vollständig ersetzen und um essentielle Funktionalitäten erweitern:

CodeRunner-Fragetyp

Fragetyp: octave_function (octave ist eine mit MatLab weitgehend kompatible Programmiersprache)

Anpassung: "Anpassen" & "Vorlagen-Debugging" aktivieren (ermöglicht später die notwendigen Einstellungen)

Antwortfeld: Zeilen = 1 (TeilnehmerInnen/StudenInnen sollen nur eine Zahl, und nicht einen längeren Programmcode als Antwort geben)

Vorabprüfung: deaktiviert (Nur sinnvoll für längere Programmieraufgaben)

Vorlageparameter: Hier werden die später in der Frage verwendeten Parameter (Antwort soll auf eine Nachkommastelle genau angegeben werden) und Variablen initialisiert, in unserem Beispiel:

{ "decimal_places" : 1, "percentage": {{ 20.0 + random(10)/10 }}, "selected": {{ 6 + random(3) }}, "believer": {{ 3 + random(2) }} }

Die Variable percentage wird in diesem Beispiel mit einer gleichverteilten Zufallszahl aus dem Interval [20.0,20.1] befüllt.

Twig controls: "Hoist template parameters" und "Twig all" aktivieren (ersteres vereinfacht die Syntax für die Variablen-Initialisierung, zweiteres ermöglicht Randomisierung da es Twig für alle Felder beim Input aktiviert

Anpassung

Vorlage: Hier brauchen wir das "Programm", das für eine Antwort ablaufen soll. Unser "Programm" vergleicht einfach nur, ob die gegebene Antwort mit dem Testcode übereinstimmt:

{% for TEST in TESTCASES %}
 {{ STUDENT_ANSWER }}=={{ TEST.testcode }}
 {% if not loop.last %}
   disp('#<ab@17943918#@>#');
 {% endif %}
{% endfor %}

(disp('#<ab@17943918#@>#'); ist der Test-splitter, dient nur zum Auseinanderhalten von Testfällen, falls es mehrere sind)

Vorlagensteuerung: "Is combinator" aktivieren (ermöglicht die Kombination des Vorlagen-Programms mit der gegebenen Antwort)

Allgemeines
Fragetext: Der Fragetext, in den die Variablen eingebettet werden können, in unserem Beispiel:
Laut einer Umfrage glauben {{QUESTION.parameters.percentage}}% an Wiedergeburt. 
Wie hoch ist die Wahrscheinlichkeit, dass von {{QUESTION.parameters.selected}} zufällig ausgewählten Personen genau {{QUESTION.parameters.believer}} an Wiedergeburt glauben?
(Antwort in %, auf {{QUESTION.parameters.decimal_places}} Dezimalstellen genau)

Antwort

Antwort: Hier wird die richtige Antwort mit der korrekten Octave-Formel (mit der richtigen Nachkommastellengenauigkeit) berechnet, in unserem Beispiel:
(Bitte hier Validate on save auswählen, damit gleich getestet wird, ob der Octave-Code auch funktioniert)

round(power(10,{{QUESTION.parameters.decimal_places}})*(binopdf({{QUESTION.parameters.believer}},{{QUESTION.parameters.selected}}, 
{{QUESTION.parameters.percentage}}/100))*100)/power(10,{{QUESTION.parameters.decimal_places}})

Testfälle

Hier wird der Octave-Code der in Antwort (siehe oben) gegeben wurde, verwendet um als Testfall zu dienen.

Testfall 1: {{QUESTION.answer}}

Erwartete Ausgabe: ans = 1

(Hier wird nur getestet, ob der oben bei "Antwort" eingegebene Octave-Code, das gleiche Ergebnis liefert, wie die "Antwort von der Studentin / vom Studenten".
Kommt bei diesem Vergleich 1 heraus (Die Gleichung ist WAHR, enspricht TRUE) kommt Octave auf das gleiche Ergebnis wie der/die StudentIn. ACHTUNG: die Leerzeichen sind wichtig!)

Zuletzt geändert: Mittwoch, 4. August 2021, 14:16