如何手动给考试/问题评分?

塞巴斯蒂安·绍尔(Sebastian Sauer)

我想做的是:

我想r-exams在以下过程中使用:

  1. 向学生提供pdf格式的电子考试(使用 exams2pdf(..)
  2. 让学生上传带有答案的excel文件
  3. 使用(使用eval_nops(...)对答案评分

我的问题:

调用函数eval_nops()是手动评分问题的首选方法r-exams吗?

如果不是,则首选哪种方式?

我试过的

我知道此exam2nops()功能,而且我知道它会返回一个.RDS文件,用于存储正确的答案。因此,我基本上有了我需要的东西。但是,我发现该过程并不是很简单,因为正确的答案被深深地埋在RDS文件中。

醋栗

总览

您说对了,没有像Moodle或Canvas等标准学习管理系统(LMS)之外的管理/评分考试的系统。R/ exams确实为评分提供了一些基础exams_eval()这可以通过Google表单等工具进行补充。下面,我从“硬事实”入手,exams_eval()尽管这有点技术性。但随后我也提供了有关此类方法的一些评论。

使用 exams_eval()

让我们考虑一个具体的例子

eval <- exams_eval(partial = TRUE, negative = FALSE, rule = "false2")

表示您希望部分选择功劳能获得部分学分,但每个项目的总分不得为负。正确打勾的框产生1 /#正确点,而错误打勾的框1 /#false。唯一的例外是,只有一个错误项(它将取消所有点),然后使用1/2。

将得到的对象eval是与输入参数(列表partialnegativerule)和三个功能checkanswer()pointvec()pointsum()想象一下您有正确的答案模式

cor <- "10100"

正确和错误地打勾的相关点是:

eval$pointvec(cor)
## pos neg
## 0.5000000 -0.3333333

因此,对于以下答案模式,您将获得:

ans <- "11100"
eval$checkanswer(cor, ans)
## [1] 1 -1 1 0 0
eval$pointsum(cor, ans)
## [1] 0.6666667

后者仍需乘以分配给该练习的总分。对于数字答案,您只能获得100%或0%:

eval$pointsum(1.23, 1.25, tolerance = 0.05)
## [1] 1
eval$pointsum(1.23, 1.25, tolerance = 0.01)
## [1] 0

同样,字符串答案是正确还是错误:

eval$pointsum("foo", "foo")
## [1] 1
eval$pointsum("foo", "bar")
## [1] 0

运动元信息

要获得给定练习的相关信息,您可以从所有exams2xyz()接口返回的嵌套列表中访问元信息

x <- exams2xyz(...)

例如,您可以-th练习metainfoi-th随机复制提取j为:

x[[i]][[j]]$metainfo

这包含正确$solution$type,以及$tolerance等。当然,这有点长且不方便交互式键入,但应足够容易以编程方式循环浏览。nops_eval()例如,这就是基于.rds完全包含中信息文件所做的x

在没有完整的LMS的情况下管理考试

在这里,我通常的建议是尝试利用您大学的服务(如果有的话)。是的,带宽/稳定性等可能存在问题。但是,如果您正在运行自己的系统,则可以完全相同(在此完成)。具体来说,可在此处找到有关Moodle与PDF考试的讨论:

如果要在LMS之外提供考试,我会使用HTML,而不使用PDF。与HTML相比,在HTML中嵌入其他信息(数据,链接等)要容易得多。此外,可以在移动设备上轻松查看HTML。

为了收集答案,一些R / exam用户使用Google表格,例如:https : //R-Forge.R-project.org/forum/forum.php?thread_id=34076&forum_id=4377&group_id=1337其他人对此感兴趣learnr对此感兴趣webexhttp : //www.R-exams.org/general/distancelearning/#going-forward

但是,关于隐私,如果其中任何一项比使用大学的LMS更好,我将感到非常惊讶。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章