Description

Calculation questions allow for a) the generation of randomised variables, b) numerical answers by students, and c) the use of a formula to calculate the correct answer. The generation of randomised variable is used primarily to create more realistic scenarios where in real life the same figures are not always presented. For example, in Medicine different patients have varying weights and heights.

Fit Criterion

Presentation

Marking

Formative Quiz/Progress Test

Marking is carried out after a user clicks on 'Finish'.

Summative Exam

Marking is carries out after a member of staff (inc SysAdmin) clicks on 'Finish'. Students, however, are not automatically marked. This is a speed thing as there could be large number of students all requiring marking simultaneously. Instead, the first time the Class Totals report is called post-exam the system will go into marking mode.

Feedback

Feedback includes:

Limited Save

After a question has locked it should only be possible to change the following aspects:

Standard Setting

Setup

There is currently support for two different ways of marking: 1) PHP eval() which is the default, and 2) R serve. The main disadvantage of PHP eval is that certain operations, such as division by zero, are fatal and therefore stop the current script running. This, obviously, could be catastrophic in the middle of a summative assessment. A solution is to use R serve but this has to be setup and configured separately (further details).

Data Format

Correct Answer

Calculation questions randomise their variables within certain ranges so unlike other question types there is no absolute correct answer. Instead a formula is used to describe how to calculate the correct answer from a given set of variables. The ranges of each variable, together with units, the formula and other information is stored as a JSON encoded string within the 'settings' field in the questions table.

Student Answer

Rogo uses $_SESSION to store the generated variables. The reason for using sessions is to prevent students from reading these values as they might if they were in hidden fields within the HTML. When a screen is saved the system will take the user answer from the textbox on-screen and add all the session variables. This is saved in the log table as a JSON encoded string:

{"vars":{"$A":"800.86","$B":"954.27"},"uans":"42","uansunit":""}
 

Mark is set to NULL so that the system knows that the question is unmarked. This also allows for a score of zero which is marked but the student has got it wrong.

Marked Data Format

After marking the original JSON encoded string is extended and marks set.

{"vars":{"$A":"800.86","$B":"954.27"},"uans":"42","uansunit":"","uansnumb":"42","ans":{"guessedunits":"","formula_used":"$A\/$B","units_used":"","tolerance_full":"0","tolerance_fullans":"0.8","tolerance_fullansneg":"0.8","tolerance_partial":"0","tolerance_partialans":"0.8","tolerance_partialansneg":"0.8"},"status":{"units":true,"exact":false,"tolerance_full":false,"tolerance_partial":false,"strictdp":true,"overall":0},"cans":"0.8","cans_dist":"5150"}