ProFormA Programming Question Type

Maintained by Karin Borm
Quiz question type for automatically graded programming questions. Questions can be created in Moodle or imported as ProFormA tasks (https://github.com/ProFormA/proformaxml). Plugin requires the qbehaviour_adaptiveexternalgrading plugin and ProFormA Praktomat (https://github.com/elearning-ostfalia/Proforma-Praktomat).
Price option: Free

Supports Moodle 3.4-5.1 See all versions
Latest release: 2 months ago
Installations: 77
Downloads (last 90 days): 183

Frankenstyle name: qtype_proforma
Question types

Description

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. 
More complex questions must be created outside of the system with a stand-alone editor (https://proforma.github.io/formatEditor/proformaEditor.html) or by other means (e.g. script). These questions can be  imported by use of another Moodle plugin. 

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
 Installation

The 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: 

You can get a separate Javascript editor for creating tasks at https://github.com/ProFormA/formatEditor.  An online version is available at https://proforma.github.io/formatEditor/proformaEditor.html. Of course ProFormA tasks can be created by different other external tools as well.

In order to download all students' submissions for e.g. checking for plagiats the plugins 

are avaliable.

Contributors

Awards

Automated testing support
Privacy friendly
Early bird 3.9