Algorithm Question Type
A quiz question in which the student draws an algorithm as a flowchart and can run it before submitting. With tests, the answer is graded automatically.
Features
- Draw the algorithm with the same editor as in TinyMCE, with Run / Step, variable watch and generated code.
- Runnable review: the teacher can run and step through the submitted diagram while grading.
- Automatic grading: the teacher enters only the test inputs; the expected outputs are computed from the teacher's solution. Without tests the answer is graded manually.
- Hidden tests and required structures (If, For, While, Do loop, array).
- Analyse an algorithm: put an interactive diagram in the question text (needs filter_algorithm).
What's new in 2.0.0
- Weights: each test has a weight; the grade is the share of the passed weight.
- Function tests: a test can call one function of the algorithm with arguments and compare the value it returns.
- Comparison options: capital and small letters the same, extra spaces ignored, a tolerance for numbers.
- Hints and several tries: the interactive behaviour gives your hints and the test results after each try.
- Statistics per test: the response analysis of the quiz statistics shows how many answers passed each test.
- Matrices, and matrix as a required structure. Random questions can now pick algorithm questions.
Requirements
- Moodle 4.5 LTS to 5.3 (PHP as required by your Moodle version; tested on all of them).
- The tiny_algorithm plugin, version 2.0.0 or newer; filter_algorithm is optional (interactive diagrams in question text).
Privacy
The student's answer is stored by the Moodle question engine like any other answer; the diagram runs in the browser and, for automatic grading, on your Moodle server; nothing is sent to external services. Test inputs and options are stored with the question. The plugin implements the Moodle Privacy API.
Languages: English and Serbian (Latin and Cyrillic). Source, documentation and issue tracker:
github.com/blagojevicboban/moodle-qtype_algorithm.
Licensed under the GNU GPL v3 or later.