Course Map¶
Page Maps¶
graph LR
family["Python Programming"]
program["Python Object-Oriented Programming"]
section["Orientation"]
page["Course Map"]
capstone["Capstone evidence"]
family --> program --> section --> page
page -.applies in.-> capstone
flowchart LR
question["Name the current design question"] --> stage["Choose the right course stage"]
stage --> module["Enter the matching module band"]
module --> capstone["Inspect one matching capstone surface"]
capstone --> review["Carry one review question forward"]
This page is the orientation hub for the whole course.
Its job is simple:
- help a reader see where they are
- show what kind of question the current stage is meant to answer
- explain why the modules are grouped the way they are
Use it when the course feels large, overlapping, or harder to hold in one view.
The course in one view¶
| Stage | Modules | Main question |
|---|---|---|
| first contact | 01-03 | what is this object, what should it own, and what states are legal |
| system pressure | 04-07 | how do those objects collaborate, persist, and survive runtime pressure |
| trust and stewardship | 08-10 | how do we prove, expose, govern, and harden the design over time |
The table matters because it stops the course from feeling like ten unrelated shelves of content.
How to read the course¶
- start with the stage that matches your current question, not your anxiety
- use one stage map at a time instead of trying to hold all ten modules in memory
- return to the capstone after each module band so the ideas stay executable
- treat the support pages as route tools, not as substitute lessons
These four rules are enough to keep a missed-class learner from turning orientation into passive browsing.
Route by question¶
| If your question is... | Start here | Then |
|---|---|---|
| What is this object and what contract does it carry? | First-Contact Map | Modules 01-03 |
| Where should collaboration, invariants, or orchestration live? | Mid-Course Map | Modules 04-07 |
| Is this design trustworthy to test, expose, extend, or ship? | Mastery Map | Modules 08-10 |
This route table exists so the learner does not have to guess whether a pressure belongs to semantics, systems, or stewardship.
What each stage is really for¶
First-contact stage¶
Modules 01-03 give you the language of the course:
- object meaning
- role placement
- legal state and transition design
If this stage is weak, later architecture advice sounds advanced only because the ownership model never became stable.
System-pressure stage¶
Modules 04-07 show what happens when the object model meets real pressure:
- aggregates and cross-object invariants
- failure handling and change cost
- persistence and schema evolution
- time, queues, and concurrency boundaries
This is where the course stops being "about classes" and becomes about survivable design.
Trust-and-stewardship stage¶
Modules 08-10 ask whether the design deserves to live:
- do tests prove the right contracts?
- what is public and what is internal?
- what breaks under performance, observability, or trust pressure?
This stage is late on purpose. It depends on the earlier ownership model already making sense.
Best support pages for each stage¶
| Stage | Best support pages |
|---|---|
| first contact | Module Promise Map and Module Checkpoints |
| system pressure | Pressure Routes and Proof Ladder |
| trust and stewardship | Proof Ladder and Reference Review Checklist |
This table keeps the support shelf tied to the stage, not scattered across the reading experience.
Best capstone surfaces for each stage¶
| Stage | Best capstone surfaces |
|---|---|
| first contact | model.py, lifecycle tests, rules.txt |
| system pressure | architecture guide, projections, repository, and runtime surfaces |
| trust and stewardship | verification bundle, extension guide, review worksheet, and full proof route |
The capstone surfaces matter because a stage is only real if it stays attached to one executable system.
Common orientation mistakes¶
- entering late modules because they sound more "advanced"
- treating persistence or concurrency as separate from ownership
- reading the capstone proof routes before choosing the stage and question
- forgetting that each later stage is supposed to be a consequence of the earlier one
If one of these sounds familiar, return to this page before opening more chapters.
Build a stage note¶
Before leaving this page, write:
- my current question belongs to...
- the first stage I need is...
- the capstone surface I should inspect next is...
- the next stage will matter only after I can explain...
This one note is often enough to keep orientation from turning into passive overview reading.
Exit check¶
Leave this page only when you can say:
My current question belongs to the
____stage, so I should start with____, move through____, and inspect____in the capstone.