Checker: Unterschied zwischen den Versionen
PRanz (Diskussion | Beiträge) |
PRanz (Diskussion | Beiträge) |
||
Zeile 4: | Zeile 4: | ||
Wird in R-Aufgaben genutzt. Der DynamicRChecker dient dazu, den vom Studierenden erzeugten Output mit dem erwarteten Output zu vergleichen. Dazu wird innerhalb des Checkers ein Testfall definiert, in dem der Code hinterlegt wird, der den zu erwarteten richtigen Output generiert. Dieser wird dann nach der Einreichung des Studierenden mit dem, vom Code des Studierenden, generierten Output verglichen. Optional kann je nach Bedarf der vom Studierenden übergebene Output über eine sog. postprocessingFunction modifiziert werden. Genauere Informationen zum Checker finden Sie [[DynamicRChecker|hier]]. | Wird in R-Aufgaben genutzt. Der DynamicRChecker dient dazu, den vom Studierenden erzeugten Output mit dem erwarteten Output zu vergleichen. Dazu wird innerhalb des Checkers ein Testfall definiert, in dem der Code hinterlegt wird, der den zu erwarteten richtigen Output generiert. Dieser wird dann nach der Einreichung des Studierenden mit dem, vom Code des Studierenden, generierten Output verglichen. Optional kann je nach Bedarf der vom Studierenden übergebene Output über eine sog. postprocessingFunction modifiziert werden. Genauere Informationen zum Checker finden Sie [[DynamicRChecker|hier]]. | ||
===Genutzte Tags in der Stagedatei=== | ===Genutzte Tags in der Stagedatei=== | ||
* | * '''metaInf:''' | ||
** '''numberOfInputArgs:''' Anzahl an Input-Argumenten (in der Regel <syntaxhighlight inline lang="xml">1</syntaxhighlight>) | |||
** '''outputType:''' Output-Typ (in der Regel <syntaxhighlight inline lang="xml">double</syntaxhighlight>) | |||
** '''preCode:''' Hier steht immer <syntaxhighlight inline lang="xml">testFunc <- function(){</syntaxhighlight>. | |||
** '''postCode:''' Unter diesem Tag wird, wenn benötigt, der Post Code definiert. Dazu können hinter <syntaxhighlight inline lang="xml">}</syntaxhighlight> die benötigten Funktionen definiert werden. | |||
* '''testcases:''' Hier können verschiedene Testfälle definiert werden. | |||
** '''testcase:''' Innerhalb dieses Tags ist der entsprechende Testfall zu definieren. | |||
*** '''feedback:''' | |||
*** '''postprocessingFunction (optional):''' Wird eine postprocess-Funktion benötigt, so ist hier postprocess (= der Name der Funktion) einzutragen | |||
*** '''input:''' | |||
*** '''penalty:''' Die Anzahl an Punkten, die beim falschen Lösen der Aufgabe abgezogen werden sollen. | |||
*** '''expectedOutput:''' Hier sollte der R-Code hinterlegt werden, der genau den R-Output ausgibt, der vom Studierenden erwartet wird. Es können auch Zufallszahlen, die in der exercise-Datei definiert wurden, innerhalb dessen verwendet werden. | |||
*** '''errorFeedback:''' Hier kann ggf. Feedback angegeben werden, wenn die eingereichte Lösung des Studierenden als falsch evaluiert wird. | |||
** '''...:''' Wenn nötig, können weitere Testfälle definiert werden. | |||
==Static R Checker== | ==Static R Checker== |
Version vom 3. Dezember 2018, 15:18 Uhr
In JACK gibt es viele verschiedene Checker für die unterschiedlichen Aufgabentypen. Aktuell stehen die folgenden Checker zur Verfügung:
Dynamic R Checker
Wird in R-Aufgaben genutzt. Der DynamicRChecker dient dazu, den vom Studierenden erzeugten Output mit dem erwarteten Output zu vergleichen. Dazu wird innerhalb des Checkers ein Testfall definiert, in dem der Code hinterlegt wird, der den zu erwarteten richtigen Output generiert. Dieser wird dann nach der Einreichung des Studierenden mit dem, vom Code des Studierenden, generierten Output verglichen. Optional kann je nach Bedarf der vom Studierenden übergebene Output über eine sog. postprocessingFunction modifiziert werden. Genauere Informationen zum Checker finden Sie hier.
Genutzte Tags in der Stagedatei
- metaInf:
- numberOfInputArgs: Anzahl an Input-Argumenten (in der Regel
1
) - outputType: Output-Typ (in der Regel
double
) - preCode: Hier steht immer
testFunc <- function(){
. - postCode: Unter diesem Tag wird, wenn benötigt, der Post Code definiert. Dazu können hinter
}
die benötigten Funktionen definiert werden.
- numberOfInputArgs: Anzahl an Input-Argumenten (in der Regel
- testcases: Hier können verschiedene Testfälle definiert werden.
- testcase: Innerhalb dieses Tags ist der entsprechende Testfall zu definieren.
- feedback:
- postprocessingFunction (optional): Wird eine postprocess-Funktion benötigt, so ist hier postprocess (= der Name der Funktion) einzutragen
- input:
- penalty: Die Anzahl an Punkten, die beim falschen Lösen der Aufgabe abgezogen werden sollen.
- expectedOutput: Hier sollte der R-Code hinterlegt werden, der genau den R-Output ausgibt, der vom Studierenden erwartet wird. Es können auch Zufallszahlen, die in der exercise-Datei definiert wurden, innerhalb dessen verwendet werden.
- errorFeedback: Hier kann ggf. Feedback angegeben werden, wenn die eingereichte Lösung des Studierenden als falsch evaluiert wird.
- ...: Wenn nötig, können weitere Testfälle definiert werden.
- testcase: Innerhalb dieses Tags ist der entsprechende Testfall zu definieren.
Static R Checker
Der StaticRChecker ermöglicht statische Checks auf Programmcode und verwendet dazu Abfragen auf dem Syntaxgraphen. Um einen statischen Check mit dem Checker durchzuführen, muss eine einzelne Datei mit Prüfregeln ("Rule File") angegeben werden. Die Regeln werden in dieser Datei im XML-Format organisiert und verwenden die Sprache GReQL für Abfragen auf dem Syntaxbaum. Der zu prüfende Programmcode entstammt dem Editor aus dem Browserfenster. Weitere Informationen finden Sie hier.
Java metric Checker
Tracing Java Checker
Static Java Checker(AGG)
Static Java Checker (GreQL)
Der GReQLJavaChecker ermöglicht statische Checks auf Programmcode und verwendet dazu Abfragen auf dem Syntaxgraphen. Um einen statischen Check mit dem Checker durchzuführen, müssen die zu untersuchenden Dateien in der Liste "Source Files" ausgewählt werden und eine einzelne Datei mit Prüfregeln ("Rule File") angegeben werden. Die Regeln werden in dieser Datei im XML-Format organisiert und verwenden die Sprache GReQL für Abfragen auf dem Syntaxbaum. Weitere Informationen finden Sie hier.
Java Visualizer
UML Checker
Static C++ Checker (GreQL)
Dynamic C++ Checker
InstantMultipleChoiceChecker
Wird in MutlipleChoice-Aufgaben genutzt.
MultipleChoice-Aufgabe
Eine Multiple-Choice-Aufgabe ist eine Aufgabe mit Fragetext und vorgegebenen Antwortoptionen, von denen keine, eine oder mehrere (auch durchaus alle) richtig sein können. Der Lernende muss die richtigen Antworten finden und auswählen. Bei der Erstellung einer solchen Aufgabe ist darauf zu achten, dass die falschen Antworten den Eindruck erwecken richtig zu sein, damit der Lernende es nicht allzu leicht hat.
Aufbau der XML-Datei
Den Aufbau/alle in diesem Checker genutzten Tags finden Sie hier.
Beispiel
Ein kommentiertes Beispiel für den InstantMultipleChoiceChecker finden Sie hier.
InstantFillInChecker
Wird in FillIn-Aufgaben genutzt.
FillIn Aufgabe
Eine Fill-In-Aufgabe bezeichnet man auch als Lückentextaufgabe. Bei diesem Aufgabentyp muss der Studierende seine Lösungen in die dafür vorgesehenen Kästchen eintragen oder aus einer Auswahl von voreingestellten möglichen Antworten auswählen. Im zweiten Fall erscheint dem Lernenden bei der Anzeige der Aufgabe ein Drop-Down-Menü und er muss die richtige Antwort finden und auswählen. Die Besonderheiten hierbei können Sie hier nachlesen.
Aufbau
Den Aufbau/alle in diesem Checker genutzten Tags finden Sie hier.
Beispiel
Ein kommentiertes Beispiel für den InstantFillInChecker finden Sie hier.
ExerciseChain
In der ExerciseChain werden allgemeine Informationen zur Aufgabe gespeichert: Möchte man bspw. eine Aufgabe mit Variablen definieren, so muss man dies in dieser Datei tun. Für jede einzelne Stufe der Aufgabe muss außerdem ein Abschnitt definiert werden. Dort teilt man der Aufgabe mit, welche Variablen sie dieser Stufe übergeben soll und welche Stufe bei welcher Einreichung als nächstes angezeigt werden soll.
Aufbau
Den Aufbau/alle in diesem Checker genutzten Tags finden Sie hier.
Beispiel
Ein kommentiertes Beispiel für den exerciseChain finden Sie hier.