R (JACK3): Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Zeile 37: Zeile 37:
* '''Name:''' Name des Testfalls.
* '''Name:''' Name des Testfalls.
* '''Postcode:'''  
* '''Postcode:'''  
* '''Nachverarbeitungsfunktion:''' Muss nur gesetzt sein, falls spezielle R-Funktionen zur Nachbearbeitung des studentischen Codes nötig sind. Dies kann nötig sein, um verschiedene richtige Antworten auf ein gleiches Format zu bringen, dann könnte in dem Feld ''erwartete Ausgabe'' auf die Ausgabe dieser Nachbearbeitungsfunktion getestet werden. Für einfache Aufgaben können diese Felder zunächst leer gelassen werden.
* '''Nachverarbeitungsfunktion:''' Muss nur gesetzt sein, falls spezielle R-Funktionen zur Nachbearbeitung des studentischen Codes nötig sind. Dies kann nötig sein, um verschiedene richtige Antworten auf ein gleiches Format zu bringen, dann könnte in dem Feld ''erwartete Ausgabe'' auf die Ausgabe dieser Nachbearbeitungsfunktion getestet werden. Für einfache Aufgaben können diese Felder zunächst leer gelassen werden. Beispiel: Wird hier der Wert "myParser" angegeben, so wird nicht mit der intern generierten Funktion "studentInputAsFunc()" verglichen, sondern mit "myParser(studentInputAsFunc())". In diesem Fall muss die Funktion im Feld postCode definiert werden!
* '''Erwartete Ausgabe:''' Hier sollte der Ausdruck stehen, der mit dem Testthat-Framework auf Gleichheit getestet werden soll. Hier ist zu beachten, dass es nötig sein kann Variablenersetzungen wie im ''Vorausgefüllten Code'' vorzunehmen.
* '''Erwartete Ausgabe:''' Hier sollte der Ausdruck stehen, der mit dem Testthat-Framework auf Gleichheit getestet werden soll. Hier ist zu beachten, dass es nötig sein kann Variablenersetzungen wie im ''Vorausgefüllten Code'' vorzunehmen.
* '''Toleranz (e^{...}):''' Der Vergleich mit dem Testthat-Framework wird mit Toleranz vorgenommen. ''-4'' bedeutet hier, dass auf '''|erwartung-eingabe| <e^-4''' geprüft wird.
* '''Toleranz (e^{...}):''' Der Vergleich mit dem Testthat-Framework wird mit Toleranz vorgenommen. ''-4'' bedeutet hier, dass auf '''|erwartung-eingabe| <e^-4''' geprüft wird.

Version vom 12. Mai 2022, 09:28 Uhr

Der R-Aufgabenteil ist ein asynchron geprüfter Aufgabenteil, der es ermöglicht R-Code dynamisch und statisch zu prüfen. Bei mehrstufigen Aufgaben können vom Lernenden nach dem Einreichen schon weitere Aufgabenteile bearbeitet werden, während die asynchronen Checks im Hintergrund noch laufen.

Aufgabeninhalt

  • Titel: An dieser Stelle kann optional ein Name für die Stufe eingegeben werden.
  • Aufgabentext: In das Feld kommt die Aufgabenstellung. Mithilfe des Editors lässt sich diese leicht formatieren. Über den Button lassen sich auch Bilder in den Text einfügen.
R Aufgabentext.JPG
  • Vorausgefüllter Code: Bei den R Aufgaben gibt es die Möglichkeit den Lernenden bereits einen vorausgefüllten Code zur Verfügung zu stellen. Diesen müssen sie dann nur noch vervollständigen. Die Variablen werden hier entsprechend ersetzt.
R VorausgefuellterCode.JPG

Feedback

  • Gewichtung des Aufgabenteils: Gewichtung der Punktzahl dieser Stufe innerhalb der ganzen Aufgabe
  • Evaluierungsregel: In dem Eingabefeld gibt man die Regel an wie die Punkte aus den verschiedenen Checkern zusammengesetzt werden. Jeder der Checker kann dabei unterschiedlich gewichtet sein. Unter dem Eingabefeld sind die konfigurierten Variablen aufgelistet. Sind für die Variablen Namen konfiguriert worden, so werden diese dort mit aufgeführt. Variablen werden mit den Symbolen #{} eingeschlossen. Wird das Feld leer gelassen werden alle Testfallgruppen gleich gewichtet gewertet.
R Evaluierungsregel.JPG
  • Feedback beim Überspringen: Wenn der Haken gesetzt wurde kann der Lernende die Aufgabe überspringen. Dazu gibt es die Möglichkeit einen Text dem Lernenden anzuzeigen, wenn dieser die Stufe übersprungen hat. Den Text kann man wieder über die Icons Schlüssel oder Stuft hinzufügen.

Hinweise

Jede Stufe kann beliebig viele Hinweise anbieten. Alle weiteren Informationen wie man Hinweise angibt sind hier zu finden.

Verknüpfungen

  • Nächster Aufgabenteil (Standard): In dem Drop-Down Feld wird der nächste Zustand ausgewählt, in die die Aufgabe gehen soll, wenn der Lernende eine Lösung eingereicht hat. Es gibt die folgenden Möglichkeiten:
    • Ende der Aufgabe: Die Aufgabe ist mit der Aktion des Lernenden beendet.
    • Aufgabenteil wiederholen: Dieser Aufgabenteil wird wiederholt. Der Lernende kann ein weiteres Ergebnis einreichen. Diese Aktion lässt sich gut bei Übungsaufgaben einsetzen.
    • #x (x ist dabei eine beliebige Stufe dieser Aufgabe): Die entsprechende Stufe wird als nächstes angezeigt. Wenn man die Stufennummer der aktuellen Stufe wählt wird diese Stufe neu aufgerufen.

Variablenupdates

Wenn die Aufgabe Variablen hat, dann besteht in jeder Stufe die Möglichkeit ein Variablenupdate durchzuführen. Alle weiteren Informationen dazu sind hier zu finden.

Checker

Der R-Aufgabenteil hat ein sehr flexibles Konzept, wie asynchrone Checks zusammengestellt werden:

  • Zunächst können beliebig viele Gruppen von Testfällen angelegt werden.
  • Jede Gruppe kann aus beliebig vielen statischen und dynamischen Checks bestehen.
  • Jeder Gruppe wird eine Punktzahl zugewiesen, indem die Punkte jedes individuellen Checks aufaddiert (Gain) bzw. abgezogen (Deduction) werden.
  • Die Punktzahl jeder Gruppe kann in der Evaluierungsregel im Feedback referenziert werden (siehe oben).

Dynamische Testfälle

Der dynamische Checker prüft den Output eines vom Lernenden eingereichten Codes mit dem erwarteten Output. Durch das Klicken auf den Button Dynamischer Testfall wird ein dynamischer Test erzeugt und ein Fenster öffnet sich. Dort lassen sich folgende Einstellungen vornehmen:

  • Name: Name des Testfalls.
  • Postcode:
  • Nachverarbeitungsfunktion: Muss nur gesetzt sein, falls spezielle R-Funktionen zur Nachbearbeitung des studentischen Codes nötig sind. Dies kann nötig sein, um verschiedene richtige Antworten auf ein gleiches Format zu bringen, dann könnte in dem Feld erwartete Ausgabe auf die Ausgabe dieser Nachbearbeitungsfunktion getestet werden. Für einfache Aufgaben können diese Felder zunächst leer gelassen werden. Beispiel: Wird hier der Wert "myParser" angegeben, so wird nicht mit der intern generierten Funktion "studentInputAsFunc()" verglichen, sondern mit "myParser(studentInputAsFunc())". In diesem Fall muss die Funktion im Feld postCode definiert werden!
  • Erwartete Ausgabe: Hier sollte der Ausdruck stehen, der mit dem Testthat-Framework auf Gleichheit getestet werden soll. Hier ist zu beachten, dass es nötig sein kann Variablenersetzungen wie im Vorausgefüllten Code vorzunehmen.
  • Toleranz (e^{...}): Der Vergleich mit dem Testthat-Framework wird mit Toleranz vorgenommen. -4 bedeutet hier, dass auf |erwartung-eingabe| <e^-4 geprüft wird.
  • Regelart: Hier kann man zwischen Absence und Presence wählen.
  • Punktemodus: Hier kann man zwischen Deduction und Gain wählen, d.h. ob die Punkte bei erfolgreichem Test abgezogen werden oder aufaddiert werden.
  • Punkte: Die Punkte, die je nach Punktemodus abgezogen oder aufaddiert werden. Am Ende werden die Punkte auf 0-100 Punkte eingeschränkt, d.h. es gibt keine negativen Punkte)
  • Feedback (im Fehlerfall): Wird dem Lernenden angezeigt, wenn dieser Test fehlschlägt.

Statische Testfälle Der statische Checker prüft den eingegebenen Programmcode auf statische Eigenschaften. Die Checks werden für diesen Checker regelbasiert in einer textuellen Notation konfiguriert. Durch das Klicken auf den Button Statischer Testfall wird ein statischer Test erzeugt und ein Fenster öffnet sich. Dort lassen sich die folgenden Einstellungen vornehmen:

  • Name: Name des Testfalls.
  • GReQL Regel: Hier können die aus Jack2 bekannten GReQL-Regeln angegeben werden. XML-Sonderzeichen dürfen nicht mehr wie in Jack2 excaped werden.
  • Regelart: Hier kann man zwischen Absence und Presence wählen. Presence fordert, dass die obige GReQL-Regel erfüllt wird und Absence fordert, dass die obige GReQL-Regel nicht zutrifft.
  • Punkte: Die Anzahl der Punkte, die entweder aufaddiert oder abgezogen werden.
  • Punktemodus: Hier kann zwischen Deduction (abziehen) und Gain (aufaddieren) gewählt werden.
  • Feedback (im Fehlerfall): Das Feedback wird dem Lernenden angezeigt, wenn dieser Test fehlschlägt.

Testfallgruppen Konfiguration Hier lässt sich die ganze Testfallgruppe konfigurieren.

  • Variablenname: Der hier angegebene Variablenname braucht man, um die Testfallgruppe im Feedback-Tab anzugeben.
  • Name:
  • Externer Name:
  • Ist Aktiv?:
  • Bewertung für Lernende sichtbar?:
  • Feedback für Lernende sichtbar?:
  • Ist asynchron?: