基于差异数量的多选题自定义评分:exams2moodle实现可行性咨询
针对exams2moodle自定义多选题评分规则的解答
能否通过exams2moodle和exam_eval实现?
完全可以。exams包允许通过自定义exam_eval函数覆盖默认的多选题评分逻辑,实现你需要的按差异数量计分的规则。
具体实现步骤
编写自定义评分函数:
定义一个函数,接收学生答案(answer)和正确答案(solution),计算两者的差异项总数(漏选的正确选项数 + 选错的错误选项数),再根据规则返回对应得分。示例代码如下:custom_mchoice_eval <- function(answer, solution, ...) { # 计算答案与正确选项的对称差集长度(即差异总数) diff_total <- length(setdiff(union(answer, solution), intersect(answer, solution))) # 按规则返回得分 switch(as.character(diff_total), "0" = 1, "1" = 0.5, "2" = 0.2, 0) }调用exams2moodle时传入自定义函数:
在生成Moodle试题时,通过eval参数将自定义函数绑定到多选题(mchoice)的评分逻辑上:exams2moodle( c("your_question1.Rmd", "your_question2.Rmd"), # 你的试题文件路径 eval = list(mchoice = custom_mchoice_eval), output_dir = "./moodle_export", # 其他必要参数(如name, title等) )
是否受Moodle标记系统限制?
存在部分限制,但可通过exams的生成逻辑规避:
- Moodle默认的多选题评分模式(如全对得分、部分比例得分等)是固定模板,但exams2moodle会将自定义评分逻辑嵌入试题配置,生成支持自定义得分的题型。
- 需要注意:
- 确保目标Moodle版本支持自定义评分的多选题(多数现代Moodle版本均支持,建议在测试环境验证)。
- Moodle支持非整数得分(如0.2分),但需确保生成的试题分数配置正确。
- 生成后务必手动测试:提交全对、漏选1项、选错1项、2处差异等不同答案,确认Moodle计算的得分符合预期。
内容的提问来源于stack exchange,提问作者eusebe
相关产品推荐
相关产品推荐

