R (JACK3): Unterschied zwischen den Versionen
(44 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 | In dem Bereich Aufgabeninhalt wird der Aufgabentext erstellt und spezifische Eingaben für den jeweiligen Aufgabenteil gemacht. | ||
* '''Aufgabentext:''' | * '''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. | * '''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 | * '''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 | [[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. | |||
{{JACK3:Hinweise}} | |||
===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 | ** '''#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. | ||
[[Datei:R_Testfallgruppen.JPG|center]] | |||
In diesem Beispiel gibt es eine Testfall Gruppe mit einem statischen und einem dynamischen Checker. Für nähere Informationen zu den Checkern siehe: | |||
* [[Dynamischer R Checker (JACK3)|Dynamischer R Checker]] zum Ausführen von Testfällen. | |||
* [[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 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.
- 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.
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.
- 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 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.
Über den -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.
In diesem Beispiel gibt es eine Testfall Gruppe mit einem statischen und einem dynamischen Checker. Für nähere Informationen zu den Checkern siehe:
- Dynamischer R Checker zum Ausführen von Testfällen.
- Statischer R Checker für das Prüfen mithilfe von GReQL-Regeln.
Testfallgruppen Konfiguration
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.