Main Content

Diese Seite ist für die vorige Version. Die entsprechende englische Seite wurde in der aktuellen Version entfernt.

Verfassen von Prüfungen für funktionsbasierte Lösungen von Lernenden

Für funktionsbasierte Lösungen können Sie MATLAB®-Programmcode mithilfe der integrierten Funktionen schreiben, welche die Übereinstimmung von Variablen und das Vorhandensein von Schlüsselwörtern oder Funktionen überprüfen:

  • assessVariableEqual – Überprüfen Sie, ob eine Variable in der Lösung der Lernenden einem vorgegebenen Wert innerhalb der Toleranz entspricht.

  • assessFunctionPresence – Überprüfen Sie, ob bestimmte Funktionen oder Schlüsselwörter in der Lösung der Lernenden enthalten sind.

  • assessFunctionAbsence – Überprüfen Sie, ob bestimmte Funktionen oder Schlüsselwörter nicht in der Lösung der Lernenden enthalten sind.

Ausführungsmodell

  • Jede Prüfung, die Sie für eine funktionsbasierte Lösung verfassen, umfasst in der Regel einen Abruf der Lösung der Lernenden. Sie können Eingaben für die Funktion machen und ausgegebene Werte auswerten. Außerdem können Sie die Referenzlösung abrufen, um deren Ergebnisse mit denen der Lösung der Lernenden zu vergleichen.

  • Alle Prüfungen erfolgen nacheinander und unabhängig von den anderen Prüfungen. Wenn eine Prüfung nicht erfolgreich ist, erfolgen die nachfolgenden Prüfungen trotzdem.

  • Variablen, die in einer Prüfung erstellt wurden, sind nicht in der nächsten verfügbar. Definieren Sie alle erforderlichen Variablen in allen Prüfungen.

  • Wenn der Code ohne Fehler ausgeführt wird, wird der Status des Prüfungsergebnisses als „bestanden“ angezeigt. Andernfalls wird der Status der Prüfungsergebnisse als „nicht bestanden“ angezeigt.

    Wenn es sich bei dem Test um eine Vorprüfung handelt, können die Lernenden Informationen über die Prüfung einsehen, indem sie auf den Pfeil links neben dem Testnamen klicken, unabhängig davon, ob der Test bestanden wurde oder nicht.

  • Wenn Sie assessVariableEqual mit funktionsbasierten Problemstellungen verwenden, verwenden Sie für alle Ausgabevariablen, die beim Abruf der Funktion der Lernenden erstellt werden, denselben Namen, den Sie auch in der Deklaration der Funktion der Lernenden verwenden würden. Die standardmäßigen Feedback-Benachrichtigungen verweisen auf den Namen der Ausgabevariablen, die in der Prüfung erstellt wurde und die Lernenden könnten die Ausgabevariable möglicherweise nicht erkennen, wenn sie nicht mit der Deklaration übereinstimmt.

Lösung der Lernenden in der Prüfung abrufen

Um eine Funktion, die Lernende als Lösung übermittelt haben, auszuwerten, wird bei jeder Prüfung die Lösung der Lernenden abgerufen.

Eine beispielhafte Prüfung für eine Funktion triangleArea könnte wie folgt aussehen:

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = 7.5;
assessVariableEqual('area',areaCorrect)

Wenn die Lernenden auf „Absenden“ klicken, wird bei der Prüfung die Version der Lernenden von triangleArea abgerufen.

Referenzlösung zum Bewerten der Lösung der Lernenden verwenden

Um die Lösung der Lernenden mit der Referenzlösung zu vergleichen, rufen Sie beide Funktionen ab.

  • Um die Lösung der Lernenden abzurufen, verwenden Sie die Syntax myFunction.

  • Um die Referenzlösung abzurufen, verwenden Sie die Syntax reference.myFunction.

Ersetzen Sie in beiden Fällen myFunction mit dem Namen der Funktion, die Sie in der Lösungsvorlage verwenden.

Eine beispielhafte Prüfung für eine Funktion triangleArea könnte wie folgt aussehen:

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = reference.triangleArea(b,h);
assessVariableEqual('area',areaCorrect)

Beispiele

Spiegeln eines Vektors

Die Lernenden müssen eine Funktion namens flipIt schreiben, die einen Eingangsvektor spiegelt, indem die Reihenfolge der Werte im Vektor umgekehrt wird. Die Lernenden dürfen nicht die Funktion flip verwenden.

Referenzlösung

function w = flipIt(v)
    w = v(end:-1:1);
end

Prüfungen zur Bewertung.  Rufen Sie die Lösung der Lernenden mit dem Eingangsvektor [1 2 3 4] ab. Prüfen Sie, ob die Lösung der Lernenden mit der Referenzlösung übereinstimmt und flip nicht enthält:

v = [1 2 3 4];
w = flipIt(v)
w_correct = reference.flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

Rufen Sie die Lösung der Lernenden erneut ab, diesmal mit dem Eingangsvektor [4]:

v = [4];
w = flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

Verwandte Themen