# Memory to GC: curriculum and outcomes

Core order is **01 → 02 → 03 → 04 → 06 → 05 → 08**. The module IDs are stable;
06 precedes 05 so learners have a scheduling hypothesis worth measuring. 04 is
a short bridge. 07 is optional later depth, not a hidden prerequisite.

The learner builds small, inspectable models and then distinguishes their
predictions from measurements of a real program. The destination is a defended
reading of Green Tea, supported by code, an experiment and an explicit limit.
It is not fluency in every subsystem of a production collector.

## Entry and route

Entry requires Go functions, loops, slices and tests. No allocator, cache or GC
knowledge is assumed. A tutor can check syntax on an unrelated tiny function
before starting. Missing programming prerequisites need a separate warm-up.
Experienced programmers may attempt the prerequisite tasks and enter later;
skipping a lesson does not confer credit for its outcomes.

| Lesson | Outcome | Required evidence | Later return |
| --- | --- | --- | --- |
| 01 | O1: place contiguous allocations without overlap or failed-operation mutation | Allocator checks; explain a fragmented failure and a stricter release contract | 03 reclamation; 04 address arithmetic |
| 02 | O2: derive line traffic from an explicit cache model and access order | Cache checks; predict a changed-capacity result and name an omitted hardware mechanism | 06 scheduler trace; 05 timings |
| 03 | O3: reclaim exactly unreachable allocated objects | Collector checks; explain cycles, edge direction and a changed-root case | 06 scheduling invariant; 08 fresh graph |
| 04 | O4: distinguish identity, address, line, collector page and OS page | Address classification and a new-size explanation; no code exercise | 06 grouping; 08 source mapping |
| 06 | O5: implement page scheduling without losing late work | Scheduler checks and own trace; explain a useful and an adverse layout | 05 competing implementations; 08 capstone |
| 05 | O6: design and interpret a controlled comparison | Two correct traversals, repeated raw samples, source/configuration identity, null/adverse case | 08 counterexample and bounded conclusion |
| 08 | O7: connect a real collector's mechanisms to code and evidence | Fresh collector, trace, source annotation, experiment and self-check | Optional independent or delayed transfer evaluation |

O1, O3 and O5 are procedures with invariants. O2 and O4 introduce concepts and
calculations. O6 develops principles of controlled comparison; O7 integrates
them in a new problem. Each new procedure has a separate worked example before
the assessed implementation. Feedback points to a violated obligation, and
repairs retain the original attempt. Transfer changes a relevant condition or
asks the learner to construct a counterexample; it is not just a renamed example.

## Evidence and limits

Automated checks judge observable code behavior on their stated finite inputs.
They do not grade a causal explanation. Browser predictions and notes are
practice. An imported trace records a claimed source run and its observed
model operations; it is not a hardware profile or authenticated certificate.
A benchmark measures the supplied executable on the recorded machine and
conditions. No score combines these into a mastery percentage.

The capstone is fully runnable from public course material and needs no external
examiner. Its fresh cases and report are learner-accessible practice. Optional
held-out evaluation stays with an assessment owner outside the delivered course;
if used to measure learning, it must record assistance, first attempts and the
build tested. A delayed attempt can test retention separately.

The core content is authored locally. Rendering, technical checks, independent
reviews and first-time human trials have separate acceptance evidence in the
implementation record. Human trials remain pending; no learning-gain or public
release claim follows from authored content alone. Design duration is several
sittings, roughly 8–12 hours including projects, to be revised after observation.

## Later depth

07 can extend the stopped-world model with mutator/collector interleavings and
barriers. A useful outcome would be a missed-edge counterexample plus the
invariant a barrier restores, not a vocabulary quiz. It is not implemented by
the core course.

A later storage course could apply the same approach to buffering, mappings,
filesystem layout and crash consistency. That is a separate curriculum direction,
not available material promised by this course. Source support is tracked in [sources.md](sources.md).
