Evaluator: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=== Beschreibung === | === Beschreibung === | ||
Der Evaluator ist das Evaluierungswerkzeug, welches von JACK für Berechnungen aller Art (z.B. mathematische Berechnungen) verwendet wird. Der Evaluator wird daher sowohl für die Erzeugung von [[Variablen ( | Der Evaluator ist das Evaluierungswerkzeug, welches von JACK für Berechnungen aller Art (z.B. mathematische und chemische Berechnungen) verwendet wird. Der Evaluator wird daher sowohl für die Erzeugung von [[Variablen (JACK3)|Variablen]] genutzt, als auch um die Prüfregeln für richtige Antworten bzw. Feedbacknachrichten auszuwerten. Er beherrscht eine Reihe von Funktionen, z.B. einfache arithmetische Operationen und Funktionen auf Zeichenketten, ist jedoch auch in der Lage mit Computer Algebra Systemen zu kommunizieren und dort Auswertungen vornehmen zu lassen. Derzeit ist der Evaluator in der Lage mit den beiden externen Systemen [https://www.sagemath.org/| Sage] und [https://www.r-project.org/| R] zu kommunizieren. Der Evaluator bietet neben den oben beschriebenen Basisfunktionen einige CAS-Funktionen an, welche bestimmte festgelegte Auswertungen in den externen Systemen vornehmen. So kann beispielsweise mittels der Funktion [[isLinearlyIndependent]] geprüft werden, ob eine Menge von Vektoren linear unabhängig ist. Diese Funktion verwendet intern Sage, um eine Entscheidung zu finden. Der Evaluator meldet das Ergebnis dann an den JACK Kern zurück, welcher dieses weiter verarbeitet. Zudem können mit dem Evaluator auch Funktionen logisch miteinander verknüpft werden, also durch [[BooleanAnd|und]], [[BooleanOr|oder]] oder auch [[BooleanNot|nicht]]. | ||
=== Verwendung der Evaluator Ausdrücke im Feedback === | |||
Wird in einer Aufgabe beim Feedback eine Evaluator Regel angegeben, dann wird der Ausdruck dem Evaluator übergeben: | |||
[[File:Evaluator-Regel-eine-Funktion.jpg|center|thumb|800px|Hier wird ein Fill-In Feld darauf geprüft, ob es leer ist.]] | |||
Der Rückgabewert der verwendeten Funktion muss zwingend ein Wahrheitswert sein. Also entweder es trifft zu und die Funktion gibt '''True''' zurück oder es trifft nicht zu und die Funktion gibt '''False''' zurück. Es können auch mehrere Funktionen folgendermaßen miteinander verknüpft werden: | |||
[[File:Evaluator-Regel.jpg|center|thumb|800px|Hier werden zwei Fill-In Felder darauf geprüft, ob sie die bestimmten Werte der beiden Variabeln x und y haben.]] | |||
Die zwei '''&'''-Zeichen stehen für die logischen ''und''-Verknüpfung. Es gibt auch die ''oder''-Verknüpfung mit zwei senkrechten Strichen ('''||''') und die ''nicht''-Verknüpfung mit dem Ausrufezeichen ('''!'''). | |||
Hier ist die Auflistung der Verknüpfung '''A && B = C''', dabei sind A, B Aussagen, die entweder ''True'' oder ''False'' sind. Daraus ergibt sich dann folgendes für '''C''': | |||
{| class="wikitable" | |||
! A !! B !! C | |||
|- | |||
| True || True || True | |||
|- | |||
| True || False || False | |||
|- | |||
| False || True || False | |||
|- | |||
| False || False || False | |||
|} | |||
Bei der ''oder''-Verknüfung '''A || B = C''' ergibt sich für '''C''' folgendes: | |||
{| class="wikitable" | |||
! A !! B !! C | |||
|- | |||
| True || True || True | |||
|- | |||
| True || False || True | |||
|- | |||
| False || True || True | |||
|- | |||
| False || False || False | |||
|} | |||
Für die ''nicht''-Verknüpfung '''!A = B''' ergibt sich für '''B''' folgendes: | |||
{| class="wikitable" | |||
! A !! B | |||
|- | |||
| True || False | |||
|- | |||
| False || True | |||
|} | |||
=== Variablen erstellen === | === Variablen erstellen === | ||
Der Evaluator kann beim Erzeugen aufgabenbezogener [[Variablen ( | Der Evaluator kann beim Erzeugen aufgabenbezogener [[Variablen (JACK3)|Variablen]] innerhalb der Variablenkonfiguration vorher erstellte Variablen nutzten. | ||
[[File:Variablen-erstellen.jpg|center|thumbs|800px]] | |||
In diesem Beispiel werden die beiden Variablen ''a'' und ''b'' mit den Werten ''5'' bzw. ''2'' erstellt. Außerdem wird eine dritte Variable ''c'' erstellt, die das Produkt der beiden vorherigen Variablen bildet. | In diesem Beispiel werden die beiden Variablen ''a'' und ''b'' mit den Werten ''5'' bzw. ''2'' erstellt. Außerdem wird eine dritte Variable ''c'' erstellt, die das Produkt der beiden vorherigen Variablen bildet. | ||
Neben den mathematischen Basisoperationen enthält der Evaluator diverse eigen-implementierte Funktionen, die teilweise auf externe Computer-Algebra-Systeme (Sage, R) zugreifen. Beim Benutzen einer solchen CAS-Funktion kann mittels | Neben den mathematischen Basisoperationen enthält der Evaluator diverse eigen-implementierte Funktionen, die teilweise auf externe Computer-Algebra-Systeme (Sage, R) zugreifen. Beim Benutzen einer solchen CAS-Funktion kann mittels [[evaluateInSage|evaluateInSage()]] oder [[evaluateInR|evaluateInR()]] das entsprechende CAS verwendet werden. | ||
[[File:Variable-mit-Sage.jpg|center|thumbs|800px]] | |||
In diesem Fall enthält die Variable ''b'' die Fakultät der Zahl, die in der Variablen ''a'' enthalten ist, berechnet mit Hilfe des CAS | In diesem Fall enthält die Variable ''b'' die Fakultät der Zahl, die in der Variablen ''a'' enthalten ist, berechnet mit Hilfe des CAS Sage. | ||
=== Funktionen === | === Funktionen === | ||
Die Evaluatoren beinhalten viele verschiedene Funktionen, die alle in JACK für die Aufgabendarstellung benutzt werden können. Unter den hier angegebenen Links finden Sie eine vollständige Liste aller angebotenen Funktionen im entsprechenden Evaluator mit ihrer Funktionalität. | |||
* [[:Kategorie:Math-Evaluatorfunktion|Math-Evaluatorfunktion]] | * [[:Kategorie:Math-Evaluatorfunktion|Math-Evaluatorfunktion]] | ||
* [[:Kategorie:Chem-Evaluatorfunktion|Chem-Evaluatorfunktion]] | * [[:Kategorie:Chem-Evaluatorfunktion|Chem-Evaluatorfunktion]] | ||
===Hinweise=== | ===Hinweise=== | ||
* Wenn man zwei oder mehr Funktionen miteinander verknüpft fallen die Anführungszeichen weg: ''equalsExpr(evalEq('5','5'),'0')'' | * '''Jack2:''' Wenn man zwei oder mehr Funktionen miteinander verknüpft fallen die Anführungszeichen weg: ''equalsExpr(evalEq('5','5'),'0')''. | ||
== Änderungen in JACK3 == | === Änderungen in JACK3 === | ||
'''Die folgenden Änderungen beziehen sich nur auf JACK3.''' | '''Die folgenden Änderungen beziehen sich nur auf JACK3.''' | ||
Zeile 129: | Zeile 128: | ||
| [var=W] || isIntegerNumber([var=B])|| false | | [var=W] || isIntegerNumber([var=B])|| false | ||
|} | |} | ||
[[Category:Evaluator]] | |||
[[Category:Evaluator]][[category:Benutzerhandbuch]] |
Version vom 10. Juli 2024, 14:52 Uhr
Beschreibung
Der Evaluator ist das Evaluierungswerkzeug, welches von JACK für Berechnungen aller Art (z.B. mathematische und chemische Berechnungen) verwendet wird. Der Evaluator wird daher sowohl für die Erzeugung von Variablen genutzt, als auch um die Prüfregeln für richtige Antworten bzw. Feedbacknachrichten auszuwerten. Er beherrscht eine Reihe von Funktionen, z.B. einfache arithmetische Operationen und Funktionen auf Zeichenketten, ist jedoch auch in der Lage mit Computer Algebra Systemen zu kommunizieren und dort Auswertungen vornehmen zu lassen. Derzeit ist der Evaluator in der Lage mit den beiden externen Systemen Sage und R zu kommunizieren. Der Evaluator bietet neben den oben beschriebenen Basisfunktionen einige CAS-Funktionen an, welche bestimmte festgelegte Auswertungen in den externen Systemen vornehmen. So kann beispielsweise mittels der Funktion isLinearlyIndependent geprüft werden, ob eine Menge von Vektoren linear unabhängig ist. Diese Funktion verwendet intern Sage, um eine Entscheidung zu finden. Der Evaluator meldet das Ergebnis dann an den JACK Kern zurück, welcher dieses weiter verarbeitet. Zudem können mit dem Evaluator auch Funktionen logisch miteinander verknüpft werden, also durch und, oder oder auch nicht.
Verwendung der Evaluator Ausdrücke im Feedback
Wird in einer Aufgabe beim Feedback eine Evaluator Regel angegeben, dann wird der Ausdruck dem Evaluator übergeben:
Der Rückgabewert der verwendeten Funktion muss zwingend ein Wahrheitswert sein. Also entweder es trifft zu und die Funktion gibt True zurück oder es trifft nicht zu und die Funktion gibt False zurück. Es können auch mehrere Funktionen folgendermaßen miteinander verknüpft werden:
Die zwei &-Zeichen stehen für die logischen und-Verknüpfung. Es gibt auch die oder-Verknüpfung mit zwei senkrechten Strichen (||) und die nicht-Verknüpfung mit dem Ausrufezeichen (!). Hier ist die Auflistung der Verknüpfung A && B = C, dabei sind A, B Aussagen, die entweder True oder False sind. Daraus ergibt sich dann folgendes für C:
A | B | C |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Bei der oder-Verknüfung A || B = C ergibt sich für C folgendes:
A | B | C |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Für die nicht-Verknüpfung !A = B ergibt sich für B folgendes:
A | B |
---|---|
True | False |
False | True |
Variablen erstellen
Der Evaluator kann beim Erzeugen aufgabenbezogener Variablen innerhalb der Variablenkonfiguration vorher erstellte Variablen nutzten.
In diesem Beispiel werden die beiden Variablen a und b mit den Werten 5 bzw. 2 erstellt. Außerdem wird eine dritte Variable c erstellt, die das Produkt der beiden vorherigen Variablen bildet.
Neben den mathematischen Basisoperationen enthält der Evaluator diverse eigen-implementierte Funktionen, die teilweise auf externe Computer-Algebra-Systeme (Sage, R) zugreifen. Beim Benutzen einer solchen CAS-Funktion kann mittels evaluateInSage() oder evaluateInR() das entsprechende CAS verwendet werden.
In diesem Fall enthält die Variable b die Fakultät der Zahl, die in der Variablen a enthalten ist, berechnet mit Hilfe des CAS Sage.
Funktionen
Die Evaluatoren beinhalten viele verschiedene Funktionen, die alle in JACK für die Aufgabendarstellung benutzt werden können. Unter den hier angegebenen Links finden Sie eine vollständige Liste aller angebotenen Funktionen im entsprechenden Evaluator mit ihrer Funktionalität.
Hinweise
- Jack2: Wenn man zwei oder mehr Funktionen miteinander verknüpft fallen die Anführungszeichen weg: equalsExpr(evalEq('5','5'),'0').
Änderungen in JACK3
Die folgenden Änderungen beziehen sich nur auf JACK3.
Evaluatorausdrücke werden immer geparsed und evaluiert. Eckige Klammern können eingefügt werden, um das Evaluieren von Gesamt- und Teilausdrücken zu verhindern. Es gibt Funktionen, welche nicht innerhalb von eckigen Klammer auftauchen dürfen. Bei diesen entsteht beim parsen eine Fehler (random, getRandomFromList, chooseFromComplement, ...). Einige Funktionen, evaluieren die Argumente nicht, um bspw. die Syntax zu analysieren (isIntegerNumber, isMatrix, isSum, isProduct, ...).
Beispiele:
Variablenname | Ausdruck | Wert |
---|---|---|
[var=A] | 1+1 | 2 |
[var=B] | [1+1] | 1+1 |
[var=C] | 1+[var=A] | 3 |
[var=D] | 1+[var=B] | 3 |
[var=E] | [1+[var=A]] | 1+2 |
[var=F] | [1+[var=B]] | 1+1+1 |
[var=J] | getFromList(1,list(2,3,4)) | 3 |
[var=K] | getFromList(1,list(2,[2+5],4)) | 2+5 |
[var=L] | getFromList(1,list(2,[var=A],4)) | 2 |
[var=M] | getFromList(1,list(2,[var=B],4)) | 1+1 |
[var=N] | getFromList([1+1],list(2,3,4)) | 4 |
[var=O] | getFromList([var=A],list(2,3,4)) | 4 |
[var=P] | getFromList([var=B],list(2,3,4)) | 4 |
[var=Q] | [getFromList(1,list(2,3,4))] |
getFromList(1,list(2,3,4)) |
[var=R] | [random()] | EXCEPTION |
[var=S] | [getRandomFromList(list(1,2,3,4,5))] | EXCEPTION |
[var=T] | isIntegerNumber([1+1]) | false |
[var=U] | isIntegerNumber(1+1) | false |
[var=V] | isIntegerNumber([var=A]) | true |
[var=W] | isIntegerNumber([var=B]) | false |