1

I have been able to get multi-question exams (via R/exams) to work in blackboard without issue, but now all of a sudden any exam I import into blackboard is a single-question exam.

Such as from the example here.

library("exams")
exm <- cbind(c("capitals.Rmd", "swisscapital.Rmd", "switzerland.Rmd"))
exm
##      [,1]              
## [1,] "capitals.Rmd"    
## [2,] "swisscapital.Rmd"
## [3,] "switzerland.Rmd" 
exams2blackboard(exm)

I have tried setting n and nsamp ini exams2blackboard, but every single time exams in blackboard end up with only one question.

  • Are you using the current development version of R/exams? Bb apparently made some changes so that our older .zip files may not work at all anymore. See the discussion at: https://stackoverflow.com/questions/65232218/blackboard-not-importing-blackboard-zip – Achim Zeileis Jan 15 '21 at 04:06
  • Yes, initially I Blackboard failed on importing the zipfile. The discussion you linked to lead me to re-install the package via `install.packages("exams", repos="http://R-Forge.R-project.org")` , but now I am facing the issue described above. – Andrew Stewart Jan 15 '21 at 20:41
  • Oddly enough I seem to be able to edit the test after import and change the number of questions displayed. – Andrew Stewart Jan 15 '21 at 20:42
  • Ah, I think now I got it. I had overlooked the `cbind(...)`. Could you try to define `exm <- c("capitals.Rmd", "swisscapital.Rmd", "switzerland.Rmd")` (without `cbind(...)`) and import that into Bb? This should give you an exam with three questions. If it does, I'll post a full answer with explanation. (I can't test it myself unfortunately due to lack of access to Bb.) – Achim Zeileis Jan 15 '21 at 21:55
  • Ok, yes, that seems to have worked! It looks like what that does is it creates (for example) 3 separate 1-question pools. – Andrew Stewart Jan 15 '21 at 22:46
  • OK, thanks for checking. I've tried to explain the details along with the underlying ideas for the specifications in my answer below. – Achim Zeileis Jan 15 '21 at 23:20
  • Yup, thanks for the help and info. – Andrew Stewart Jan 16 '21 at 20:36

1 Answers1

1

This behavior is expected because you have specified exm as a 1-column matrix (with 3 rows containing different exercises). This will create 1 question pool containing 3 exercises. More generally, specifying an n x k matrix will create k question pools containing n exercises each.

Alternatively, you can specify a vector or a list of k exercises instead of matrix and then set exams2blackboard(exm, n = n) which will also create k question pools with n exercises each.

The reason for the different format is that they are convenient for different things:

  • Vector: Each question pool contains n random replications of the same exercise.
  • List: Each question pool contains a sample of n exercises drawn from each list element. Thus, you have a mixture of (random replications from) potentially different exercises in each pool.
  • Matrix: You have fine control over which (random replications from) exercises exactly will enter each question pool.
Achim Zeileis
  • 15,710
  • 1
  • 39
  • 49