r - 使用自定义评估方案评估 Moodle 中的考试
问题描述
我正在尝试使用 实现一个简单的评估方案exams
,但似乎没有一个选项可以满足我的需求:
有 5 个答案选项。我想给所有标记的正确答案和所有未标记的错误答案打 0.2 分,给所有未标记的好答案和标记的错误答案打零分。因此,一项任务可以产生 0、0.2、0.4、0.6、0.8 或 1 分。
我知道这个评估方案可能有一些缺点,但我正在以其他方式平衡这些缺点。
当我进行扫描考试时,我能够实现这一点,因为我可以使用字符串距离函数来判断编码答案和解决方案的两个字符串中有多少字符不同。但是我现在想在moodle中做到这一点,所以我无法控制评估。
以下是我尝试过的一些示例:
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
前面的示例在使用rule = "false"
orrule = "false2"
时会产生相同的结果rule = "true"
。使用 时rule = "none"
,这是唯一的变化:
ee$pointsum("01111", "10001") # should be .2 but returns 0.25
有没有办法在moodle中实现上述评估方案?
解决方案
R/exams 包目前不支持所需的评估方案,因为 Moodle 不支持它。查看https://docs.moodle.org/36/en/Moodle_XML_format#Multiple_choice上的 Moodle 文档表明,您可以看到部分信用计划始终以下列方式工作:
- 不标记/单击
<answer>
不会产生任何点。 - 标记/单击答案选项会产生某些
fraction
总分。
因此,R/exams 通过将分数 1/#correct 分配给标记/单击正确答案来处理此问题。该rule
参数仅控制在标记/单击错误答案时减去哪个分数。默认值是"false2"
本质上减去 1/#incorrect 的规则。例如,一个有 2 个正确和 3 个错误答案的项目通过以下方式处理:
ee2 <- exams_eval(partial = TRUE, rule = "false2", negative = FALSE)
ee2$pointvec("11000")
## pos neg
## 0.5000000 -0.3333333
当您使用时rule = "all"
,如果标记/单击了不正确的答案,则会删除 100% 的分数:
ee <- exams_eval(partial = TRUE, rule = "all", negative = FALSE)
ee$pointvec("11000")
## pos neg
## 0.5 -1.0
有一些学习管理系统支持更灵活的积分计算方式(例如,在 QTI 中这原则上是可能的),但我认为您的特定方案不能在 Moodle 中实现。(如果有人比上面的 Moodle 文档了解更多,请告诉我!)
(你说你知道你的评估方案的缺点——当然,这很公平。但是,为了记录以防其他人读到这个:我个人不太喜欢你提出的方案。即使平均每个答案选项以 50% 的概率正确,学生也可以通过始终单击所有答案选项或始终不单击任何答案选项来平均获得 50% 的分数。如果每个选项的概率偏离 50%。因此,这为一些学生设置了奇怪的激励措施……至少是我通常教的商业和经济学学生。)
推荐阅读
- wordpress - apache 中的 wordpress 只能在 localhost 上工作,而不能在另一台本地计算机上工作
- mysql - 需要从 mysql 中的表中进行子查询的输出
- python - 使用python中的日期时间键返回字典中日期时间键的值
- javascript - 无法将 javascript eventListener 添加到最近创建的元素
- c# - How to develop website compatible with mobile using asp.net and c#
- sql-server - 在 SQL Server 中将数据导出为 JSON
- vue.js - Vue - 同名的嵌套路由?
- clojure - Clojure - 将平面地图转换为具有预定结构的嵌套
- angular - 招摇“路径'../api/'上的方法'get'被多次注册”错误
- java - 如何在 inria Spoon 中向 CtAnnotation 添加多个值