Question Engine 2
From MoodleDocs
- Goals
- Rationale
- How it currently works
- New system overview
- Detailed design
- Question Engine 2 Developer docs:
- Implementation plan
- Testing
Question Engine 2 | |
---|---|
Project state | Completed |
Tracker issue | MDL-20636 and MDL-27738 |
Discussion | http://moodle.org/mod/forum/discuss.php?d=134156 |
Assignee | Tim Hunt |
There are some long-standing problems at the heart of the Moodle quiz module. Some design decisions that made sense when the quiz was started in the Moodle 1.1 days that are creaking at the seams now, because the quiz and question system has expanded so much.
The main problems are
- The database structure is not normalised. This leads to robustness issues, particularly on overloaded MySQL servers.
- As features like adaptive mode and each attempt builds on last were added, the code has evolved into spaghetti.
- And we want to add yet more things like certainty based marking.
- It is more work than it should be create a new question type, and (judging by forum threads) the API is confusing.
- It is difficult to use questions in other modules like lesson.
These are explained in more detail in Why this change is needed? below.
This is a large proposal, so I have broken it down into sections. The Design is the key part. The other sections support that.
- Goals of an online assessment system
- Why this change is needed?
- How the question engine currently works - this may help you understand the new design.
- Overview of the new system <- If you only have time to read one bit, read this!
- Detailed design
- Developer documentation that will apply once the new system is finished:
- Implementation plan
- Testing the new code
See also
- Tracker issues: MDL-20636 and MDL-27738
- Work in progress is down-loadable from github: https://github.com/timhunt/moodle/commits/MDL-20636_master_new_question_engine
- The place to discuss this is the quiz forum. You might like to use this thread.
- There is also a Thread in Lesson forum.
- This list of related tracker issues.
- Existing question engine developer docs.
- Overview of high-level goals for the Moodle question engine.
- Developing the Multianswer (Cloze) Question Type