You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2ee6797
Browse filesBrowse the repository at this point in the historyBrowse files
feat: start the course from zero — control flow, a step-by-step loop viewer, and the foundations
- engine: if/elif/else, for, while, break/continue, and range(); string
literals become heap objects so every str operation is canvas-visible
- engine: record each statement and loop iteration into state.trace so a
run can be replayed (ADR 003)
- board: a transport bar (first/prev/step/last) scrubs the recorded run,
so a for/while loop can be watched iteration by iteration
- levels: three new pure-Python series — First Steps, Decisions, Repeating
(23 levels) — and a reordered catalog: basics -> flow -> loops ->
functions, then the memory model, then the libraries (78 levels / 16
series); prerequisites are respected (def before its users, .append
before the aliasing and copy series)
- onboarding: welcome copy leads from zero; the levels map shows
difficulty dots and a start-here marker
- docs: CURRICULUM catalog + record-replay section, README subset update,
ADR 003; fix the raw-string 'in' fallback that tsc caught
-**NumPy:**`np.array` → an ndarray *window* over a separate **buffer** box; `.copy()` mints a new buffer; a slice is a *view* sharing the same buffer; `a + 1` vectorizes into a new buffer; `a.sum()` folds to a scalar
Not in v0: classes, real module imports (only the simulated `copy`, `collections`, `functools`, `numpy`), control flow (`if`/`for`/`while`), exceptions (beyond clean parse/runtime errors), comprehensions, I/O, async, `range`/`sorted`/`min`/`max`, full CPython semantics.
74
+
**Watch it run:** every run records a step trace; the transport bar under the board tabs (⏮ ◀ ▶ ⏭) scrubs it, so a `for`/`while` loop can be watched iteration by iteration on the canvas.
75
+
76
+
Not in v0: classes, real module imports (only the simulated `copy`, `collections`, `functools`, `numpy`, `pandas`, `asyncio`, `threading`), exceptions (beyond clean parse/runtime errors), comprehensions, real I/O, full CPython semantics.
74
77
75
78
A planned curriculum extends this with pandas, re, datetime and more — all drawn on the same memory canvas. See `docs/ENGINE-EXTENSION.md` and `docs/adr/002-library-modules.md`.
76
79
@@ -79,7 +82,7 @@ A planned curriculum extends this with pandas, re, datetime and more — all dra
@@ -91,7 +94,23 @@ The engine is intentionally a **teaching subset**, not CPython. Every state tran
91
94
92
95
## Levels
93
96
94
-
Ten series — Names & Bindings, Aliasing & Copy, Containers in Memory, **Copy Semantics** (shallow vs deep), **Iterators & Iterables**, **Defaults & Functional** (defaultdict, map, filter), **NumPy: Buffers & Views** (ndarray, buffer, `.copy()`, slice-as-view), Mutation & Methods, Functions & Frames, Plotting & Capstone. Each of the 40 levels has a brief, optional hint, a goal (predicate or target snapshot), a statement-par for golf, and a worked solution.
97
+
Sixteen series, 78 levels. The course now starts **from zero**: a pure-Python
0 commit comments