1

I use the R package exams to create quizzes that are administered through the learning management system Canvas. I would like to randomize the order of exercises. Suppose I have 2 exercises A and B. From each exercise we draw 100 realizations, 1, ..., 100. I would like to create exams consisting of one random A exercise and one random B exercise in random order, i.e., of the following form: {A(2), B(10)}, {B(20), A(60)}, etc.

I am aware that you can use R/exams to generate PDF exams in this form (see: Different orders of questions in exams2pdf() from R/exams). However, I cannot find how to do the same for Canvas using the exams2canvas() function.

Achim Zeileis
  • 15,710
  • 1
  • 39
  • 49
user1895406
  • 1,383
  • 2
  • 9
  • 10

1 Answers1

2

At the moment this feature is not available in exams2canvas() and I'm not sure whether it can be implemented. (Should anyone reading this have insights about whether/how this could be achieved, please let me know.)

Conceptually, there is an important difference between those exams2xyz() interfaces that produce a single file per exam (notably, exams2pdf() and exams2nops()) and those that produce a collection for learning management systems (like exams2moodle(), exams2canvas(), exams2blackboard(), and exams2openolat()). The former assure that the 1st replication from A and B are together in one exam - and potentially their order can be randomized. Analogously, for the 2nd and 3rd replication, etc. In the exports for learning management systems this is not easily possible.

Instead, the exports for the different learning management systems produce one "pool" or "section" of 100 exercises for A, and another pool/section of 100 exercises for B. For each exam the learning management system then samples one exercise from the A pool/section and one exercise from the B pool/section. So far, this is what you are looking for.

However, additionally shuffling or randomizing the order of the sections is available in some learning management systems but (to the best of my knowledge) not in all. Notably, OpenOLAT based on the QTI 2.1 format has an option for this. But for systems based on QTI 1.2 (rather than 2.1) like Canvas I did not see any way of including this feature.

Achim Zeileis
  • 15,710
  • 1
  • 39
  • 49