Note:

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

Calculated question type creation

From MoodleDocs
Revision as of 12:45, 13 June 2006 by Pierre Pichet (talk | contribs)

Its a first try as you could see. I will use this page to describe the PHP code principal processes of the calculated question creation and see how it could be improved.

Calculated question parameters

Calculated question is an extended numerical question where parameters of a mathematical problems are generated and used to calculate the answer using a mathematical formula.

So the answer parameter of a numerical question is replaced by the mathematical formula using the same answer database structure that the numerical question.

The generated parameters are identified by a special format that is not used in a mathematical PHP equation {param} where the param name begins by a letter and can include alphanumerics symbol a-z A-Z _ 0-9

ex. {ad} {a_2} {a4_r} are valid parameter names 
{1a} {a+1} {a(0)} are invalid parameter names
 

These parameters are transform in datasets defined by a min,max,decimal and generation mode. Using these datasets definitions a number of different values are generated (the dataset items) and used to generate different question instances where the parameters have different values although the question structure and answer formula are constant.

Creating a calculated question

Actually the creation of a calculated question is a three step process

  • Defining the common question parameters
    • Question name
    • Question text
    • answer formula, limit, units
  • Defining the dataset definitions range for each of them. The dataset definition ({params}) can be used in this new question only or could be used or add been already created by other questions in the question category in which the new question is created.
 question category is a set of questions that can contain various question types
  • Defining the dataset definitions parameters (min,max, decimal and generation mode and adding at least one data item for each dataset definitions
Actually a set of all the data items is created when you click the add button
  • Saving the question parameters,dataset definitions parameters and data items.
Because in the actual code a calculated question needs that
all these components be defined to be a valid calculated question,
the saving is postponed until you click the add button to add the first set of data items.
The parameters already entered are store in the $Session object even if you click Saving changes at least twice before adding your first set of data items.