简体   繁体   中英

R/exams d2l multiple choice question doesn't select correct answer

I use the following to create a D2L exam from the "capital.Rmd" example (I converted the question to schoice )

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

After I upload the testquiz.zip file, I notice that the correct answer must be manually chosen on the D2L platform.

I was wondering if there is a workaround.

Many Thanks,

Umut

If you want the correct solution to be selected, do not use the Import option from the Question Library or from the Quiz itself. Use the Import/Export/Copy Components under the Course Admin tab.

If you import the questions through the following steps, BrightSpace correctly picks the right solution. It's a bit longer but seems to correctly choose the solution.

Under the Course Admin tab of your course, go to

  • 'Import/Export/Copy Components' -> 'Import Components' -> Start -> (drag and drop the ZIP file)

    选择导入

  • Click 'Advanced Options…'

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

    This step will take a few minutes for large files; if you do not click Advanced Options, then the import will automatically import the questions into the 'Question Library' and will generate a Quiz with the imported questions; you do not want this.

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

  • -> Continue -> Continue -> at this point choose 'Question Library' from the section 'Select Components to Import'

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

    I would not choose 'Quizzes' because it automatically creates a quiz and makes it available to students. It has the unfortunate side-effect of making ALL the questions available, which means all the versions of various dynamic questions; this is not something we want.

  • -> Continue -> Continue. This stage takes a few minutes for large imports.

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

Now the Questions are available in the Question Library and can be used to generate new quizzes. Each question has the correct answer selected already. This works for 'schoice' and 'mchoice' versions of questions. Currently, plots are not imported, though, still trying to figure out why.

This problem is new to me. In earlier versions of Brightspace/D2L the import of single-choice and multiple-choice exercises via exams2blackboard() worked well. Possibly, D2L changed in the meantime given that neither the current release version from CRAN nor the development version from R-Forge work for you.

D2L also supports other import formats and we did play around with some of these. See the following discussions in the R/exams forum on R-Forge:

Notably we tried to use the XML-based QTI 2.1 format that seems to be employed by D2L internally. However, D2L apparently uses a particular custom flavor of QTI 2.1. It should be possible to reverse engineer that and improve exams2qti21() correspondingly but so far (to the best of my knowledge) no one put the time and effort into this that would be needed.

For simple single/multiple choice questions a CSV-based exchange format can also be used. I have put together a very basic exams2d2l() function that was posted in the threads above and that I'm also including below. It can set up the CSV file for a single exercise like the capitals.Rmd exercise that you use above. For plain text exercises like that it seems to work well but not for more complex elements (graphics, code, math, etc.).

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)
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM