Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Question Engine 2: Difference between revisions

From MoodleDocs
No edit summary
(project infobox - please amend as necessary)
 
(19 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Infobox Project
|name = Question Engine 2
|state = Completed
|tracker = MDL-20636 and MDL-27738
|discussion = http://moodle.org/mod/forum/discuss.php?d=134156
|assignee = [[User:Tim Hunt|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.
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.


Line 7: Line 14:
* It is more work than it should be create a new question type, and (judging by forum threads) the API is confusing.
* 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.
* It is difficult to use questions in other modules like lesson.
{{Template:Question_engine_2}}
These are explained in more detail in [[Question Engine 2:Rationale|Why this change is needed?]] below.
These are explained in more detail in [[Question Engine 2:Rationale|Why this change is needed?]] below.


Line 14: Line 22:
* [[Question Engine 2:Rationale|Why this change is needed?]]
* [[Question Engine 2:Rationale|Why this change is needed?]]
* [[Question Engine 2:How the question engine currently works|How the question engine currently works]] - this may help you understand the new design.
* [[Question Engine 2:How the question engine currently works|How the question engine currently works]] - this may help you understand the new design.
* [[Question Engine 2:Overview|Overview of the new code]]
* [[Question Engine 2:Overview|Overview of the new system]] <- '''If you only have time to read one bit, read this!'''
* [[Question Engine 2:Design|Detailed design]]
* [[Question Engine 2:Design|Detailed design]]
* Developer documentation that will apply once the new system is finished:
** [[Overview of the Moodle question engine|Overview of the Moodle question engine]]
** [[Developing a Question Behaviour|Developing a Question Behaviour]]
** [[Developing a Question Type|Developing a Question Type]]
** [[Using the question engine from module|Using the question engine from a module]]
* [[Question Engine 2:Implementation plan|Implementation plan]]
* [[Question Engine 2:Implementation plan|Implementation plan]]
* [[Question Engine 2:Testing|Testing the new code]]


==See also==
==See also==


* The place to discuss this is the [http://moodle.org/mod/forum/view.php?f=121 quiz forum].
* 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 [http://moodle.org/mod/forum/view.php?f=121 quiz forum]. You might like to use [http://moodle.org/mod/forum/discuss.php?d=134156 this thread].
* There is also a [http://moodle.org/mod/forum/discuss.php?d=114527#p502692 Thread in Lesson forum].
* There is also a [http://moodle.org/mod/forum/discuss.php?d=114527#p502692 Thread in Lesson forum].
* This list of [[Question Engine 2:Rationale#Related_tracker_issues|related tracker issues]].
* This list of [[Question Engine 2:Rationale#Related_tracker_issues|related tracker issues]].
 
* [[Question_database_structure|Existing question engine developer docs]].
 
* [[Goals_of_an_online_assessment_system|Overview of high-level goals for the Moodle question engine]].
{{CategoryDeveloper}}
* [[Question Engine 2:Developing the Multianswer (Cloze) Question Type|Developing the Multianswer (Cloze)  Question Type]]
[[Category:Quiz]]

Latest revision as of 08:25, 16 May 2013

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.

See also