Search code examples
r-exams

penalty for incorrect options in R/exams exams2moodle()


not sure if this is related to this new development, but when I use the new dev version of exams2moodle() the %100% to identify the correct option is replaced by =... For example, I now get

{1:MULTICHOICE_VS:Amostragem aleatória simples~=Amostragem aleatória estratificada~ Amostragem não aleatória por conveniência~Amostragem não aleatória por Bola de Neve}

instead of

{1:MULTICHOICE_VS:%0%Amostragem aleatória simples~%100%Amostragem aleatória estratificada~%0%Amostragem não aleatória por conveniência~%0%Amostragem não aleatória por Bola de Neve}

And indeed what I would like to get is:

{1:MULTICHOICE_VS:%-20%Amostragem aleatória simples~%100%Amostragem aleatória estratificada~%-20%Amostragem não aleatória por conveniência~%-20%Amostragem não aleatória por Bola de Neve}

(penalization for incorrect options)

Thanks!


Solution

  • Default evaluation

    In schoice elements of cloze questions the default in exams2moodle() always was to have no penalization of wrong answers. This has not changed. We only simplified Moodle XML code for embedded answers.

    (Note: Unfortunately, the choice of no penalization was inconsistent with standalone schoice questions for which exams2moodle() has a penalization by default. We might change the latter in future versions.)

    More precisely, the default in exams2moodle("bern.Rmd") up to version 2.3-6 (current CRAN version at the time of writing) with an exercise like the one included below was to give 100% to the single correct answer and 0% to the distractors:

    {1:MULTICHOICE:%0%Basel~%100%Bern~%0%Geneva~%0%Lausanne~%0%Zurich}
    

    Version 2.4-0 (R-Forge development version at the time of writing) produces something equivalent by simply using = to indicate the correct response. All percentages are then implied as above:

    {1:MULTICHOICE:Basel~=Bern~Geneva~Lausanne~Zurich}
    

    Custom evaluation

    To obtain a version with penalization, you need to set the eval strategy, e.g.,

    exams2moodle("bern.Rmd",
      cloze = list(eval = list(partial = TRUE, rule = "false")))
    

    In both versions (2.3-6 vs. 2.4-0) this produces a 25% penalization for the distractors. The only difference is wether %100% or = is used to indicate the correct response:

    {1:MULTICHOICE:%-25%Basel~%100%Bern~%-25%Geneva~%-25%Lausanne~%-25%Zurich} 
    

    vs.

    {1:MULTICHOICE:%-25%Basel~=Bern~%-25%Geneva~%-25%Lausanne~%-25%Zurich}
    

    Background

    Using the simpler Moodle XML for embedded answers was necessitary for properly supporting mchoice elments of cloze questions which do not work reliably with some percent configurations, see:

    Exercise

    The illustration above uses the following simple static cloze question bern.Rmd with just one schoice element (adapted from swisscapital).

    Question
    ========
    What is the seat of the federal authorities in Switzerland (i.e., the de facto capital)?
    
    Answerlist
    ----------
    * Basel
    * Bern
    * Geneva
    * Lausanne
    * Zurich
    
    Meta-information
    ================
    exname: Swiss Capital
    extype: cloze
    exclozetype: schoice
    exsolution: 01000