R (JACK3): Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(26 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
===Aufgabeninhalt===
===Aufgabeninhalt===
* '''Titel:''' An dieser Stelle kann optional ein Name für die Stufe eingegeben werden.
* '''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.
* '''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.
[[Datei:R_Aufgabentext.JPG|center]]
[[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. An allen Stellen lässt sich hier auch mit Variablen arbeiten. Die werden wie bei den anderen Aufgaben entsprechend ersetzt.
* '''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.
[[Datei:R_VorausgefuellterCode.JPG|center]]
[[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 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.
* '''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 die Stufe ü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===
Zeile 20: Zeile 20:
** '''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 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.
{{JACK3:Variablenupdates}}
{{JACK3:Dateien für Studierende}}


===Checker===
===Checker===
Zeile 26: Zeile 30:
* 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.


'''Dynamische Testfälle'''
'''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:
Alle Einstellungsmöglichkeiten des dynamischen Checkers sind [[Dynamischer_R_Checker (JACK3)|hier]] zu finden.
* '''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| <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'''
'''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:
Alle Einstellungsmöglichkeiten des statischen Checkers sind [[R_GReQL_Checker|hier]] zu finden.
* '''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'''
'''Testfallgruppen Konfiguration'''
[[Datei:R_TestfallKonfiguration.JPG|center]]
Hier lässt sich die ganze Testfallgruppe konfigurieren.
Hier lässt sich die ganze Testfallgruppe konfigurieren.
* '''Variablenname:''' Der hier angegebene Variablenname braucht man, um die Testfallgruppe im Feedback-Tab anzugeben.
* '''Variablenname:''' Den hier angegebene Variablenname braucht man, um die Testfallgruppe im Feedback-Tab anzugeben.
* '''Name:'''
* '''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.
* '''Externer Name:'''
Die anderen Einstellungsmöglichkeiten sind noch nicht fertig implementiert.
* '''Ist Aktiv?:'''
 
* '''Bewertung für Lernende sichtbar?:'''
=== Variablen ===
* '''Feedback für Lernende sichtbar?:'''
Die folgenden [[Variablen (JACK3)|JACK-Variablen]] stehen für diesen Aufgabentyp zur Verfügung:
* '''Ist asynchron?:'''
{| class="wikitable"
|-
! Name !! Beschreibung
|-
| <code>[input=rStudentInputSetBySystem]</code>|| Der eingereichte R-Code
|}


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

Aktuelle Version vom 21. März 2024, 15:48 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: 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.
Vorausgefüllter Code bei R Aufgaben

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.
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 die Stufe übersprungen hat. Den Text kann man über Klicken in das Textfeld oder das Icon Icon-Pencil.jpg hinzufügen.

Hinweise

Jede Stufe 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:
    • 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

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.

Dynamische Testfälle Alle Einstellungsmöglichkeiten des dynamischen Checkers sind hier zu finden.

Statische Testfälle Alle Einstellungsmöglichkeiten des statischen Checkers sind hier zu finden.

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