The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Reusable Question Banks

User goal

Question banks help instructors reuse conceptual checks across lessons. This is useful when multiple tutorials should assess the same core ideas without rewriting each MCQ by hand.

Minimal bank

questions:
  - id: visualization-aesthetic
    question: "Which aesthetic maps a variable to the vertical axis?"
    answers:
      - text: "y"
        correct: true
      - text: "x"
        correct: false
    tags: [visualization]
    difficulty: introductory
    language: en

Load and validate

library(tutorizeR)

qb <- load_question_bank("question-bank")
report <- validate_question_bank(qb, strict = FALSE)

print(report)

Reference bank questions in a lesson

The YAML content inside a tutorizeR-mcq-ref block can reference existing bank items:

ids: [visualization-aesthetic]
strategy: ordered
shuffle_answers: false

Realistic installed example

library(tutorizeR)

example_dir <- system.file("examples", "example_course_module", package = "tutorizeR")
qb <- load_question_bank(file.path(example_dir, "question-bank"))

work_dir <- file.path(tempdir(), "tutorizeR-qb-example")
dir.create(work_dir, recursive = TRUE, showWarnings = FALSE)
file.copy(file.path(example_dir, "lesson-source.qmd"), work_dir, overwrite = TRUE)
file.copy(file.path(example_dir, "student_activity.csv"), work_dir, overwrite = TRUE)

report <- tutorize(
  input = file.path(work_dir, "lesson-source.qmd"),
  output_dir = work_dir,
  assessment = "both",
  question_bank = qb,
  mcq_source = "mixed",
  overwrite = TRUE,
  verbose = FALSE
)

print(report)

Limits

Question banks improve reuse, but they do not guarantee good assessment design. Instructors should check that each MCQ is aligned with the learning objective, has plausible distractors, and uses language appropriate for the course.

Reproducibility checklist

library(tutorizeR)

example_dir <- system.file("examples", "example_course_module", package = "tutorizeR")
qb <- load_question_bank(file.path(example_dir, "question-bank"))
validate_question_bank(qb, strict = TRUE)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.