Java (JACK3)

Aus JACK Wiki
Version vom 5. November 2024, 11:20 Uhr von Mschypula (Diskussion | Beiträge) (→‎Verknüpfungen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Aufgabeninhalt

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

Editor für den Aufgabentext
  • Titel: Hier kann optional der Name des Aufgabenteils eingetragen 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.
  • Einstellungen für den Dateiupload: Hier werden die Einstellungen gemacht über die Dateien, die die Lernenden als Lösung bei dieser Aufgabe hochladen.
    • Erforderliche Dateinamen: Zuerst wird festgelegt, wie die Dateien heißen sollen. Alle Dateinamen, die unter Erforderliche Dateinamen aufgeführt werden müssen auch von dem Lernenden hochgeladen werden. Ist das Feld leer haben die Lernenden die freie Wahl bei der Benennung ihrer Klassen.
    • Erlaubte Dateinamen: Hier werden die Dateinamen aufgelistet, die alle erlaubt sind. Dadruch können auch Varianten erlaubt werden.
    • Mindestzahl hochgeladener Dateien: Hier wird angegeben wie viele Dateien mindestens die Lernenden hochladen sollen.
    • Höchstzahl hochgeladener Dateien: Hier wird angegeben wie viele Dateien höchsten die Lernenden hochladen dürfen. Wenn die Anzahl festgelegt ist, wie viele Dateien hochgeladen werden sollen, dann muss bei beiden dieselbe Zahl angegeben werden.
Einstellungen bei einer Java Aufgabe

Feedback

  • Gewichtung des Aufgabenteils: Gewichtung der Punktzahl eines Aufgabenteils innerhalb der Aufgabe.
  • Reaktion bei fehlenden oder falschen Dateianhängen: Wie soll Jack reagieren, wenn ein Lernender falsche Dateien angehängt hat oder Dateien fehlen. Es gibt die Möglichkeit die Stufe wiederholen lassen oder die Einreichung mit 0 Punkten bewerten.
  • Verhalten bei internen Fehlern während der Überprüfung: Während der Überprüfung studentischer Lösungen können schon mal interne Fehler auftreten. Hier muss angegeben werden ob die Bearbeitung markiert und abgebrochen wird oder ob eine Nachricht ausgeben und Bearbeitung fortgesetzt wird.
  • Bewertungsverfahren: Über die jeweiligen Button können statische Checker, dynamische Checker und Metrikberechnung hinzugefügt werden.
    • Gewichtung dieses Checks: Die verschiedenen dynamischen und statischen Checker einer Aufgabe können unterschiedlich stark gewichtet werden. Dadurch lässt sich die unterschiedlichen Aufgaben der Checker berücksichtigen.
    • Diesen Check löschen: Über den Button lässt sich dieser Checker von der Aufgabe entfernen.
    • Berücksichtigte Dateien in diesem Check: Hier werden die Dateien eingetragen, die dieser Checker checken soll.
    • Weitere Quellcode-Dateien aus der Aufgabe:
    • Checker:
      • GReQL-Regelsatz zur statischen Überprüfung: Hier wird der Regelsatz eingetragen. Weitere Informationen über den GReQL Java Checker und welche Regeln zur Verfügung stehen finden sich hier.
      • dynamische Tests: Hier wird der Testtreiber für die dynamischen Tests eingefügt. Weitere Informationen über den Tracing Java Checker sind hier zu finden.
      • Metrikberechnung: Hier werden einige Softwaremetriken auf den eingereichten Lösung berechnet (z.B. Lines of Code, Zyklomatische Komplexität). Die Ergebnisse werden in Meta Variablen gespeichert und können als Extra-Feedback ausgegeben werden.
  • Überspringen: Der Lehrende kann jeden Java Aufgabenteil zum Überspringen anbieten. Dazu muss zunächst der Haken gesetzt werden. Danach gibt es noch die Möglichkeit einen Text den Lernenden anzuzeigen, wenn dieser diesen Aufgabenteil übersprungen hat. Das Textfeld öffnet sich entweder wenn man reinklickt oder über den Icon-Pencil.jpg-Button.


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 sein soll, wenn der Lernende eine Lösung eingereicht hat. Dieses wird immer dann durchgeführt, wenn keine andere Aktion zutrifft. 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: Der Aufgabenteil wird wiederholt. Der Lernende kann ein weiteres Ergebnis einreichen. Diese Aktion kann man z.B. bei Übungsaufgaben benutzen, wenn der Lernende eine Aufgabe solange wiederholen soll, bis das richtige Ergebnis eingereicht wurde.
    • #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.
    • Nicht auf Feedback warten und sofort zum nächsten Aufgabenteil weiterschalten: Da bei dieser Aufgabe es teilweise länger dauern kann bis die Checker ein Feedback zurück geben, besteht die Möglichkeit den Haken hier zu setzen. Dann wird nicht auf das Checker Ergebnis gewartet, bevor der nächste Aufgabenteil angezeigt wird.
Verknüpfung mit anderen Stufen
  • Weitere nächste Aufgabenteile (optional): Hier kann die nächste Aktion dynamisch eingestellt werden, d.h. sie kann abhängig von der Variablen Konstelation sein oder von der Eingabe des Lernenden.
  • Nächster Aufgabenteil beim Überspringen (optional): Hier wird eingestellt welcher nächste Aufgabenteil angezeigt werden soll, wennn der Lernende die Stufe übersprungen hat. Diese Einstellungsmöglichkeit steht nur zur Verfügung, wenn der Haken im Tab Feedback fürs Überspringen gesetzt wurde.

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.

Variablen

Wenn in einem statischen Check ein Regelsatz verwendet wurde, der Regeln vom Typ "report" enthält, stehen die Ergebnisse als Variablen der Form [check=<Name_der_Report-Variablen>] zur Verfügung.

Wenn für das Feedback die Metrikberechnung aktiviert wird, stehen außerdem die folgenden Variablen zur Verfügung:

Name Beschreibung
[check=complexity] Zyklomatische Komplexität des untersuchten, studentischen Codes
[check=depth] Maximale Tiefe des AST des untersuchten, studentischen Codes
[check=fields] Anzahl der im untersuchten, studentischen Code deklarierten Felder
[check=methods] Anzahl der im untersuchten, studentischen Code deklarierten Methoden
[check=loops] Anzahl der im untersuchten, studentischen Code vorkommenden Schleifen-Konstrukte
[check=statements] Anzahl der im untersuchten, studentischen Code vorkommenden Statements
[check=expressions] Anzahl der im untersuchten, studentischen Code vorkommenden Ausdrücke
[check=refs] Anzahl der im untersuchten, studentischen Code vorkommenden Referenzen (Feld- und Variablenzugriffe, Methoden- und Konstruktoraufrufe)

Für weitere Informationen über Variablen siehe Variablen.