我想做的是:
我想r-exams
在以下过程中使用:
exams2pdf(..)
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
是与输入参数(列表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练习metainfo
的i
-th随机复制提取j
为:
x[[i]][[j]]$metainfo
这包含正确$solution
的$type
,以及$tolerance
等。当然,这有点长且不方便交互式键入,但应足够容易以编程方式循环浏览。nops_eval()
例如,这就是基于.rds
完全包含中信息的文件所做的x
。
在这里,我通常的建议是尝试利用您大学的服务(如果有的话)。是的,带宽/稳定性等可能存在问题。但是,如果您正在运行自己的系统,则可以完全相同(在此完成)。具体来说,可在此处找到有关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
或对此感兴趣webex
:http : //www.R-exams.org/general/distancelearning/#going-forward。
但是,关于隐私,如果其中任何一项比使用大学的LMS更好,我将感到非常惊讶。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句