R/exams d2l 多项选择题没有选择正确答案

问题描述

我使用以下内容从“capital.Rmd”示例创建了 d2l 考试(我将问题转换为 schoice

exams2blackboard("capitals.Rmd",n =3,name = "testquiz" )

上传 testquiz.zip 文件后,我注意到必须在 d2l 平台上手动选择正确答案。

我想知道是否有解决方法

非常感谢,

乌姆特

解决方法

如果您希望选择正确的解决方案,请不要使用问题库中的导入选项> 或来自测验本身。使用课程管理标签下的导入/导出/复制组件

如果您通过以下步骤导入问题,BrightSpace 会正确选择正确的解决方案。有点长,但似乎正确选择了解决方案。

在您课程的课程管理标签下,转到

  • '导入/导出/复制组件' -> '导入组件' -> 开始 ->(拖放 ZIP 文件)

    Choose Import

  • 点击“高级选项...”

    Drop file,then click on Advanced Options...

    对于大文件,这一步需要几分钟;如果你不点击 Advanced Options,然后导入会自动导入 问题进入“问题库”,并将生成一个测验 导入问题;你不想想要这个。

    This step will take a few minutes for large ZIPs

  • -> 继续 -> 继续 -> 此时从“选择要导入的组件”部分中选择“问题库”

    Do not choose 'Quizzes' because it auto-creates a quiz with ALL questions

    我不会选择“测验”,因为它会自动创建测验 并将其提供给学生。它有一个不幸的副作用 使所有问题可用,这意味着所有版本的 各种动态问题;这不是我们想要的。

  • -> 继续 -> 继续。这个阶段需要几分钟的大 进口。

    Correct option selected (note that plots have not imported though; still trying to figure out why)

现在问题在问题库中可用,可用于生成新的测验。每个问题都已经选择了正确答案。这适用于“schoice”和“mchoice”版本的问题。目前,未导入绘图,但仍在尝试找出原因。

,

这个问题对我来说是新的。在 Brightspace/D2L 的早期版本中,通过 exams2blackboard() 导入单选和多选练习效果很好。鉴于 CRAN 的当前发布版本和 R-Forge 的开发版本都不适合您,D2L 可能在此期间发生了变化。

D2L 还支持其他导入格式,我们确实尝试了其中的一些格式。请参阅 R-Forge 上的 R/考试论坛中的以下讨论:

值得注意的是,我们尝试使用 D2L 内部似乎采用的基于 XML 的 QTI 2.1 格式。但是,D2L 显然使用了 QTI 2.1 的特定自定义风格。应该可以对其进行逆向工程并相应地改进 exams2qti21(),但到目前为止(据我所知)没有人为此投入所需的时间和精力。

对于简单的单选/多选问题,也可以使用基于 CSV 的交换格式。我已经在上面的线程中发布了一个非常基本的 exams2d2l() 函数,我也在下面包含了它。它可以为单个练习设置 CSV 文件,例如您在上面使用的 capitals.Rmd 练习。对于像这样的纯文本练习,它似乎运行良好,但不适用于更复杂的元素(图形、代码、数学等)。

exams2d2l <- function(file,dir = ".",## n = 1L,nsamp = NULL disabled for now
  name = NULL,quiet = TRUE,edir = NULL,tdir = NULL,sdir = NULL,verbose = FALSE,resolution = 100,width = 4,height = 4,svg = FALSE,encoding = "",converter = NULL,...)
{
  ## for Rnw exercises use "ttm" converter otherwise "pandoc" converter
  if(any(tolower(tools::file_ext(unlist(file))) == "rmd")) {
    if(is.null(converter)) converter <- "pandoc"
  } else {
    if(is.null(converter)) converter <- "ttm"
  }

  ## output directory or display on the fly
  ## output name processing 
  if(is.null(name)) name <- tools::file_path_sans_ext(basename(file))
  
  ## set up .html transformer and writer function
  htmltransform <- make_exercise_transform_html(converter = converter,...)

  ## create exam with HTML text
  rval <- xexams(file,driver = list(sweave = list(quiet = quiet,pdf = FALSE,png = !svg,svg = svg,resolution = resolution,width = width,height = height,encoding = encoding),read = NULL,transform = htmltransform,write = NULL),dir = dir,edir = edir,tdir = tdir,sdir = sdir,verbose = verbose)

  ## currently: only a single exercise
  rval <- rval[[1L]][[1L]]

  ## put together CSV
  cleanup <- function(x) gsub('"','""',paste(x,collapse = "\n"),fixed = TRUE)
  rval <- c(
    'NewQuestion,MC,',sprintf('ID,"%s",cleanup(rval$metainfo$file)),sprintf('Title,cleanup(rval$metainfo$name)),sprintf('QuestionText,cleanup(rval$question)),sprintf('Points,%s,if(is.null(rval$metainfo$points)) 1 else rval$metainfo$points),'Difficulty,1,'Image,paste0('Option,ifelse(rval$metainfo$solution,100,0),"',cleanup(rval$questionlist),'",cleanup(rval$solutionlist),'"'),'Hint,sprintf('Feedback,cleanup(rval$solution))
  )
  writeLines(rval,file.path(dir,paste0(name,".csv")))
  invisible(rval)
}