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))


ausführliche Anleitung

Diskussion: [Name der Diskussion]