Fragetyp Coderunner

Aus MoodleDocs
Wechseln zu:Navigation, Suche


Einführung

CodeRunner ist ein frei verfügbarer Fragetyp in Moodle und steht als Zusatz-Plugin zur Verfügung. CodeRunner kann Programmcode ausführen, dern Kursteilnehmer/innen als Antwort auf eine Programmierfrage in einem Test eingeben. CodeRunner deckt eine große Bandbreite an Programmiersprachen ab. Der Fragetyp ist in erster Linie für Programmierkurse gedacht, er kann aber auch für alle Fragen verwendet werden, die als Antwort einen Text erwarten.

Typischerweise verwendet man diesen Fragetyp in einem Test im adaptiven Modus: Die Kursteilnehmer/innen geben als Antwort ihren Programmcode ein, der Code wird ausgeführt und bewertet. Wenn der Code fehlerhaft ist, können die Teilnehmer/innen ihn sofort korrigieren, wobei sie einen festgelegten Punktabzug erhalten.

Beispiel:

CodeRunner example 01.png

Demo Site

Demo Tests

Wenn Sie sehen möchten, wie der Fragetyp eingesetzt werden kann, dann machen Sie den Demo Test für Python3. Sie werden zunächst gebeten, sich als Nutzer/in auf der Moodle-Site zu registrieren. Das geht schnell und einfach, und Sie müssen sich nicht sorgen, dass wir Sie dadurch mit Spam-Mails belästigen.

Der Demo Test soll Ihnen einen Eindruck vermitteln, wie der Fragetyp funktioniert, unabhängig davon, ob Sie Python3 kennen oder nicht. Im Prinzip funktioniert die Frage in allen unterstützten Programmiersprachen (Python2, Python3, C, C++, Java, PHP, JavaScript, Octave).

Der zweite Test zeigt einige einfache Fragen für C und Java.

CodeRunner Nutzerforum

Es gibt ein Nutzerforum, in dem Sie Ideen für Fragen teilen, Fehler melden und Vorschläge zum CodeRunner-Fragetyp diskutieren können. Abonnieren Sie das Forum, wenn Sie die Diskussionbeiträge verfolgen wollen:

CodeRunner Beschreibung

CodeRunner ist ein Moodle-Fragetyp, der es Trainer/innen erlaubt, Programmcode, der von Kursteilnehmer/innen eingegeben wurde, auszuführen und zu bewerten. Am häufigsten wird dieser Fragetyp in Programmierkursen verwendet, in denen Kursteilnehmer/innen zu einem bestimmten Problem Programmcode schreiben sollen, der dann verschiedene Tests durchläuft und entsprechend bewertet wird. Darüber hinaus kann der Fragetyp in Bereichen verwendet werden, in denen die Bandbreite der richtigen Antworten groß ist und zur Auswertung, ob die angegebene Antwort korrekt ist, ein Algorithmus bzw. Programm verwendet wird. Der Fokus in diesem Artikel liegt jedoch auf Fragen, in denen als Antwort Programmcode eingegeben werden muss, der dann automatisiert getestet und bewertet wird.

Unabhängig von der Konfiguration des Tests laufen CodeRunner-Fragen immer im adaptiven Modus, d.h. Teilnehmer/innen können auf einen Prüfe-Button klicken. Dann wird der Code ausgeführt, und die Teilnehmer/innen sehen, ob ihr Code die Testfälle besteht, die zusammen mit der Frage hinterlegt wurden. Wenn Fehler auftreten, können die Teilnehmer/innen den Code korrigieren und erneut testen. Typischerweise werden sie mit einem (kleinen) Punktabzug "bestraft". Im typischen "Alles-oder-nichts"-Modus müüsen alle testfälle erfolgreich durchlaufen werden, bevor es eine Bewertung gibt. Die Bewertung des gesamten Tests richtet sich dann primär danach, wie viele Fragen ein/e Teilnehmer/in beantworten konnte und weniger danach, wie viele Versuche für die richtige Benatwortung der einzelnen Fragen nötig waren. Gleichwohl ist es möglich, CodeRunner-Fragen so zu konfigurieren, dass die Bewertung letztendlich davon abhängt, wie viele hinterlegte Testfälle der Code erfolgreich durchlaufen hat.

Der Fragetyp ist an der University of Canterbury seit mehr als sechs Jahren erfolgreich im Einsatz, wobei die Programmiersprachen Python, C, JavaScript, PHP, Octave und Matlab verwendet wurden. Laborversuche, Aufgabenabgaben und Zwischentests wurden im Kurs "Einführung in Python" mit ca. 500 Teilnehmer/innen im 1. Semester und ca. 300 Teilnehmer/innen im 2. Semester unter Verwendung von CodeRunner-Fragen durchgeführt. Auch die Abschlussprüfung wird seit November 2014 mit diesem Fragetyp durchgeführt.

Weitere Kurse, die den Fragetyp nutzen, sind

  • ENCE260 C Course
  • EMTH171 Mathematical Modelling and Computation
  • SENG02 Software Engineering I
  • COSC261 Formal Languages and Compilers
  • COSC367 Computational Intelligence
  • ENCE360 Operating Systems
  • SENG365 Web Computing Architectures

CodeRunner unterstützt derzeit Python2, Python3, C, C++, Java, PHP, JavaScript (NodeJS), Octave und Matlab. Die Code-Architekture ermöglicht eine einfache Erwweiterung auf andere Programmiersprachen.

CodeRunner kann auf produktiven Moodle-Server sicher genutzt werden. Einzige Voraussetzung dafür ist, dass die Sandbox Software ("Jobe"), mit der der eingegebene Code ausgeführt wird, auf einem separaten Server installiert ist und dieser Server adäquat abgesichert ist. Wenn Sie CodeRunner-Fragen in Prüfungen einsetzen wollen, empfehlen wir, dafür einen eigenen Moodle-Server aufzusetzen: Zum einen aus Geschwindigkeitsgründen, zum anderen, weil Sie auf diesem Moodle-Server Kommunikationswerkzeuge (Chats, Mitteilungen, etc.) abschalten können, die in Prüfungssituationen unerwünscht sind.

Ein durchschnittlicher Moodle-Server mit einem 4-Kern-Prozessor kann etwa 60 Antworten pro Minute bearbeiten, wobei die Rückmeldezeit weniger als 3-4 Sekunden beträgt, wenn man annimmt, dass der Code selbst in einem Sekundenbruchteil ausgeführt wird. Wir haben Prüfungen mit CodeRunner-Fragen mit ca. 300 Teilnehmer/innen durchgeführt. Der Jobe-Server, auf dem der Code der Teilnehmer/innen ausgeführt wurde (siehe unten), lief problemlos und unter geringer Last.

Der CodeRunner-Fragetyp kann auf jedem Moodle-Server ab 2.9 installiert werden, egal ob unter Linux, Windows oder Mac. Aus Sicherheitsgründen sollte der Code auf einem separaten Server ausgeführt werden. Dieser Server wird Jobe-Server oder Jobe-Sandbox-Server genannt.