Blog

16. Juni 2019

STACK4Starters

kuratiert von Cedric Pörschke

Inhaltsverzeichnis

1.1 Aufgabenwert

Im Aufgabenwert kann eine Zahl größer Null stehen. Bei mehreren Rückmeldebäumen, werden die erreichbaren Punkte wie folgt aufgeteilt:

Ist \(n\) die Zahl der erreichbaren Punkte und \(p_i\) der Aufgabenwert des \(i\)-ten Baumes, so erhält man bei korrekter Antwort \(\frac{p_i}{n\sum_{i=1}^n p_i}\) Punkte für den \(i\)-ten Baum. Um eine gute Übersicht zu haben, ist es hilfreich, dass die Summe \(\sum_{i=1}^n p_i\) der Punkte der Bäume der erreichbaren Punktzahl \(n\) entspricht.

1.2 Auto-Vereinfachung

Hier kann die automatische Vereinfachung ausgeschaltet werden.

Beispiel:
Steht die Auto-Vereinfachung auf Ja, ist sie eingeschaltet und vereinfacht die im Rückmeldebaum definierten Feedback-Variablen. Definieren wir dort z.B. \(f\) als \(2x-x\), so wird \(f\) bei eingeschalteter Auto-Vereinfachung als \(x\) ausgegeben und bei ausgeschalteter Auto-Vereinfachung \(2x-x\) (vgl. Abbildung 1.1).

(a) Auto-Vereinfachung steht auf Ja und gibt \(f\) als \(x\) aus                  (b) Auto-Vereinfachung steht auf Nein und gibt \(f\) als \(2x-x\) aus

Abbildung 1.1: Auto-Vereinfachung

1.3 Feedback-Variablen

Genau wie das Feld der Aufgabenvariablen ist es hier möglich Variablen zu definieren. Der Unterschied zum Feld der Aufgabenvariablen liegt darin, dass hier die Eingabe des Lernenden genutzt werden kann. Das kann in manchen Fällen hilfreich und übersichtlich sein, sowie Knoten im Baum ersparen.

Beispiel:
Im Folgenden zeigen wir die Möglichkeit, dass zwei Funktionen als richtig erachtet werden:

Abbildung 1.2: Sowohl \(phi(x)\) als auch \(phi2(x)\) werden als richtig anerkannt.

1.4 Knoten

Ein Knoten ist ein Teil vom Rückmeldebaum und beinhaltet eine Antwortüberprüfung mit Punkten und Feedback. Man kann mehrere Knoten innerhalb eines Baumes erzeugen und miteinander verbinden. Jeder Knoten hat genau zwei Äste und muss eine Verbindung zum Startknoten haben. Ein Knoten muss aber auf keinen weiteren Knoten zeigen (Nächster).

Beispiel:
Abbildung 1.3a zeigt einen Baum, der nur aus dem Startknoten besteht. Bei korrekter Antwort gibt es volle Punktzahl(1) bei falscher Antwort keine (0). Die Abbildung Rückmeldebaum mit vier Knoten 1.3b zeigt einen Baum mit vier Knoten. Alle haben eine Verbindung zum ersten Knoten. Ist die erste Abfrage nicht korrekt, so gibt es keine Punkte, bei korrekter Antwort gibt es die Hälfte der Punkte und die weiteren Knoten werden durchlaufen. Dann muss entweder die Überprüfung in Knoten 2 oder in Knoten 3 korrekt sein, damit auch die Überprüfung im letzten Knoten ausgeführt wird.
Ein Knoten besteht aus drei Teilen:

     1. Überprüfung der Eingabe (gegebene Antwort)

     2. Feedback bei korrekter Antwort

     3. Feedback bei falscher Antwort

1. Überprüfung der Eingabe (gegebene Antwort) besteht aus den folgeneden Feldern:

                           a) Rückmeldebaum mit einem Knoten                                              (b) Rückmeldebaum mit vier Knoten

Abbildung 1.3: Rückmeldebäume zeigen die Verbindungen der Knoten

a)  Antwortüberprüfung – Wahl eines Vergleichsoperators zum Prüfen der Eingabe \(ans1\) (weitere Informationenen folgen im Abschnitt 1.4.1).

b)  SAns – Feld für die Eingabe \(ans1\)

c)  TAns – Feld für die Musterlösung \(lsg\)

d)  Test-Option – Feld für weitere Optionen zum gewählten Vergleichsoperator (nicht alle Vergleichsoperatoren besitzen eine Option)

e)  Feedback unterdrücken – Wahl zur Anzeige des vom Vergleichsoperator abhängenden, in STACK integriertes Feedback (Abbildung 1.5)

Abbildung 1.4: Knoten 1 zur Überprüfung mittels NumAbsolute (a)), ob die Eingabe \(ans1\) (b)) nicht weiter als \(eps = 0.05\) (d)) von der Musterlösung \(lsg\) (c)) entfernt ist

2. Feedback zur korrekten Antwort besteht aus den folgeneden Feldern (Knoten i wenn WAHR): (vgl. Abbildung 1.6)

a)  Mod – Verteilungsmodus der Punkte bestehend aus =/+/-

b)  Score – Anteilige Punkte vom Aufgabenwert (vgl. 1.1), angegeben durch eine Zahl zwischen 0 und 1 (Brüche sind nicht erlaubt; Dezimalzahlen werden auf zwei Kommastellen gerundet)

c)  Abzüge – Abzüge nach jedem Versuch (vgl. Properties)

(a) Ohne Feedback unterdrücken wird die Variablensubstitution angezeigt

(b) Mit Feedback unterdrücken wird die Variablensubstitution verborgen

Abbildung 1.5: Feedback unterdrücken mit Antwortüberprüfung SubstEquiv (vgl. 1.4.1)

d)  Nächster – Verknüpfung zum nächsten Knoten oder nicht

e)  Antworthinweis – Zur Erstellung von Berichten und Analyse der gegebenen Antworten (vgl. Reporting)

f)  Knoten i WAHR feedback – HTML-Textbox, in der das Feedback eingebaut werden kann mit Zugriff auf die Eingabe \(ans1\) und alle weiteren Variablen

Abbildung 1.6: Knoten 1 wenn WAHR für das Feedback mit dem Verteilungsmodus = (a)), den anteiligen Punkten 1 (b)), keine weiteren Äste (d)), dem Antworthinweis prt1-1-T und dem Feedbacktext Gut gemacht! (e))

3. Feedback zur falschen Antwort besteht aus den folgeneden Feldern (Knoten i wenn FALSCH): Analog zu 2. (vgl. Abbildung 1.7)

1.4.1 Antwortüberprüfung

Der Name gibt klar zu erkennen, was hier vor sich geht. Die Eingabe wird auf Korrektheit überprüft. Diese Überprüfung kann mit unterschiedlichen Vergleichsoperatoren erfolgen, z.B. mittels der Prüfung auf algebraische Äquivalenz oder ob der Abstand der Eingabe zu der Lösung hinreichend klein ist (NumAbsolute).

Die Eingabe wird im folgenden stets mit \(ans1\) bezeichnet.

Abbildung 1.7: Knoten 1 wenn FALSCH für das Feedback mit dem Verteilungsmodus = (a)), den anteiligen Punkten 1 (b)), keine weiteren Äste (d)), dem Antworthinweis prt1-1-F und dem Feedbacktext Die gegebene Antwort @ans1@ ist leider nicht korrekt. (e))

Int

Dieser Vergleichsoperator ist für die Überprüfung einer Stammfunktion einer gegebenen Funktion \(f(x)\) gedacht. Eine Stammfunktion von \(f(x)\) ist in TAns und die Eingabe \(ans1\) in SAns einzutragen. Als Test-Option muss die Variable zum Integrieren in einer Liste angegeben werden, d.h. in unserem Fall ist die Test-Option \([x]\). Es können weitere Listeneinträge mit alternativen Integranten (siehe

Abbildung 1.8

Beispiel 2). Ist \(F(x)\) eine gesuchte Stammfunktion von \(f(x)\) (ohne Konstante), so wird die Eingabeans1 des Lernenden algebraisch mit \(F(x)\) verglichen und geprüft ob \(ans1\) eine von \(x\) unabhängige Variable für die beliebige Konstante enthält. Es können auch konkrete Werte wie beispielsweise \(log(2)\) hinzuaddiert werden, also wird \(ans1 = F (x) + C\) sowie \(ans1 = F (x) + log(2) + C\) als korrekt gewertet. Hierbei kann \(C\) durch viele andere Buchstaben ersetzt werden. Allerdings nicht alle! Bestitzt die Stammfunktion \(F(x)\) den Term \(log(g(x))\) als Summand ist Vorsicht geboten.

Beispiel 1:
Betrachten wir folgenden Fall, dass der Integrant durch folgende Funktion beschrieben wird:

\(f(x) = \frac{9x^2}{5x^3+5}\)

Dann ist

\(F(x) = \frac{3}{5}\log(x^3+1)\)

eine Stammfunktion von \(f(x)\). Addiert man nun eine Zahl hinzu, ist auch dies eine Stammfunktion. Also ist auch aufgrund des Logarithmusgesetzes \(log(a · b) = log(a) + log(b)\)

\(\begin{align*}
ans1 &= \frac{3}{5}\log(x^3+1) + \frac{3}{5}\log(5)\\
&= \frac{3}{5}\left(\log(x^3+1) + \log(5)\right)\\
&= \frac{3}{5}\log(5(x^3+1))\\
&= \frac{3}{5}\log(5x^3+5)
\end{align*}\)

eine Stammfunktion von \(f(x)\). Um nun die Eingaben \(ans1\) als richtig zu bewerten, müssen in der Abfrage nicht

\(ans1\) und \(F(x)\)

in die Vergleichsfelder geschreiben werden, sondern

\(radcan(factor(ans1))\) und \(radcan(factor(F(x)))\).

Die Funktion \(radcan\) führt eine Vereinfachung von Expotential-, Logarithmen- und Wurzeltermen durch, nachdem die Funktion \(factor\) die Terme \(ans1\) bzw. \(F(x)\) faktorisiert hat (vgl. Abbildung 1.9). Die Funktionen \(trigreduce,trigsimp\) und \(ratsimp\) können einen Ausdruck ebenfalls weiter vereinfachen (vgl. Abbildung 1.10).

Abbildung 1.9: Vergleich der Funktionen \(F(x)\) und \(ans1\) mittels der Maxima-Funktionen \(factor\) und \(radcan\)

Abbildung 1.10: Beispiele von Vereinfachungsfunktionen \((csc(x) := \frac{1}{sin(x)})\)

Unter Nutzung der Funktion \(radcan\) gilt:
Werden die in den Aufgabenvariablen verwendeten Variablen als Konstante einer Stammfunktion gewählt, werden diese als falsch gewertet, da diese Buchstaben im System einen festen Wert besitzen. Analog zu diesem Umstand, wird die Antwort \(ans1 = F (x) + f\) als falsch gewertet, wenn \(f\) die Variable des Integranten ist (vgl. Abbildung 1.11). Aber auch andere Buchstaben für die Konstante werden als falsch gewertet, z.B. \(v\).
Empfehlung:

Unter Nutzung der Funktion \(radcan\) sollten die Variablen so benannt werden wie sie niemand eingeben würde.

(a) \(C\) ist in den Aufgabenvariablen als 1 definiert.

(b) \(f\) ist in den Aufgabenvariablen als Integrant \(\frac{1}{x}\) definiert, also \(f\) : 1/\(x\)

Abbildung 1.11: Beispiele für die Eingabe von Konstanten, die in den Aufgabenvariablen definiert sind unter Nutzung der \(radcan\)-Funktion zum Überprüfen

Beispiel 2:
Wir wählen \(f(x):= \frac{1}{x}\) als Integranten. Dann ist \(F(x):= \log(|x|)\) eine Stammfunktion von \(f(x)\). Nutzt man die Maxima-Funktion integrate um \(F(x)\) zu bestimmen, gilt ebenfalls

\(F(x):= integrate(f,x) = \log(|x|)\).

Vergleicht man nun \(ans1\) und \(F(x)\) mittels des Vergleichsoperator Int und möchte auch

\(F_2(x):=\log(x)\)

als korrekt werten, kann ein weiterer Knoten mit der entsprechenden Abfrage an den ersten Knoten geknüpft werden.

Eine andere Möglichkeit \(\log(|x|)\) und \(\log(x)\) als korrekt zu bewerten, ist es \(F(x):=\log(x)\) zu

definieren und \([x, \frac{1}{x}]\) als Test-Option hinzuzufügen (vgl. Abbildung 1.12). Jeder Eintrag bis auf der

Abbildung 1.12: Vergleich von \(ans1\) mit der Lösung \(F(x) = \log(x)\) und der Liste \([x, 1/x]\) als Test-Option

erste in der Liste der Test-Option wird mittels der Maxima-Funktion \(integrate\) integriert. Diese neue Stammfunktion wird ebenfalls als korrekt gewertet. In unserem Fall wäre das die Funktion \(\log(|x|)\). Somit werden in diesem Szenario ebenfalls \(\log(|x|)\) und \(\log(x)\) als korrekte Antwort gewertet.

Diff

Dieser Vergleichsoperator ist für die Überprüfung der Eingabe \(ans1\) des Lernenden im SAns-Feld mit der Ableitung \(f′(x)\) einer gegebenen Funktion \(f(x)\) gedacht im TAns-Feld. \(ans1\) wird algebraisch mit \(f′(x)\) verglichen (siehe 1.4.1 AlgEquiv). Zudem wird zusätzlich geprüft, ob der Lernenden die Funktion \(f(x)\) integriert anstatt differenziert hat. Werden trigonometrische Funktionen verwendet, kann es passieren, dass die Eingabe obwohl sie korrekt ist, als falsch gewertet wird.

Beispiel:

Vergleichen wir die Eingabe \(ans1 = sin(x)\) mit der Lösung \(f′(x) = 1/csc(x)\) mittels des \(Diff\)- Operator (oder auch mittels des \(AlgEquiv\))), werden die zwei Funktionen nicht alsäquivalent gewertet, wobei gilt

\(csc(x):= \frac{1}{sin(x)}.\)

Die Funktion \(csc(x)\) kann unter anderem auftauchen, wenn der Befehls \(diff(f(x),x)\) zum Ableiten der Funktion \(f(x)\) nach der Variable \(x\) verwendet wird, d.h. \(f′(x) := diff(f(x),x)\). Damit nun \(ans1 = sin(x)\) als korrekt gewertet wird, kann die Maxima-Funktion \(trigsimp\) genutzt werden, d.h. man vergleicht nicht mehr \(ans1\) und \(f(x)\) sondern \(trigsimp(ans1)\) und \(trigsimp(f(x))\) mit- einander. Die Funktionen \(trigreduce, ratsimp\) und \(radcan\) können einen Ausdruck ebenfalls weiter vereinfachen.

Abbildung 1.13: Verschiedene Befehle zur Überprüfungen ob \(\frac{1}{sin(x)}=csc(x) \) gilt

Empfehlung:
Werden Funktionen wie \(csc\) oder \(sec\) in der Lösung verwendet, setze SAns = \(trigsimp(ans1)\) und TAns = \(trigsimp(f(x))\) statt SAns = \(ans1\) und TAns = \(f(x)\) im Knoten.

AlgEquiv (algebraische Äquivalenz)

Hier wird geprüft, ob die Eingabe ans1 im SAns-Feld mit der angegebenen Musterlösung im TAns- Feld übereinstimmen, indem geprüft wird, ob die Eingabe und Musterlösung durch Vereinfachungen äquivalent ineinander überführt werden können. Dieser Vergleichsoperator eignet sich für die meisten mathematischen Objekte wie z.B. (Un-)Gleichungen, Ausdrücke, Matrizen, Listen, Mengen etc. Werden zwei Terme miteinander verglichen, so kann es passieren, dass die Eingabe obwohl sie korrekt ist, als falsch gewertet wird (vgl. Beispiel von 1.4.1). Dies kann durch Maxima-Funktionen wie \(trigsimp, trigreduce, ratsimp\) und \(radcan\), welche Terme vereinfachen, gehandhabt werden.

NumAbsolute und NumRelative

Der Vergleichsoperator NumAbsolute überprüft ob der Abstand zwischen der Antwort \(ans1\) im SAns-Feld und der Musterlösung \(lsg\) im TAns-Feld kleiner ist als ein gewählter Wert \(eps\), wobei \(eps\) im Feld der Testoption stehen muss. D.h. es wird geprüft ob folgende Ungleichung gilt:

\(|ans1 – lsg| < eps\)

Abbildung 1.14: Überprüfung ob die Eingabe \(ans1\) nicht weiter als \(eps = 0.05\) von der Musterlösung \(lsg\) entfernt ist

Der Vergleichsoperator NumRelative überprüft ob der Abstand zwischen der Eingabe \(ans1\) im SAns- Feld und der Musterlösung \(lsg\) im TAns-Feld kleiner oder gleich \(eps · |lsg|\) ist, wobei \(eps\) ein zuvor gewählter Wert im Feld der Testoption ist. D.h. es wird geprüft ob folgende Ungleichung gilt:

\(|ans1 – lsg| \leq eps\cdot |lsg|\)

SubstEquiv

Dieser Vergleichsoperator ist hilfreich, wenn man beispielsweise die Wahl von Konstanten und Variablen in einer Funktionen als korrekt erachten möchte. Es werden nicht nur die Eingabe \(ans1\) und die Musterlösung \(lsg\) algebraisch miteinander verglichen, sondern es wird zusächlich noch geprüft, ob sich durch das Austauschen von Variablen die Eingabe in die Musterlösung ergibt.

Beispiel:

Gesucht ist eine Funktion, die bei allen Vielfachen von \(\pi\) eine Nullstelle und keine weiteren Nullstellen besitzt. Die Musterlösung lautet \(f(x):=\sin(x)\). Bei Nutzung des Vergleichsoperators SubstEquiv wird die Eingabe \(sin(x)\) als auch \(sin(y)\), ebenso wie \(\cos(s-\frac{\pi}{2})\) als korrekt gewertet (vgl. Abbildung 1.15).

Abbildung 1.15: Feedback bei richtiger Antwort zur Eingabe \(ans1 = sin(y)\) und Musterlösung \(f(x) = sin(x)\)

Dokus
Über Cedric Pörschke
Cedric Pörschke studiert Wirtschaftsingenieurwesen-Bau an der HRW und arbeitet seit Oktober 2017 im Filmteam an interaktiven Mathematik-Videos.