Didactopus/docs/mit-ocw-course-guide.md

97 lines
2.7 KiB
Markdown

# Working With Other MIT OCW Courses
This is the recommended pattern for bringing more MIT OpenCourseWare courses into Didactopus.
## Goal
Use MIT OCW as a structured source for learning, while preserving:
- attribution
- license references
- adaptation status
- noncommercial/share-alike flags
- a place to record excluded third-party content when it appears
## Minimal workflow
1. Pick a course and collect the specific pages you are actually using.
2. Create a local derived source file for reproducible ingestion.
3. Create a `sources.yaml` inventory beside that source file.
4. Run the ingestion/demo pipeline and emit a `pack_compliance_manifest.json`.
5. Review the generated pack before treating it as reusable teaching material.
## Recommended directory shape
For a new MIT OCW-derived example, mirror the existing pattern:
```text
examples/<course-slug>/
didactopus-course.yaml
course/
...
sources.yaml
```
The corresponding generated outputs should include:
```text
domain-packs/<course-slug>/
license_attribution.json
pack_compliance_manifest.json
source_inventory.yaml
```
## What goes in `sources.yaml`
Record each course page or resource page that materially informed the generated pack.
At minimum include:
- `source_id`
- `title`
- `url`
- `publisher`
- `creator`
- `license_id`
- `license_url`
- `retrieved_at`
- `adapted`
- `attribution_text`
- `excluded_from_upstream_license`
- `exclusion_notes`
Use `examples/ocw-information-entropy/sources.yaml` as the concrete model.
## When to add excluded-source records
Add explicit excluded records when:
- the course page points to third-party figures or readings
- the page itself warns that a particular asset is excluded from the main course license
- you want the record preserved even though you do not reuse the asset
That is the route for acknowledging future sources that require special handling.
## Practical advice for course selection
Good first OCW candidates:
- courses with a strong week-by-week or unit-by-unit structure
- courses with stable textual descriptions, readings, or assignments
- courses where you can summarize the progression into a single local source file
Harder candidates:
- courses whose value is mostly in embedded media
- courses with many third-party handouts or linked readings
- courses with weak textual structure
## Current repo reference
The MIT OCW Information and Entropy demo is the reference implementation of this pattern:
- course manifest: `examples/ocw-information-entropy/didactopus-course.yaml`
- source tree: `examples/ocw-information-entropy/course/`
- source inventory: `examples/ocw-information-entropy/sources.yaml`
- generated pack: `domain-packs/mit-ocw-information-entropy/`