2

I am using exams2moodle() from R/exams to create multiple choice and cloze questions in Moodle. Before preparing exams, I would like to be certain how Moodle computes grades.

It seems to me that in multiple choice questions the default setting in the evaluation policy is partial = TRUE, rule = "false", negative = FALSE. Is that correct?

For the cloze questions, it seems that the overall grade assigned to the cloze question is divided equally among the subquestions. I wonder if there is some way to give unequal weight to the single sub-questions.

Thank you in advance for any help!

Achim Zeileis
  • 15,710
  • 1
  • 39
  • 49
user12703198
  • 423
  • 3
  • 11
  • Let me know if the information contained in the below comment resolved your issue. If it did, please select the answer to close out the question. Best wishes! – Joshua Mire Jun 02 '20 at 21:22
  • Not quite. My question was about Moodle behaviour in a single multiple choice question and also about how the R package "exams" interacts with Moodle (also with cloze questions). – user12703198 Jun 03 '20 at 07:47
  • I realize that the first part of my question can be partially answered looking at the documentation of the package "exams": rdocumentation.org/packages/exams/versions/2.3-4/topics/… If I understand correctly, the default is "rule=false" and "negative=false". I'll edit the question. – user12703198 Jun 03 '20 at 08:14

1 Answers1

5

Overview

Essentially you are correct. However, I will discuss a few details below that are Moodle-specific because Moodle does not support the full flexibility of the exams_eval() strategies from R/exams.

Multiple-choice (mchoice) questions

  • Moodle only supports evaluations with partial credits and thus setting partial = FALSE is not possible.
  • The evaluations in Moodle are always such that not ticking a box yields zero points. Only ticking a box can yield points (positive or negative).
  • Ticking a correct box always gives the proportion 1/#ncorrect of the overall number of points were #ncorrect is the number of correct answer alternatives.
  • Ticking an incorrect box can give a negative amount of points. The precise amount is controlled by the rule specification. For rule = "false" an incorrectly ticked box gives the proportion -1/#incorrect = -1/(n - #ncorrect).
  • As this is pretty harsh in the case of exactly one incorrect alternative (ticking it erases all points), there is rule = "false2" which is the default. An incorrectly ticked box still subtracts the proportion 1/#incorrect except in the case where #incorrect = 1 when 1/2 is subtracted.
  • The overall amount of points from all boxes combined cannot become negative! It may be displayed as negative in some situations but is actually treated as 0. Thus, the R/exams argument negative = TRUE would be ignored, it is implicitly always negative = FALSE.
  • Because only ticking correct answer alternatives can yield positive points, there needs to be at least one correct answer alternative. If a multiple-choice question without correct answer alternatives is used, it always yields zero points.

Single-choice (schoice) questions

  • Essentially, the same rules as above apply. The main difference is that Moodle uses radio buttons (rather than check boxes) for single-choice questions. Thus, participants can only select one alternative and not several ones.
  • The other important difference is that the sum of points can become negative! (Unlike for multiple-choice questions.)
  • exams2moodle() currently uses the same default evaluation strategy rule = "false2" for single-choice questions. This assures that the expected number of points from random guessing strategies is zero. (However, we are thinking about changing the default to rule = "none" which seems to be more commonly used, i.e, selected an incorrect alternative just gives zero points.)

Cloze questions

  • The different parts of a cloze questions are evaluated separately and then simply summed up.
  • For schoice or mchoice items within a cloze question, the same rules as above apply. Thus, points can become negative for single-choice questions but not for multiple-choice questions. The default is, however, not to use negative points.
  • Note also that mchoice items within a cloze are currently not supported very well by R/exams because they were not supported at all by Moodle until recently. See Cloze question combining mchoice and num import in Moodle We hope to improve this in future versions.
  • By default the overall number of points is split equally among the items within a cloze. However, expoints can be set to a vector of the same length as the number of items giving the number of points for each. (This was improved in version 2.4-0, though.)

Marks

The assignment of marks to the points achieved cannot be controlled from exams2moodle() in R/exams. Thus, you have to configure this in Moodle when putting together the quiz there.

Achim Zeileis
  • 15,710
  • 1
  • 39
  • 49
  • Thank you very much for the very detailed answer! I tried to use the option `schoice =list(eval=list(rule="none"))` but I get the error message "invalid argument type". Can you please tell me what I should write? – user12703198 Jun 03 '20 at 13:42
  • You currently need to write: `schoice = list(eval = list(partial = TRUE, rule = "none"))`. This is a bit awkward and should probably be improved in `schoice`. But at least it should do what you want... – Achim Zeileis Jun 03 '20 at 15:06
  • for mchoice there is no mention of rule ```all```, documentation say " "all" uses 1 (so that a single wrong selection cancels all correct selections)" I am doing some test in moodle and I don't get this behavior. For example, a mchoice question with 5 options and one of them being correct. If I select the correct and any other I get a score of 0,75/1,00 – Nicolas Molano Aug 07 '20 at 20:52
  • Is this plain mchoice? This works for me as intended, e.g., `set.seed(1)` and then `exams2moodle("ttest.Rmd", mchoice = list(eval = exams_eval(rule = "all")))`. For mchoice in cloze questions you need at least version 2.4-0 of the package (the current development version from R-Forge). I had not stated this in the post before but corrected it now. – Achim Zeileis Aug 08 '20 at 08:24