For instructors¶
This course is designed for guided self-study, a one-day quick route, or a multi-session onboarding course.
Learners with no programming experience should complete the Python preflight before the first session.
Recommended formats¶
One-day quick route¶
| Session | Material |
|---|---|
| 09:00 | overview and lesson 01 |
| 10:00 | functions and Exercise 02 |
| 11:30 | arrays and Exercise 03 |
| 13:30 | debugging and Exercise 04 |
| 15:00 | schemas, tools, and Basilisk-log lab |
| 16:30 | explain one result and review |
Aim for roughly 20% exposition and 80% tracing, coding, checking, and explanation.
Six-session full route¶
- thinking, functions;
- arrays, control;
- debugging, schemas;
- plotting, numerical verification;
- tools, reproducibility;
- CoMPhy labs and capstone proposal.
Facilitation¶
- Ask for predictions before live execution.
- Let the first test fail visibly.
- Request an adversarial input, not only a happy path.
- Ask “what does this number mean?” more often than “what syntax did you use?”
- Pair students to explain each other's code.
- Do not repair every error immediately; help the student form a discriminating check.
AI-assisted work¶
Require students to retain an initial generated attempt, identify its physical and computational assumptions, and explain the corrected version in a pull request. Grade the audit, not the prompt.
Solutions¶
Worked solutions are public by design. Use them after a genuine attempt:
- compare boundaries and tests before bodies;
- identify one difference in scientific policy;
- improve either version;
- explain the choice.
Hiding solutions in an open repository is security theatre.
Assessment¶
Use the capstone rubric. A student should not pass with a polished figure but no schema, or a comprehensive test suite but no physical question.
Extending the course¶
Prefer a new exercise when:
- it represents a recurring CoMPhy task;
- it teaches a distinct decision;
- public or synthetic data suffice;
- a compact automated check exists.
Do not add an exercise merely to cover another Python feature.