OpenOLAT 中 R/exams 中输入字符串的不区分大小写的更正

Case insensitive correction of input strings in R/exams in OpenOLAT

此问题涉及 OpenOLAT 中的在线考试,使用 R/exams 函数 exams2openolat() 编写。我问的问题如下(有 4 个不同版本),学生必须输入一系列字母,例如 JFI、...

有没有办法不区分大小写地处理输入,以便大写字母(如上)和小写字母(即 jfi, ...) 是否正确?

i = sample(1:4, 1)

question = concat("...")
correct = c("J,F,I,B,Z,M,L,X,A,C,Q", "N,T,E,Y,Z,H,M,L,A,C,Q", "A,T,L,R,Z,V,C,E,H,M,Q", "P,I,W,J,Z,D,Q,X,E,S,M")
...
answertypes = paste(replicate(11, "string"), collapse = "|")
answerlist = sprintf("%s:",seq(1,11))
exsolution = gsub(",", "\|", correct[i])
solutionlist = strsplit(gsub(",", "", correct[i]), "")[[1]]

感谢您的建议。此选项在 OpenOlat 和用于交换的 QTI 2.1 XML 格式中可用 - 但是,到目前为止,exams2openolat() 和基础 exams2qti21() 函数不支持它。我现在已将此添加到 R-Forge 上 R/exams (2.4-0) 的当前开发版本。所以现在你可以做

exams2openolat(..., casesensitive = FALSE)

默认值仍然是TRUE。作为一个有效的例子,你可以考虑

exams2openolat(expar("function.Rmd", i = 8), casesensitive = FALSE)

这会从 function 练习的八个可用随机版本中选择一个具有正确答案 logLik 的练习(注意中间的大写字母 L)。使用选项 casesensitive = FALSE 任何其他情况,包括 loglikLOGLIKLoGlIk 也被认为是正确的。

要从 R-Forge 安装包的当前开发版本,您可以使用:

install.packages("exams", repos = "https://R-Forge.R-project.org")