I'm trying to implement a simple evaluation scheme using exams
, but none of the options seems to do what I'd like:
There are 5 answer options. I want to give 0.2 points for all marked correct answers and all unmarked incorrect answers, and zero points for all unmarked good answers and marked incorrect answers. Therefore, a task can yield 0, .2, .4, .6, .8, or 1 points.
I'm aware that this evaluation scheme may have some shortcomings, but I'm counterbalancing those in other ways.
I was able to implement this when I did scanned exams, because I could use a string distance function to tell how many characters differ in two strings that coded the answers and the solutions. But I want to do this in moodle now, so I cannot control the evaluation.
Here are some examples that I tried:
ee <- exams_eval(partial = TRUE, rule = "all", negative = FALSE)
ee$pointsum("01111", "10000") # should be 0 and returns 0
ee$pointsum("01111", "10001") # should be .2 but returns 0
ee$pointsum("11111", "10001") # should be .4 and returns .4
ee$pointsum("00000", "11001") # should be .4 but returns 0
ee$pointsum("11011", "00011") # should be .6 but returns .5
ee$pointsum("11111", "10101") # should be .6 and returns .6
ee$pointsum("11001", "10001") # Should be .8 but returns .66
ee$pointsum("00000", "00001") # should be .8 but returns 0
ee$pointsum("11001", "11001") # Should be 1 and returns 1
ee$pointsum("00000", "00000") # Should be 1 but returns 0
The previous examples yield the same result when using rule = "false"
or rule = "false2"
, or rule = "true"
. When using rule = "none"
, this is the only change:
ee$pointsum("01111", "10001") # should be .2 but returns 0.25
Is there a way to implement the above mentioned evaluation scheme in moodle?