Programmieraufgabe

Zuletzt geändert von Carina Enke am 15.02.2024

 

Icon_Programmieraufgabe.pngBeim Aufgabentyp Programmieraufgabe handelt es sich um eine spezielle Eingabeaufgabe. Der Teilnehmer gibt Programmcode ein, welcher entweder durch definierte Testfälle oder eine Rahmendatei mit entsprechendem Rückgabewert bewertet wird. Die automatische Prüfung erfolgt durch eine Schnittstelle zur Serveranwendung VPL. Es werden die Programmiersprachen C, C++, Haskell, Pascal, Java, JavaScript, Mathlab/Octave, Phython2 und Phyton3 unterstützt.

Programmieraufgabe - Beispielaufgabe_de.png

commercial.pngFür die Nutzung dieses Aufgabentyps ist eine Lizenzierung notwendig.

 

Aufgabe

Funktion

Beschreibung

Aufgabenstellung

Programmieraufgabe - Aufgabenstellung_de.png

Für die Aufgabenstellung steht Ihnen ein WYSIWYG-Editor zur Verfügung. Dies ermöglicht Ihnen die freie Gestaltung und die Möglichkeit zur Integration von Medien und Formeln einbinden.

Punkte

Programmieraufgabe - Punkte_de.png

Angezeigt wird die maximale Punktzahl für die Aufgabe. Um diese zu ändern, wechseln Sie in den Tab Bewertung.

Antworten

Die Beantwortung einer Programmieraufgabe erfolgt durch die Eingabe von Programmcode. Dem Teilnehmer steht hierfür ein Code Editor mit Syntax-Highlighting zur Verfügung. Der Autor muss die gewünschte Programmiersprache wählen und kann eine automatische Auswertung aktivieren.

Folgende Konfigurationsoptionen stehen Ihnen im Bereich Antworten zur Verfügung:

Funktion

Beschreibung

Automatische Auswertung

Programmieraufgabe - Automatische Auswertung_de.png

Durch die Aktivierung wird die Programmieraufgabe automatisch ausgewertet. Es kann gewählt werden, ob die Bewertung durch Fallprüfung oder den Rückgabewert der Rahmendatei erfolgen soll.

Erfolgt keine Aktivierung der automatischen Auswertung, wird die Aufgabe für die Manuelle Bewertung gekennzeichnet und der Teilnehmer erhält während der Testdurchführung bzw. in der Ergebnisansicht einen entsprechenden Hinweis.

Programmiersprache

Programmieraufgabe - Programmiersprache_de.png

Wählen Sie die erwartete Programmiersprache für die Eingabe und Auswertung der Aufgabe. Es werden die Programmiersprachen C, C++, Haskell, Pascal, Java, JavaScript, Mathlab/Octave, Phython2 und Phyton3 unterstützt.

Bewertung

Ist die automatische Auswertung aktiviert, kann gewählt werden, wie die Bewertung erfolgen soll. Es stehen folgende Optionen zur Verfügung:

  • Fallprüfung: Bewertet wird nach Anzahl der korrekten Testfälle. Der Teilnehmer erhält Prozentanteile der maximalen Punktzahl pro korrektem Testfall.
  • Rückgabewert der Rahmendatei: Bewertet wird durch die Rahmendatei. Der Programmcode liefert als Bewertung einen Prozentwert als Konsolenausgabe ("Grade :=>> 100").

Programmieraufgabe - Bewertung_de.png

Funktion

Beschreibung

Fallprüfung

Programmieraufgabe - Fallprüfung_de.png

Ist zur Bewertung die Option "Fallprüfung" gewählt, wird Ihnen ein entsprechendes Eingabefeld für die Testfälle angezeigt. Die Testfälle müssen in VPL-Syntax eingegeben werden. Jeder Testfall muss wie folgt beschrieben werden:

  • Case = case name
    Definiert den Start eines (neuen) Testfalls. Mittels der Bezeichnung kann im Ergebnisbericht nachvollzogen werden, welche Testfälle erfolgreich waren und welche fehlgeschlagen sind.
  • Input = text (optional)
    Definiert die Eingabe für den Programmcode. Der Input kann mehrere Zeilen umfassen und endet mit dem nächsten VPL-Ausdruck (bspw. output).
  • Output = text
    Definiert die erwartete Ausgabe für den Programmcode. Der Output kann mehrere Zeilen umfassen und endet mit dem nächsten VPL-Ausdruck (bspw. output).

Es können beliebig viele Testfälle definiert werden. Die Bewertung erfolgt entsprechend der Anzahl der korrekten Testfälle. Für den durch den Teilnehmer geschriebenen Programmcode wird geprüft, ob die definierte Ausgabe (Output) mit entsprechender Eingabe (Input) erreicht wird. Die Anzahl erfolgreicher Testfälle im Verhältnis zur Gesamtanzahl ergibt die Bewertung. Die Punktzahl berechnet sich prozentual, auf die durch den Autor definierte maximale Punktzahl.

Die VPL Dokumentation gibt einen Überblick zur VPL Syntax und zeigt im Abschnitt Creating automated tests weitere Beispiele auf.

Rahmendatei

Programmieraufgabe - Rahmendatei_de.png

Rahmendatei als Teilantwort

Die Rahmendatei kann unabhängig von der Bewertungsoption genutzt werden, wenn nur ein Teil des Programmcodes vom Nutzer als Antwort eingegeben werden soll. Durch den Platzhalter {LEARNERRESPONSE} definieren Sie, die Stelle an der die spätere Teilnehmereingabe eingefügt wird.

Wird keine Rahmendatei definiert, wird der Programmcode des Teilnehmers alleinig ausgeführt.

Rahmendatei als Bewertungsmöglichkeit

Die Rahmendatei kann zusätzlich zur Bewertung genutzt werden. Ist als Bewertungsoption "Rückgabewert der Rahmendatei" aktiviert, muss der Programmcode die Bewertung als Prozentwert als Konsolenausgabe ausgeben. Die Rückgabe muss dabei in folgendem Format erfolgen: "Grade :=>> 100" 

Die Bewertungsstufe (Grade) gibt einen Prozentwert an. Die Punktzahl berechnet sich anschließend prozentual, auf die durch den Autor definierte maximale Punktzahl.

Beispiel: Ausgabe Grade :=>> 75“ :  Das Ergebnis entspricht den Anforderungen zu 75%. Bei einer maximalen Punktzahl von 10 Punkten erhält der Teilnehmer 7,5 Punkte

  • Innerhalb der Rahmendatei kann der erreichte „Grade“ ganz individuell berechnet werden. Dieser muss am Ende unbedingt zurückgegeben werden:
Beispiel für die Rückgabe
if (correct) {
  std::out <<Grade :=<< 100<< std::endl;
}
else {
  std::out <<Grade :=<< 100<< std::endl;
}

Erstellen Sie mit Hilfe der Funktionsicons weitere Rahmendateien ... hier noch was nettes

Lösung und Vordefinierter Inhalt

Funktion

Beschreibung

Lösung

Programmieraufgabe - Lösungshinweis_de.png

Der Lösungshinweis wird dem Teilnehmer als Musterlösung angezeigt. Die Musterlösung wird dem Teilnehmer bspw. in einer Testdurchführung mit aktivierter Lösungsanzeige oder in der nachträglichen Ergebniseinsicht angezeigt.

Vordefinierter Inhalt

Editor - vordefinierter Inhalt für Programmieraufgabe_de.png

Der in diesem Feld vordefinierte Inhalt wird dem Teilnehmer in der Testansicht im Lösungseingabefeld vorausgefüllt angeboten. Er kann dann durch den Nutzer überschrieben werden.

Zusätzliche Informationen

Code Editor

Für die Eingabe von Programmcode steht dem Teilnehmer und dem Autor ein spezieller Code Editor auf Basis des ACE-Editors (https://ace.c9.io/) zur Verfügung. Dies ermöglicht insbesondere eine verbesserte Übersicht durch Syntax-Highlighting, spezifisches Ein- und Ausrücken und für Programmcode spezifische Bedienerunterstützung. Der Editor ist entsprechend der gewählten Programmiersprache vorkonfiguriert.

Programmieraufgabe - Code Editor_de.png

Ergebnisbericht (VPL Output)

Die Ergebnisdaten enthalten die vollständige VPL Rückgabe als Textdatei. Diese Datei wird in der Datenarchivierung für jeden Testdurchlauf und jeden Teilnehmer gespeichert. Zukünftig ist eine direkte Anzeige in den Ergebnisansichten für den Bewerter geplant.

Programmieraufgabe - Ergebnisbericht_de.png

Anwendungsbeispiele

Um mögliche Grundeinstellungen und die Wirkungsweise der VPL-Schnittstelle nachzuvollziehen, stellen wir Ihnen hier einige Beispielinhalte bereit.

Sie finden je Programmiersprache eine Datei mit zwei Varianten einer Aufgabe: Einmal konfiguriert mit Rahmendatei und eine zweite Aufgabe konfiguriert mit Fallprüfung. Laden Sie sich die Beispielinhalte herunter und importieren Sie diese in Ihren Aufgabenpool. Wie Sie Aufgaben importieren, beschreibt der Abschnitt Inhalte erstellen oder importieren.