Testen der Lösungen von Lernenden
Wenn Sie Bewertungselemente in MATLAB® Grader™ erstellen, legen Sie Tests fest, die bewerten, ob die Lösung des Lösung des Lernenden Ihren Kriterien entspricht.
Festlegen von Tests
Um Tests festzulegen, können Sie die in der Liste Test Type vordefinierten Tests verwenden oder Ihren eigenen MATLAB Programmcode schreiben. Die vordefinierten Testoptionen umfassen:
Variable Equals Reference Solution
— Überprüft das Vorliegen, den Datentyp, die Größe und den Wert einer Variable. Diese Option ist nur in der Test Type-Liste für Skript-Bewertungselemente verfügbar. Für Zahlenwerte gilt eine Standardtoleranz von1e-4
.Function or Keyword is Present
– Überprüft das Vorliegen bestimmter Funktionen oder Schlüsselwörter.Function or Keyword is Absent
— Überprüft, ob die Lösungen der Lernenden die angegebenen Funktionen oder Schlüsselwörter nicht enthalten.
Wenn Lernende beispielsweise die taylor
-Funktion zur Berechnung der Taylorreihen-Approximation einer bestimmten Funktion verwenden sollen, legen Sie diese Optionen fest:
Wählen Sie aus der Liste Test Type die Option
Function or Keyword is Present
aus.Legen Sie die
taylor
-Funktion als die Funktion fest, die der Lernende verwenden muss.Optional können Sie weiteres Feedback festlegen, das der Lernende erhält, wenn die erwartete Funktion nicht verwendet wird.
Bei einem Skript-Bewertungselement können Sie eine Variable mit dem vordefinierten Testtyp Variable Equals Reference Solution
bewerten. Sie können beispielsweise bewerten, ob eine Variable die richtig Größe, die erwarteten Werte und den erwarteten Datentyp aufweist, indem Sie sie mit der Variable mit demselben Namen in Ihrer Referenzlösung vergleichen.
Sie können zudem MATLAB Programmcode schreiben, indem Sie in der Liste Test Type die Option MATLAB Code
auswählen. Befolgen Sie diese Anleitung:
Bewerten der Korrektheit — Sie können Funktionen verwenden, die den vordefinierten Testtypen
assessVariableEqual
,assessFunctionPresence
undassessFunctionAbsence
entsprechen. Alternativ können Sie einen benutzerdefinierten Test schreiben, der bei falschen Ergebnissen einen Fehler ausgibt.Variablennamen in Skript-Bewertungselementen — Um in Ihrer Referenzlösung Variablen zu referenzieren, fügen Sie das Präfix
referenceVariables
, wiereferenceVariables.
, hinzu. Um Variablen von Lernenden zu referenzieren, verwenden Sie den Variablennamen.myvar
Funktionsnamen in Funktions-Bewertungselementen — Um in Ihrer Referenzlösung die Funktion aufzurufen, fügen Sie das Präfix
reference
, wiereference.
, hinzu. Um die Funktion von Lernenden aufzurufen, verwenden Sie den Funktionsnamen.myfunction
Scope der Variablen – Variablen, die Sie im Testcode erstellen, existieren nur im Bewertungstest.
Nehmen wir beispielsweise an, dass ein Lernender einen Wert für die Variable X
berechnen muss, der um mehr als die Standardtoleranz variieren kann. Um den Wert der Lösung des Lernenden mit dem Wert in der Referenzlösung zu vergleichen, rufen Sie die Funktion assessVariableEqual
auf, um die Variablen und die Toleranz festzulegen.
Um die Funktions-Bewertungselemente zu testen, rufen Sie die Referenzfunktion und die Funktion des Lernenden mit einer Testeingabe auf und vergleichen Sie die Ausgaben. Dieser Code überprüft beispielsweise, ob die Funktion eines Lernenden namens tempF2C
eine Temperatur korrekt von Fahrenheit nach Celsius umrechnen kann.
temp = 78;
tempC = tempF2C(temp);
expectedTemp = reference.tempF2C(temp);
assessVariableEqual('tempC',expectedTemp);
Tipp
Die von der Funktion assessVariableEqual
generierte Standardfehlermeldung enthält den Namen der getesteten Variable, im vorherigen Beispiel X
und tempC
. Bei Funktions-Bewertungselementen befindet sich diese Variable im Bewertungstest-Skript, nicht im Code des Lernenden. Verwenden Sie aussagekräftige Namen, die der Lernende erkennen kann, wie eine in der Funktionserklärung definierte Ausgabe.
Ein einzelner Bewertungstest kann mehrere Tests umfassen. Dieser Code überprüft beispielsweise, ob ein Lernender eine Funktion namens normsinc
implementiert hat, die Null- und Nicht-Null-Werte korrekt verarbeiten kann. Der Null-Fall umfasst weiteres Feedback für Lernende, das über das Namen-Wert-Argument Feedback
in der Funktion assessVariableEqual
bereitgestellt wird.
nonzero = 0.25*randi([1 3]); y_nonzero = normsinc(nonzero); expected_y_nonzero = reference.normsinc(nonzero); assessVariableEqual('y_nonzero',expected_y_nonzero); y_zero = normsinc(0); expected_y_zero = reference.normsinc(0); assessVariableEqual('y_zero',expected_y_zero, ... Feedback='Inputs of 0 should return 1. Consider an if-else statement or logical indexing.');
Vergeben von Teilnoten
Standardmäßig sieht die Software eine Lösung als richtig an, wenn alle Tests bestanden werden und als falsch, wenn mindestens ein Test nicht bestanden wird. Um Teilnoten zu vergeben, weisen Sie den Tests relative Gewichtungen zu, indem Sie Scoring Method auf Weighted
ändern. MATLAB Grader berechnet den Prozentsatz für jeden Test auf Grundlage der Summe der relativen Gewichtungen; Sie können die Gewichtungen also als Punkte oder Prozentsätze definieren.
Wenn Sie beispielsweise die relative Gewichtung aller Tests auf 1
setzen, haben alle Tests dieselbe Gewichtung. Wenn Sie einige Gewichtungen auf 2
setzen, haben diese Tests eine doppelt so hohe Gewichtung wie Tests, deren Gewichtung auf 1
gesetzt ist.
Alternativ können Sie Prozentwerte für die Gewichtungen angeben.
Festlegen von Vorprüfungen
Vorprüfungen sind Bewertungstests, mit denen Lernende ermitteln können, ob ihre Lösung auf dem richtigen Weg ist, bevor sie die Lösung zur Bewertung einreichen. Mit Vorprüfungen können Sie Lernende bei Problemstellungen mit mehreren richtigen Ansätzen, bei denen jedoch ein bestimmter Ansatz benötigt wird, oder bei Aufgaben mit Einreichungsgrenzen unterstützen.
Vorprüfungen unterscheiden sich folgendermaßen von regulären Bewertungstests:
Die Ergebnisse von Vorprüfungen werden vor der Einreichung nicht im Notenbuch festgehalten.
Vorprüfungen auszuführen, trägt nicht zu einer etwaigen Einreichungsgrenze bei.
Lernende können den Vorprüfungs-Code und weitere Details betrachten, darunter Ausgaben von MATLAB Programmcode-Tests, unabhängig davon, ob der Test bestanden wird. Stellen Sie sicher, dass eine Vorprüfung die Lösung für das Bewertungselement nicht umfasst.
Wie reguläre Bewertungstests werden Vorprüfungen ausgeführt, wenn Lernende ihre Lösungen ausführen und tragen ebenfalls zur Endnote bei.
Gehen wir beispielsweise davon aus, dass Lernende ein System linearer Gleichungen aufstellen müssen, das sich auf verschiedene Weisen organisieren lässt. Erstellen Sie eine Vorprüfung, um sicherzustellen, dass die Lösung des Lernenden die erwartete Reihenfolge und die erwarteten Koeeffizienten aufweist.
Lernenden wird bei einem nicht bestanden Test ein Fehler angezeigt und sie können ihre Lösung modifizieren.
Regeln der Fehleranzeige für ein Skript-Bewertungselement
Bei einem Skript-Bewertungselement kann ein anfänglicher Fehler weitere Fehler nach sich ziehen. Sie können den Lernenden ermutigen, sich zuerst auf diesen anfänglichen Fehler zu konzentrieren.
Bei Auswahl der Option Only Show Feedback for Initial Error wird zum anfänglichen Fehler ausführliches Feedback angezeigt, das Feedback zu Folgefehlern ist jedoch standardmäßig verborgen. Die Lernenden können dieses zusätzliche Feedback anzeigen, indem sie auf Show Feedback klicken.