1

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

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

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

我想知道是否有解决方法。

非常感谢,

乌姆特

4

2 回答 2

1

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

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

在课程的课程管理选项卡下,转到

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

    选择导入

  • 点击“高级选项...”</p>

    删除文件,然后单击高级选项...

    对于大文件,此步骤将需要几分钟;如果您不点击高级选项,则导入会自动将问题导入“问题库”,并会生成一个包含导入问题的测验;你想要这个。

    对于大型 ZIP,此步骤将需要几分钟

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

    不要选择“测验”,因为它会自动创建一个包含所有问题的测验

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

  • -> 继续 -> 继续。对于大型导入,此阶段需要几分钟时间。

    选择了正确的选项(请注意,绘图尚未导入;仍在尝试找出原因)

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

于 2021-02-10T15:52:50.813 回答
0

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

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

值得注意的是,我们尝试使用 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,"%s",,,', cleanup(rval$metainfo$name)),
    sprintf('QuestionText,"%s",,,', 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,"%s",,,', cleanup(rval$solution))
  )
  writeLines(rval, file.path(dir, paste0(name, ".csv")))
  invisible(rval)
}
于 2021-01-19T02:18:34.350 回答