In the School of Informatics there is a common requirement for quizzes to use negative marks, so a student will lose marks if they select the wrong answer. Unfortunately the version of Moodle that we currently use at City, 1.9, doesn’t make it easy to do this, so a workaround was needed.After a little bit of head-scratching I came up with a method suitable for the majority of cases we have encountered and I am going to show you how it works here.
Imagine you have a quiz with 10 questions and need to mark it such that a correct answer is worth 1 mark, a wrong answer is worth -1 and a ‘don’t know’ is worth 0 marks. Moodle will only allow quizzes to be marked starting at 0, which means it is necessary to offset the marks when we display them to the students. We do this by a little bit of manipulation in the Gradebook. But first we need to make sure that the quiz is set up correctly and we do this by adding a number big enough to make the mark for the wrong answer 0, so in our example we need increase the mark for each question in the quiz by 1.
This gives us:
|Desired Mark||Mark in Quiz|
Note: This should be adjusted accordingly if the incorrect mark is different.
We can now move onto the Gradebook part of the setup.The first thing to do is click the ‘Categories and items’ tab in the Gradebook and create a new ‘Grade item’ at the bottom of the page. Give it the name that should appear to the students, adjust the maximum and minumum values to reflect the desired max. and min. and save it.
You should now see it on the list of items in the Gradebook and need to click the grey calculator icon to allow you to configure how this item will work out the grade to display. First, you should find the original quiz on the list and make sure that it has a ‘shortname’ – add one and save it if you need to.
Next, you need to enter the calculation to be used to work out the correct marks and this is fairly straight-forward:
=[[shortname]] - (<number of questions> * <offset per question)
So, for the example above, <number of questions> would be 10 and <offset per question> would be 1. This will essentially readjust the marks that we increased in the quiz and allow us to display a negative mark if necessary.
After you have done this, you should hide the original Gradebook entry for the quiz in order to stop students becoming confused by seeing multiple different marks for the quiz.
Things to consider
- If you want release the marks for the quiz on a certain date automatically, you will need to edit the Grade item you just created to do this. If you don’t, the calculated marks will be visible immediately.
- If different sets of students have access to different versions of the quiz (different deadlines, or different time limits, for example) through Groupings, you need use the ‘max’ function to adjust the equation to take the highest grade from the set of quizzes and adjust that. So, if there are two possible quizzes of 15 questions and the offset is 1, the equation would look like “=max([[quiz1]], [[quiz2]]) – 15” and it will only use the grade from the quiz that they have taken and ignore the other one.
- When you hide the original quiz in the Gradebook, make sure that it isn’t used to calculate the overall grade for the module.
- Until a student takes the quiz, the mark will show in the Gradebook as the lowest possible value (equivalent to 100% incorrect) and you may want to hide it until after most student have taken the quiz.
- Negative marking is something that is planned for Moodle 2, but I don’t know if it has been implemented yet. This workaround may still work in Moodle 2 in the meantime.
Please use the comments section if you have any questions or if any of this is unclear.