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.

Building Reproducible Data Science Assignments

Data science assignments are easier to maintain when the instructor can keep one source document and regenerate student-facing materials after revisions. tutorizeR supports that workflow by converting annotated source documents into tutorials with exercises and solutions.

Suggested assignment structure

assignment-week03/
  lesson-source.qmd
  data/
    student_activity.csv
  generated/
    week03-tutorial.Rmd
    conversion-report.json

Reproducible conversion script

library(tutorizeR)

assignment_dir <- file.path(tempdir(), "assignment-week03")
output_dir <- file.path(assignment_dir, "generated")
source_file <- file.path(assignment_dir, "lesson-source.qmd")

report <- tutorize(
  input = source_file,
  output_dir = output_dir,
  format = "learnr",
  assessment = "both",
  seed = 20260531,
  overwrite = TRUE,
  lint_strict = TRUE
)

write_tutorize_report(
  report = report,
  file = file.path(output_dir, "conversion-report.json"),
  format = "json"
)

Why the seed matters

For teaching workflows, a fixed seed makes generated setup chunks reproducible. This is useful when students, teaching assistants, and instructors need to see the same randomized example or simulated dataset.

LMS manifest

library(tutorizeR)

assignment_dir <- file.path(tempdir(), "assignment-week03")
output_dir <- file.path(assignment_dir, "generated")

manifest <- export_lms_manifest(
  input = file.path(assignment_dir, "lesson-source.qmd"),
  output_file = file.path(output_dir, "lms-manifest.json"),
  profile = "canvas",
  include_solutions = FALSE
)

print(manifest)

The manifest is a local metadata artifact. Direct LMS publication is not part of the current package functionality.

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.