# Aufgaben erstellen

TIPP

Um eine Aufgabe zu erstellen, brauchst du mindestens das Gruppenrollenrecht Can create exercises

Eine Aufgabe ist immer mit einer Gruppe verbunden, welche die Aufgabe verwaltet.
Alle berechtigten Mitglieder der Gruppe haben dann Zugriff auf die Aufgabe.

# Erstellen

Gehe in das Menü und dann

  • zu Own exercises und dann oben auf Create exercise
  • zu Group exercises und dann oben auf Create exercise
  • klicke auf New exercise

Aufgabe erstellen Seite

Eine Aufgabe braucht mindestens folgende Angaben

  • einen Namen
  • ein Code Template

# Allgemeines zur Seite

Im oberen Bereich der Seite sind ein paar allgemeine Funktionen platziert.

# Aufgabe permanent sperren (Lock exercise permanently)

Hier kannst du eine Aufgabe permanent einfrieren. Damit wird alles, was mit der Aufgabe verbunden ist (Freigaben, Lösungen, Bewertungen) schreibgeschützt.
Bitte beachte dazu auch die Hilfe an dem ?-Symbol.

WARNUNG

Diese Aktion kann nicht rückgängig gemacht werden.

# Aufgabe exportieren

Hier kann die Aufgabe exportieren werden. Da es allerdings aktuell keinen Import gibt, ist das eher für eine sichere (offline) Archivierung gedacht.

# Aufgaben Editor (Description Editor)

Dieser Bereich befindet sich oben links

Hier kann die Aufgabenstellung formuliert werden.

Siehe dazu auch den Bereich/Panel oben rechts Guide. Dort wird der Syntax beschrieben.

Hier die Kurzfassung

  • [question=pdf] gibt an, dass die Aufgabenstellung ein PDF-Dokument ist.
  • [question=md] gibt an, dass die Aufgabenstellung in Markdown verfasst ist.
  • [question=txt] gibt an, dass die Aufgabenstellung normaler Text ist.

Markdown wird wärmstens empfohlen, da einfach und z.B. sich an die Größe des Fensters anpasst (Wrapping), das das PDF nicht kann.

Damit auch etwas komplexere Aufgabenstellungen formuliert werden können, kann man den LaTeX-Mathe Modus verwenden (es werden ggf. nicht 100% der Funktionen unterstützt), indem

  • $x^2$ für den Inline-Modus,
  • $$x^2 bzw. \\[x^2\\] für Zeilen-Modus

verwendet wird.

Außerdem wird Github Flavored Markdown (GFM) unterstützt.

Bilder können ebenfalls eingebunden werden, indem sie vorher in dem Panel Assets hinzugefügt werden. Dort findet sich dann auch ein Button zum Kopieren (und direkt Einfügen).
Manuell kann das Bild dann so referenziert werden: ![not found](asset:/ID)

# Preview (Vorschau)

Dieser Bereich befindet sich oben rechts

Hier wird die Aufgabenstellung gerendert dargestellt.
Diese Ansicht entspricht dem, was die Nutzer dann als Aufgabenstellung sehen.

# Eigenschaften (Properties)

Diesem Bereich befindet sich oben rechts

  • Name ist der Name der Aufgabe, der auch in Übersichten dargestellt wird.

  • Description ist die kurze Beschreibung der Aufgaben, die auch in Übersichten dargestellt wird.

  • Users are allowed to create custom tests

    • [x] Die Nutzer können eigene Tests erstellen
    • [ ] Die Nutzer können keine Tests erstellen
  • Users are allowed to rename files and create new ones Nutzer können neue Dateien erstellen und vorhandene Dateien umbenennen
    Ausgenommen ist nur die Hauptdatei!

  • Exercise is only visible to owner Diese Option kann nur benutzt werden, wenn keine Freigaben für die Aufgabe existieren. Wenn die Option aktiviert wird, kannst nur noch du die Aufgabe sehen und bearbeiten (auch in der Gruppe).

    • Außerdem funktionieren Freigabecodes für die Aufgabe nur noch für dich!
  • Settings for custom tests Diese Einstellungen werden für alle Tests benutzt, die der Nutzer selbst erstellt.

  • Managed by group Hier wird die Gruppe angegeben, zu der die Aufgabe dann gehört.
    Mitglieder mit entsprechender Berechtigung können die Aufgabe dann sehen und bearbeiten.
    Es sind nur Gruppen sichtbar, in denen du ein Mitglied bist und entsprechende Berechtigung hast

# Code Vorlagen (Code templates)

Dieser Bereich befindet sich unten links

Hier können Vorlagen für die Benutzer (welche die Aufgabe später lösen) hinterlegt werden.

Code Template Dialog

Jede Programmiersprache kann nur ein Template haben. Wähle am besten direkt nach dem Klick auf Add die richtige Programmiersprache aus.

Neue Dateien können angelegt werden, indem der Name (oberhalb des Striches) links im Dialog eingegeben wird und anschließend auf + geklickt wird.
Jedes Template braucht mindestens eine Datei und eine Hauptdatei (Main file).
Die Hauptdatei wird dann dem Kompiler als Einstiegspunkt übergeben.

Ist das Template im Dialog gespeichert, kann für jede Datei noch folgendes eingestellt werden

  • Ist der Inhalt von den Benutzern veränderbar? Content editable by user
    • Für Testdateien ist das nützlich, um z.B. bestimmte Ausgaben zu erzeugen.
  • Ist der Inhalt für die Benutzern sichtbar? Content is visible for user
    • Bitte beachte, dass das nur visuell ist. Ein Nutzer kann sich z.B. ein Programm schreiben, das alle Dateien im aktuellen Verzeichnis ausgibt und so den Inhalt der Datei sieht.

TIPP

Es muss mindestens ein Template (für mindestens eine Programmiersprache) vorgegeben werden, auch wenn es nur eine Hauptdatei ohne Inhalt beinhaltet.

TIPP

Nachdem mindestens eine Freigabe erstellt wurde, können keine neuen Dateien mehr zu dem Templates hinzugefügt werden!
Das kommt daher, dass nicht mehr davon ausgegangen werden kann, dass wirklich alle Nutzer alle Dateien des Templates haben.

WARNUNG

Das nachträgliche Ändern der Eigenschaften Content editable by user und Content is visible for user für Dateien, die Bereits von Nutzern bearbeitet wurden, kann weitreichende Folgen haben. Siehe dazu die Hinweise im ?-Symbol neben dem Text in Yapex.

# Normale Tests

Dieser Bereich befindet sich unten rechts

Normale Tests werden den Nutzern angezeigt und können von ihnen ausgeführt werden.

Normale und submit Tests können ebenfalls Dateien verwenden, z.B. eine Datei als Eingabe für ein Programm.

Beim Erstellen des Tests können im Dialog unter dem Tab Test settings & files Dateien hinzugefügt werden.

TIPP

Bitte beachte, dass du Zugriff auf alle Dateien anderer Tests (von anderen Aufgaben) hast, auf die du (durch Gruppen) Zugriff hast.
Daher ist es nicht immer nötig eine neue Datei hochzuladen.

Für eine Anleitung für Tests siehe Tests erstellen und verstehen

# Submit Tests

Dieser Bereich befindet sich unten rechts

Submit Tests werden den Nutzern nicht sofort angezeigt.
Währen die Nutzer die Aufgabe lösen, sind diese Tests nicht sichtbar. Nachdem die Freigabe beendet wurde, werden die Normalen- und submit Tests automatisch ausgeführt (je nach Einstellung in der Freigabe).

Nachdem die automatische Ausführung der Tests abgeschlossen ist, werden die submit Tests den Nutzer angezeigt!

TIPP

Die submit Tests sollen verhindern, dass die Nutzer ihren Code nur auf die sichtbaren normalen Tests abstimmen.

Für eine Anleitung für Tests siehe Tests erstellen und verstehen

# Dateien (Assets)

Dieser Bereich befindet sich unten links

Hier können Dateien hochgeladen werden, die in der Aufgabenstellung benutzt werden können.

Bilder können in Markdown dann so referenziert werden: ![not found](asset:/ID)

Wenn die Aufgabenstellung ein PDF-Dokument sein soll, muss es hiermit hochgeladen werden.

TIPP

Bitte beachte, dass du Zugriff auf alle Dateien anderer Aufgaben hast, auf die du (durch Gruppen) Zugriff hast.
Daher ist es nicht immer nötig eine neue Datei hochzuladen.

WARNUNG

Wenn du eine Datei von der Aufgabe entfernst und sie mit keiner anderen Aufgabe verbunden ist, wird die Datei gelöscht!

# Tags

Dieser Bereich befindet sich unten links

Hier können Tags hinzugefügt werden.

TIPP

Welches System zur Vergabe der Tags verwendet wird, ist den Gruppen selbst überlassen und muss intern geregelt werden.

# Notizen (Note)

Dieser Bereich befindet sich unten links

Hier können Notizen hinzugefügt werden, diese sind für alle Sichtbar, die die Aufgabe auch bearbeiten können.

# Aufgabe testen

Aktuell gibt es das Feature Musterlösung nicht.

Willst du die Aufgabe zunächst nur allein testen und soll kein anderes Gruppenmitglied die Aufgabe sehen oder auch testen können, empfiehlt sich die Option Exercise is only visible to owner unter Eigenschaften.

Um die erstellt Aufgabe zu testen, musste du eine Freigabe (praktisch eine Test-Freigabe) erstellen.

Eine Notiz an der Freigabe, etwa Test, hilft dabei die Freigabe von echten Freigabe für Übungsgruppen zu unterscheiden. Die Test-Freigabe kann auch später noch offen bleiben, damit z.B. Kontrolleure die Aufgabe für sich lösen können. Aus diesem Grund sollte die Test-Freigabe einen manuellen Start und ein manuelles Ende haben, jedoch nicht geschlossen werden.

Alle Änderungen an einer Aufgabe (und Freigabe) werden nur sichtbar, wenn die Seite zum Lösen der Aufgabe neu geladen wird. Gerade zum Erstellen der Tests bieten sich daher 2 Tabs im Browser an.