r - 如何手动评分考试/问题?
问题描述
我想做的事:
我想r-exams
在以下过程中使用:
- 向学生提供 pdf 格式的电子考试(使用
exams2pdf(..)
- 让学生上传带有答案的excel文件
- 使用 (using
eval_nops(...)
)为答案评分
我的问题:
调用该函数eval_nops()
是手动解决问题的首选方法r-exams
吗?
如果不是,首选哪种方式?
我试过的:
我知道该exam2nops()
功能,并且我知道它会返回一个.RDS
存储正确答案的文件。因此,我基本上有我需要的东西。但是,我发现该过程不是很简单,因为正确的答案隐藏在 RDS 文件的深处。
解决方案
概述
您是对的,在标准学习管理系统 (LMS) (如 Moodle 或 Canvas 等)之外没有现成的考试管理/评分系统。不过,R/exams 确实为评分提供了一些构建模块,尤其是exams_eval()
. 这可以用谷歌表单等工具来补充。下面我从“确凿的事实”开始,exams_eval()
尽管这有点技术性。但随后我也提供了一些关于这些方法的评论。
使用exams_eval()
让我们考虑一个具体的例子
eval <- exams_eval(partial = TRUE, negative = FALSE, rule = "false2")
表示您想要部分学分用于多项选择练习,但每项的总分不得为负数。正确勾选的框产生 1/#correct 点,错误勾选的框产生 1/#false。唯一的例外是只有一个错误项目(然后会取消所有点),然后使用 1/2。
结果对象eval
是一个带有输入参数 ( partial
, negative
, rule
) 和三个函数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 练习的第 -th 随机复制提取metainfo
为:i
j
x[[i]][[j]]$metainfo
这包含正确$solution
的$type
、 和$tolerance
等。当然,这有点长且不方便交互式输入,但应该很容易以编程方式循环。例如,这就是nops_eval()
基于.rds
包含x
.
在没有完整 LMS 的情况下管理考试
我通常的建议是尝试利用你大学的服务(当然,如果有的话)。是的,带宽/稳定性等可能存在问题,但如果您运行自己的系统(去过那里,做过),您可以拥有所有相同的问题。具体来说,这里可以找到有关邮寄的 Moodle 与 PDF 考试的讨论:
但是,如果我要在 LMS 之外提供考试,我会使用 HTML,而不是 PDF。在 HTML 中嵌入附加信息(数据、链接等)比在 PDF 中容易得多。还可以更轻松地在移动设备上查看 HTML。
为了收集答案,一些 R/exams 用户使用 Google 表单,例如:
https ://R-Forge.R-project.org/forum/forum.php?thread_id=34076&forum_id=4377&group_id=1337 。其他人对使用learnr
或webex
为此感兴趣:
http ://www.R-exams.org/general/distancelearning/#going-forward 。
但是,关于隐私,如果其中任何一个比使用大学的 LMS 更好,我会感到非常惊讶。
推荐阅读
- kubernetes - kube-apiserver 多次重启
- php - 从 Swift 将数据发布到 PHP 方法(选择查询)
- c# - Xpath 在 Chorome 中工作,但在 Selenium web-driver 中不工作
- python - VGG19 Conv4-1 层的 Keras 输出尺寸与模型输出不匹配
- ios - JSON解码失败
- java - 如何将 Cloud Firestore 中的异步数据保存为变量?
- python - 将“try...except...”放在代码的第一行以捕获未知错误是个好主意吗?
- python - 如何从文本文件中计算多项选择题的分数
- python-3.x - 我需要做什么才能将正确的输入形状输入到 TimeDistributed 层?
- java - 无法在 azure windows vm 上使用 application Insights 代理启动 java spring boot 应用程序