The ProForma Moodle Question Type is a Moodle Plugin that is used for automatically grading programming questions in Moodle quizzes. Questions are internally stored in the ProFormA format (
https://github.com/ProFormA/proformaxml).
In order to generate the submission grade a predefined testsuite is run on an external server (Praktomat).
Standard test frameworks are used for specifying tests. Currently the following programming languages and test frameworks are supported:
- Java: JUnit 4, JUnit 5, Checkstyle
- C++: GoogleTest (CMake/make)
- c: CUnit, GoogleTest (CMake/make)
- Python: Python Unittest, Python Doctest
- Setlx: Test, Syntax Check
Any other programming language resp. test framework can be used as long as the Praktomat (or any ProFormA compatible other test runner used as back-end) supports it. Since all code is open source, it can be easily extended to other languages and frameworks.
The plugin comes with a built-in Java question editor so simple Java questions can be created directly in Moodle.
Copyright note: The renderer code partly bases upon the renderer from essay question type (Moodle core).
Small code parts (in particular in
qbehaviour_adaptiveexternalgrading) are copied from Coderunner
(
https://moodle.org/plugins/qtype_coderunner). Features- Various submission formats:
- editor with programming language support such as syntax highlighting or automatic indentation
- multi tab editor (explorer) for submission of more than one file
- file upload (for more than one file)
- external repository (version control system)
- Code snippet as starting point for student
- Immediate feedback for students (optional)
- Supported programming languages are only limited by the available grader back-ends
- Bulktest with model solution for administration purposes
InstallationThe ProFormA question type also requires:
Set the grader URI in qtype_prfoforma to match your Praktomat installation!
Optional plugins:
For importing questions from an external source you also need to install the ProFormA import plugin:
In order to download all students' submissions for e.g. checking for plagiats the plugins
are avaliable.