Netzwerk Mathematik/Physik + E-Learning
Ziel dieses Bausteins ist es, eine Liste kurz umrissener Szenarien und UseCases in der Verwendung von MAXIMA in ONYX-Aufgaben zusammenzutragen, für die es lohnenwert erscheint, in einem zweiten Schritt ggf. eine nützliche Dokumentation (Erläuterung / Anwendungsbeispiel) im ONYX Hilfesystem zu erstellen.
2 Antworten in 2 Lücken
Die Lösung einer Aufgabe besteht aus 2 Teilantworten (beispielsweise die Lösungen einer quadratischen Gleichung), welche in beliebiger Reihenfolge in 2 Lücken eingetragen werden sollen.
Bei folgendem Beispiel soll zudem die Groß/Kleinschreibung nicht beachtet werden.
Dazu verwendet man in der ersten Lücke
is(elementp(sdowncase("LEARNERRESPONSE"), {"leipzig", "dresden"}));(sdowncase bereinigt Großbuchstaben, elementp überprüft ob die Antwort zur Lösungsmenge gehört)
und in der zweiten Lücke
is(elementp(sdowncase("LEARNERRESPONSE"), {"leipzig", "dresden"}) and not(equal(sdowncase("LEARNERRESPONSE_GAP_1"),sdowncase("LEARNERRESPONSE"))));(hier muss sich zusätzlich die zweite von der ersten Antwort unterscheiden).
Hier ein weiteres Beispiel (mit Formeleingabe):
Bei der Partialbruchzerlegung bietet sich es ebenfalls an, die einzelnen Terme in gentrennten Lücken abzufragen.
Beispiel: gegeben ist die Funktion -4/(x^2-4).
In die zwei Formeleingabefelder müssen also die Terme 1/(2-x) und 1/(2+x) eingegeben werden.
Der naive Ansatz wäre für Lücke 1
is(equal(LEARNERRESPONSE,1/(2-x))) or is(equal(LEARNERRESPONSE,1/(2+x)))
und dann in Lücke 2
( is(equal(LEARNERRESPONSE,1/(2-x))) or is(equal(LEARNERRESPONSE,1/(2+x))) ) and not(is(equal(LEARNERRESPONSE,LEARNERRESPONSE_GAP_1)))
Abrage 1 erhält den Wert true, wenn entweder 1/(2-x) oder 1/(2+x) eingegeben wird.
ACHTUNG: In Lücke 2 gibt es folgendes Problem. Ist beispielsweise LEARNERRESPONSE=1/(2-x) und LEARNERRESPONSE_GAP_1=1/(2+x), so liefert
is(equal(LEARNERRESPONSE,LEARNERRESPONSE_GAP_1))
den Wert unknown (denn beispielsweise für x=0 sind die Terme gleich) und damit wird diese Lücke als falsch gewertet.
Ausweg: Ersetzt man is(equal(...,...)) durch is(...=...), dann funktioniert es! So könnte die Abfrage in Lücke 2 also aussehen
( is(equal(LEARNERRESPONSE,1/(2-x))) or is(equal(LEARNERRESPONSE,1/(2+x))) ) and not(is(LEARNERRESPONSE=LEARNERRESPONSE_GAP_1))
bzw.
( is(LEARNERRESPONSE=1/(2-x)) or is(LEARNERRESPONSE=1/(2+x)) ) and not(is(LEARNERRESPONSE=LEARNERRESPONSE_GAP_1))