The file carries the course's descriptive fields, its objectives, its sessions, and optionally its assessments:
Value
A named list with elements "course_name", "title", "term",
"objectives", "sessions", and "assessments" where the file supplies it.
Where the file cites source material, "sources" carries the registry and
"session_sources" (and "assessment_sources") carry each objective's
resolved records, positionally aligned with the objectives they belong to
and NULL for those with none.
Details
course_name: Datasci 213
title: Programming for Health Data Science in R I
term: Summer 2025
objectives:
- Apply R's core data types to represent a health dataset.
sessions:
session_01:
- Run R code at the console and interpret the output.
assessments: # optional
assignment_1:
- Compute the median length of stay by ward.assessments is optional; supply it and map_curriculum() runs the
session-to-assessment direction as well. The keys under sessions and
assessments become part of the generated ids, so they should be stable
across runs.
Source material
An objective may instead be written as a mapping carrying its text plus the
material it is taught from. A sources block names those materials once so
that each citation is a reference plus a locator:
sources:
pdsr:
type: book
title: Programming for Data Science in R
url: https://pdsr.rtemis.org
sessions:
session_02:
- Data Structures: Vectors, matrices, lists, data frames
- text: "Data Types: Logical, integer, double, character"
source: {ref: pdsr, locator: "Ch. 8", url: "https://pdsr.rtemis.org/DataTypes.html"}Both forms mix freely, so a file written before sources existed reads exactly
as it did. source takes one record, a list of records, or a bare string for
a citation with nowhere to point. A record naming ref inherits the registry
entry's fields, and anything it states itself wins.
Sources are metadata and take no part in alignment. They come back in
session_sources rather than in sessions, which stays a plain character
vector per session – so map_course_to_sessions(), classify_objectives()
and everything else read the objective as written, which is what students and
reviewers read. What sources are for is the step before mapping: giving an
agent the chapter a topic is taught from so it can draft or revise
Bloom's-formatted objectives grounded in the material.
Coverage is expected to be partial. Material is also taught by demonstration, and a text may still be growing, so an objective with no source is not a gap – read the other way, it is a list of what the material has yet to cover.