R (JACK3): Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(43 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
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===
===Aufgabeninhalt===
* '''Titel:''' An dieser Stelle kann optional ein Name für die Stufe eingegeben werden.
In dem Bereich Aufgabeninhalt wird der Aufgabentext erstellt und spezifische Eingaben für den jeweiligen Aufgabenteil gemacht.
* '''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.
* '''Titel:''' An dieser Stelle kann optional ein Name für den Aufgabenteil eingegeben werden.
* '''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. An allen Stellen lässt sich hier auch mit Variablen arbeiten. Die werden wie bei den anderen Aufgaben entsprechend ersetzt.
* '''Aufgabentext:''' Im Aufgabentext steht die Aufgabenstellung. Der Editor für den Aufgabetext lässt sich öffnen in dem man reinklickt. In dem Fließtext kann Latex-Code verwendet werden, indem man diesen mit $-Zeichen einspannt. Der Editor bietet einige Formatierungen an wie z.B. fett, kursiv und unterstrichen. Einfache Tabellen können auch mithilfe des Editors erstellt werden. Wenn man den Button ''source code'' [[File:Icon-source_code.jpg|35px]] verwendet kann man HTML-Code nutzen. Über den Button '''Ressource Einfügen''' lässt sich ein hochgeladenes Bild oder ein Link in den Aufgabentext einfügen.
[[File:R_Aufgabentext.JPG|center|thumb|800px|Aufgabentext für eine R Aufgabe]]
* '''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. '''Ab JACK 0.14.0:''' Der Wert der Variablen wird bei der Ersetzung in R-Syntax umgeformt.
[[File:R_VorausgefuellterCode.JPG|center|thumb|800px|Vorausgefüllter Code bei R Aufgaben]]


===Feedback===
===Feedback===
* '''Gewichtung des Aufgabenteils:''' Gewichtung der Punktzahl dieser Stufe innerhalb der ganzen Aufgabe
* '''Gewichtung des Aufgabenteils:''' Gewichtung der Punktzahl dieses Aufgabenteils 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.
* '''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.
* '''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.
[[File:R_Evaluierungsregel.JPG|center|thumb|800px|Evaluierungsregeln bei R Aufgaben]]
* '''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 den Aufgabenteil übersprungen hat. Den Text kann man über Klicken in das Textfeld oder das Icon [[File:Icon-Pencil.jpg|22px]] hinzufügen.


===Hinweise===
{{JACK3:Hinweise}}
Jede Stufe kann beliebig viele Hinweise anbieten. Alle weiteren Informationen wie man Hinweise angibt sind [[Hinweise|hier]] zu finden.


===Verknüpfungen===
===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:
* '''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:
** '''Nächster oder Ende:''' Dies ist die default Einstellung. Nach der studentischen Einreichung dieses Aufgabenteils wird der nächste Aufgabenteil in der Reihe angezeigt. Wenn dies der letzte Aufgabenteil dieser Aufgabe ist, ist die Aufgabe beendet.
** '''Ende der Aufgabe:''' Die Aufgabe ist mit der Aktion des Lernenden beendet.
** '''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.
** '''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.
** '''#x (x ist dabei ein beliebiger Aufgabenteil dieser Aufgabe):''' Der entsprechende Aufgabenteil wird als nächstes angezeigt. Wenn man die Aufgabenteilnummer des aktuellen Aufgabenteils wählt wird dieser Aufgabenteil neu aufgerufen.
 
{{JACK3:Variablenupdates}}
 
{{JACK3:Dateien für Studierende}}


===Checker===
===Checker===
Zeile 24: Zeile 32:
* Jede Gruppe kann aus beliebig vielen statischen und dynamischen Checks bestehen.
* 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.
* 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).
* Die Punktzahl jeder Gruppe kann in der Evaluierungsregel im Feedback referenziert werden (siehe oben) und unterschiedlich stark in die Bewertung eingehen.


'''Dynamische Testfälle'''
[[Datei:R_Testfallgruppen.JPG|center]]
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:
In diesem Beispiel gibt es eine Testfall Gruppe mit einem statischen und einem dynamischen Checker. Für nähere Informationen zu den Checkern siehe:
* '''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.
* '''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| <^-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'''
* [[Dynamischer R Checker (JACK3)|Dynamischer R Checker]] zum Ausführen von Testfällen.
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:
* [[R GReQL Checker (JACK3)|Statischer R Checker]] für das Prüfen mithilfe von GReQL-Regeln.


'''Testfallgruppen Konfiguration'''
'''Testfallgruppen Konfiguration'''
[[Datei:R_TestfallKonfiguration.JPG|center]]
Hier lässt sich die ganze Testfallgruppe konfigurieren.
* '''Variablenname:''' Den hier angegebene Variablenname braucht man, um die Testfallgruppe im Feedback-Tab anzugeben.
* '''Name:''' Zusätzlich zu dem automatisch generierten Variablennamen kann man hier selber einen Namen eingeben. Dieser dient dazu in dem Tab "Feedback" die Gesamtberechnung vornehmen zu können.
Die anderen Einstellungsmöglichkeiten sind noch nicht fertig implementiert.
=== Variablen ===
Die folgenden [[Variablen (JACK3)|JACK-Variablen]] stehen für diesen Aufgabentyp zur Verfügung:
{| class="wikitable"
|-
! Name !! Beschreibung
|-
| <code>[input=rStudentInputSetBySystem]</code>|| Der eingereichte R-Code
|-
|<code>[meta=rStagePrefilledCode]</code>|| Der vorausgefüllte R-Code
|}
=== R-Pakete ===
Es werden verschiedene R-Pakete zur Verfügung gestellt, die innerhalb von R-Code genutzt werden können.
Die folgenden Pakete sind installiert:
* AER
* aghanck
* base
* car
* compositions
* datasets
* DescTools
* dplyr
* graphics
* grDevices
* grid
* Hmisc
* ineq
* KernSmooth
* lattice
* lmtest
* MASS
* methods
* moments
* mtvnorm
* psych
* sandwich
* stats
* testthat
* tools
* utils
* zoo
Davon werden die folgenden '''immer''' geladen und stehen somit immer zur Verfügung:
* aghanck
* base
* datasets
* graphics
* grDevices
* grid
* KernSmooth
* lattice
* methods
* stats
* testthat
* utils
'''Pakete die installiert, aber nicht geladen sind können wie folgt verwendet werden:'''
* Das Paket kann mit <code>library("paketname")</code> geladen werden. Danach stehen alle Funktionen zur Verfügung. '''Zu Beachten:''' Möglicherweise überschreibt dies Funktionen aus bereits geladenen Paketen. Existiert bereits eine Funktion mit demselben Namen wird immer die, aus dem zuletzt geladenen Paket, verwendet. Ein so geladenes Paket steht immer für den darauf folgenden R-Code zur Verfügung. Pakete werden nur für eine Anfrage geladen und müssen in anderen Komponenten erneut geladen werden (Beispielsweise muss im Vordefinierten Code und im R-Taschenrechner jeweils die Library geladen werden, damit diese in beiden zur Verfügung steht). Wird der Library-Befehl aus dem Code entfernt und dieser erneut abgeschickt, wird das Paket nicht mehr geladen.
ODER
* Funktionen aus nicht geladenen Paketen können immer mit dem ::-Operator genutzt werden. Dieser wird im folgenden Format verwendet <code>paketname::funktion</code> (Bsp.: <code>base::abs(-2) -> 2</code>).
Wenn Sie weitere R-Pakete benötigen, wenden Sie sich bitte an das JACK-Team.


[[category:Benutzerhandbuch]]
[[category:Benutzerhandbuch]]

Aktuelle Version vom 5. November 2024, 11:22 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

In dem Bereich Aufgabeninhalt wird der Aufgabentext erstellt und spezifische Eingaben für den jeweiligen Aufgabenteil gemacht.

  • Titel: An dieser Stelle kann optional ein Name für den Aufgabenteil eingegeben werden.
  • Aufgabentext: Im Aufgabentext steht die Aufgabenstellung. Der Editor für den Aufgabetext lässt sich öffnen in dem man reinklickt. In dem Fließtext kann Latex-Code verwendet werden, indem man diesen mit $-Zeichen einspannt. Der Editor bietet einige Formatierungen an wie z.B. fett, kursiv und unterstrichen. Einfache Tabellen können auch mithilfe des Editors erstellt werden. Wenn man den Button source code Icon-source code.jpg verwendet kann man HTML-Code nutzen. Über den Button Ressource Einfügen lässt sich ein hochgeladenes Bild oder ein Link in den Aufgabentext einfügen.
Aufgabentext für eine R Aufgabe
  • 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. Ab JACK 0.14.0: Der Wert der Variablen wird bei der Ersetzung in R-Syntax umgeformt.
Vorausgefüllter Code bei R Aufgaben

Feedback

  • Gewichtung des Aufgabenteils: Gewichtung der Punktzahl dieses Aufgabenteils 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.
Evaluierungsregeln bei R Aufgaben
  • 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 den Aufgabenteil übersprungen hat. Den Text kann man über Klicken in das Textfeld oder das Icon Icon-Pencil.jpg hinzufügen.

Hinweise

Jeder Aufgabenteil kann beliebig viele Hinweise anbieten. Weitere Informationen zu Hinweisen siehe hier.

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:
    • Nächster oder Ende: Dies ist die default Einstellung. Nach der studentischen Einreichung dieses Aufgabenteils wird der nächste Aufgabenteil in der Reihe angezeigt. Wenn dies der letzte Aufgabenteil dieser Aufgabe ist, ist die Aufgabe beendet.
    • 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 ein beliebiger Aufgabenteil dieser Aufgabe): Der entsprechende Aufgabenteil wird als nächstes angezeigt. Wenn man die Aufgabenteilnummer des aktuellen Aufgabenteils wählt wird dieser Aufgabenteil neu aufgerufen.

Variablenupdates

Mithilfe von Variablenupdates lassen sich Aufgaben-Variablen bei bestimmten Events ändern, z.B. können diese die Eingabe zur späteren Verwendung zwischenspeichern oder Zufallsvariablen neu auswürfeln. Diese Funktion ist für alle Aufgabenteile, unabhängig von ihrem Typ verfügbar, wenn Variablen definiert sind. Es gelten die allgemeinen Informationen zum Anlegen von Variablenupdates.

Dateien

Im Reiter Dateien können Dateien Studierenden zum Download zur Verfügung gestellt werden. Diese Funktion ist für alle Aufgabenteile, unabhängig von ihrem Typ, verfügbar, wenn Dateien in dieser Aufgabe hochgeladen wurden. Hier können Lehrende einzelne Dateien auswählen, die Lernende während der Bearbeitung herunterladen können.

Datei, die zum Aufgabenteil hinzugefügt werden kann
Hinzugefügte Datei aus Studierendensicht mit einer zusätzlichen Beschreibung

Über den Icon Plus.PNG-Button wird eine Datei der oberen Liste hinzugefügt, über "-" wird die Datei wieder entfernt. Es kann zusätzlich eine benutzerdefinierte Beschreibung eingegeben werden, die Studierenden angezeigt wird.

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) und unterschiedlich stark in die Bewertung eingehen.
R Testfallgruppen.JPG

In diesem Beispiel gibt es eine Testfall Gruppe mit einem statischen und einem dynamischen Checker. Für nähere Informationen zu den Checkern siehe:

Testfallgruppen Konfiguration

R TestfallKonfiguration.JPG

Hier lässt sich die ganze Testfallgruppe konfigurieren.

  • Variablenname: Den hier angegebene Variablenname braucht man, um die Testfallgruppe im Feedback-Tab anzugeben.
  • Name: Zusätzlich zu dem automatisch generierten Variablennamen kann man hier selber einen Namen eingeben. Dieser dient dazu in dem Tab "Feedback" die Gesamtberechnung vornehmen zu können.

Die anderen Einstellungsmöglichkeiten sind noch nicht fertig implementiert.

Variablen

Die folgenden JACK-Variablen stehen für diesen Aufgabentyp zur Verfügung:

Name Beschreibung
[input=rStudentInputSetBySystem] Der eingereichte R-Code
[meta=rStagePrefilledCode] Der vorausgefüllte R-Code

R-Pakete

Es werden verschiedene R-Pakete zur Verfügung gestellt, die innerhalb von R-Code genutzt werden können.

Die folgenden Pakete sind installiert:

  • AER
  • aghanck
  • base
  • car
  • compositions
  • datasets
  • DescTools
  • dplyr
  • graphics
  • grDevices
  • grid
  • Hmisc
  • ineq
  • KernSmooth
  • lattice
  • lmtest
  • MASS
  • methods
  • moments
  • mtvnorm
  • psych
  • sandwich
  • stats
  • testthat
  • tools
  • utils
  • zoo

Davon werden die folgenden immer geladen und stehen somit immer zur Verfügung:

  • aghanck
  • base
  • datasets
  • graphics
  • grDevices
  • grid
  • KernSmooth
  • lattice
  • methods
  • stats
  • testthat
  • utils

Pakete die installiert, aber nicht geladen sind können wie folgt verwendet werden:

  • Das Paket kann mit library("paketname") geladen werden. Danach stehen alle Funktionen zur Verfügung. Zu Beachten: Möglicherweise überschreibt dies Funktionen aus bereits geladenen Paketen. Existiert bereits eine Funktion mit demselben Namen wird immer die, aus dem zuletzt geladenen Paket, verwendet. Ein so geladenes Paket steht immer für den darauf folgenden R-Code zur Verfügung. Pakete werden nur für eine Anfrage geladen und müssen in anderen Komponenten erneut geladen werden (Beispielsweise muss im Vordefinierten Code und im R-Taschenrechner jeweils die Library geladen werden, damit diese in beiden zur Verfügung steht). Wird der Library-Befehl aus dem Code entfernt und dieser erneut abgeschickt, wird das Paket nicht mehr geladen.

ODER

  • Funktionen aus nicht geladenen Paketen können immer mit dem ::-Operator genutzt werden. Dieser wird im folgenden Format verwendet paketname::funktion (Bsp.: base::abs(-2) -> 2).

Wenn Sie weitere R-Pakete benötigen, wenden Sie sich bitte an das JACK-Team.