Fragetyp Coderunner: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
KKeine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ÜbersetzenVergeben}}
{{Fragen}}
 
{{Infobox Plugin
{{Infobox Plugin
|type = Fragetyp
|type = Fragetyp
Zeile 6: Zeile 5:
|tracker = https://github.com/trampgeek/moodle-qtype_coderunner/issues
|tracker = https://github.com/trampgeek/moodle-qtype_coderunner/issues
|discussion = https://moodle.org/mod/forum/view.php?id=752
|discussion = https://moodle.org/mod/forum/view.php?id=752
|maintainer = [[user:Richard Lobb|Richard Lobb]]
|maintainer = [https://moodle.org/user/profile.php?id=402334 Richard Lobb]
|float = right
|float = right
}}
}}
{{Fragen}}
==Einführung==
==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.  
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.  
Zeile 43: Zeile 39:
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 Folus in diesem Artikel liegt jedoch auf Fragen, in denen als Antwort Programmcode eingegeben werden muss, der dann automatisiert getestet und bewertet wird.
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 Folus 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 [[Test konfigurieren|Konfiguration des Tests]]
Unabhängig von der [[Test konfigurieren#Frageverhalten|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.
 
Regardless of the behaviour chosen for a quiz, CodeRunner questions always run in an adaptive mode, in which students can click a Checkbutton to see if their code passes the tests defined in the question. If not, students can  resubmit, typically for a small penalty. In the typical 'all-or-nothing' mode, all test cases must pass if the submission is to be awarded any marks. The mark for a set of questions in a quiz is then determined primarily by which questions the student is able to solve successfully and then secondarily by how many submissions the student makes on each question. However, it is also possible to configure CodeRunner questions so that the mark is determined by how many of the tests the code successfully passes.


CodeRunner and its predecessors pycode and ccode has been in use at the University of Canterbury for about six years, running over a million student quiz question submissions in Python, C , JavaScript, PHP, Octave and Matlab. Laboratory work, assignment work and mid-semester tests in the introductory first year Python programming course (COSC121), which has around 500 students in the first semester and 300 in the second, are all assessed using CodeRunner questions. The final exams for COSC121 have also been run using Moodle/CodeRunner since November 2014.
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.


The second year C course (ENCE260) of around 200 students makes similar use of CodeRunner using C questions and a third year Civil Engineering course (ENCN305), taught in Matlab, uses CodeRunner for all labs and for the mid-semester programming exam. Other courses using Moodle/CodeRunner include:
Weitere Kurse, die den Fragetyp nutzen, sind


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


CodeRunner currently supports Python2 (considered obsolescent), Python3, C, C++, Java, PHP, JavaScript (NodeJS), Octave and Matlab. The architecture allows easy extension to other languages.
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 can safely be used on an institutional Moodle server, provided that the sandbox software in which code is run ("Jobe") is installed on a separate machine with adequate security and firewalling. However, if CodeRunner-based quizzes are to be used for tests and final exams, a separate Moodle server is recommended, both for load reasons and so that various Moodle communication facilities, like chat and messaging, can be turned off without impacting other classes.
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.  


A single 4-core Moodle server can handle an average quiz question submission rate of about 60 quiz questions per minute while maintaining a response time of less than about 3 - 4 seconds, assuming the student code itself runs in a fraction of a second. We have run CodeRunner-based exams with nearly 300 students and experienced only light to moderate load factors on an 8-core Moodle server. The Jobe server, which runs student submissions (see below), is even more lightly loaded during such an exam.
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.


The CodeRunner question type can be installed on any modern Moodle system (version 2.9 or later including version 3.2), on Linux, Windows and Mac. For security reasons submitted jobs are usually run on a separate machine called the "Jobe server" or "Jobe sandbox machine".
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.


[[Category:Fragen]]
[[Category:Fragen]]

Aktuelle Version vom 24. März 2019, 19:26 Uhr


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 Folus 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.