# Workflow Pattern for Large Undergraduate Courses

This vignette is an illustrative scenario. Actual classroom deployment is not verifiable from repository contents.

Large undergraduate courses need consistent materials, reproducible updates, and clear handoffs between instructors and teaching assistants. `tutorizeR` is designed for this kind of operational teaching workflow.

## Course folder workflow

    course/
      lessons/
        week01-introduction.qmd
        week02-data-import.qmd
        week03-visualization.qmd
      question-bank/
        core-concepts.yml
      tutorials/
      reports/

## Batch conversion

    library(tutorizeR)

    course_dir <- file.path(tempdir(), "course")
    qb <- load_question_bank(file.path(course_dir, "question-bank"))

    folder_report <- convert_folder(
      dir = file.path(course_dir, "lessons"),
      recursive = TRUE,
      output_dir = file.path(course_dir, "tutorials"),
      format = "learnr",
      assessment = "both",
      question_bank = qb,
      mcq_source = "mixed",
      lint_strict = TRUE,
      overwrite = TRUE
    )

    print(folder_report)

## Teaching assistant review

Teaching assistants can review generated outputs and reports before release:

    library(tutorizeR)

    lint <- lint_source(
      input = file.path(course_dir, "lessons", "week03-visualization.qmd"),
      question_bank = qb,
      strict = FALSE
    )

    print(lint)

## Operational benefits

The main benefit is not that tutorials are generated automatically once. The benefit is that a whole course team can regenerate the same materials after corrections, new datasets, or revised learning objectives.