Compare commits

...

4 Commits

Author SHA1 Message Date
Elijah Voigt 814d1f50cb chore(edu): update bean statuses and write self-play chapter content
Archive self-play beans, update shader/LLM parent beans to completed,
and add self-play chapter content to ml-self-play.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
Elijah Voigt 0690327296 docs(edu): write all 14 sections of LLM from scratch chapter [edu-u2w7]
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
Elijah Voigt bc4cc23c42 docs(edu): write all 18 sections of shader programming chapter [edu-4u7w]
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
Elijah Voigt fb9fd518c3 chore(edu): fix Markov bean relationships (blocked-by → parent)
The Markov epic (edu-svom) incorrectly used blocked-by relationships to
reference its 10 section tasks. Replaced with proper parent-child
hierarchy: removed blocked-by entries from the epic and set parent on
each section task.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T22:37:25Z
parent: edu-svom
---
Write Section 5 of edu/markov.md: Exercise 2 — Simulating a Random Walk\n\nLearning objectives:\n- Model a countably-finite state space (bounded integers) in Rust\n- Implement reflecting boundary conditions\n- Aggregate results from many trials into a histogram\n\nContent to produce:\n- Setup instructions (reuse or extend Exercise 1 project)\n- Step-by-step hints:\n 1. Define RandomWalk with min, max, prob_right fields\n 2. Implement step with boundary reflection (clamp or reverse)\n 3. Implement histogram by running simulate() many times\n 4. Print histogram as ASCII bar chart\n 5. Observe convergence toward uniform (symmetric walk) or skewed (asymmetric)\n- Full reference solution\n\nTarget: replace the stub in edu/markov.md §5

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:02Z
updated_at: 2026-03-10T23:30:02Z
updated_at: 2026-03-13T22:37:25Z
parent: edu-svom
---
Write Section 1 of edu/markov.md: 'What Is a Markov Chain?'\n\nLearning objectives:\n- Define the Markov property (memorylessness)\n- Give 34 concrete real-world examples (weather, board games, web surfing, genetics)\n- Explain why the Markov property is a useful modelling assumption\n- Introduce the notation P(Xₙ₊₁ = s | X₀, …, Xₙ) = P(Xₙ₊₁ = s | Xₙ)\n\nContent to produce:\n- 35 paragraphs of prose\n- At least one illustrative example worked through informally\n- No code in this section\n\nTarget: replace the stub in edu/markov.md §1

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T22:37:26Z
parent: edu-svom
---
Write Section 10 of edu/markov.md: 'Applications and Further Reading'\n\nLearning objectives:\n- Survey real-world applications: PageRank, MCMC, HMMs, RL, bioinformatics\n- Give a 23 sentence description of each application and how Markov chains appear\n- Point to concrete next steps for learners who want to go deeper\n\nContent to produce:\n- Application survey (57 topics, each 23 sentences)\n- Annotated reading list:\n * 'Introduction to Probability' (Blitzstein & Hwang) — free PDF\n * 'Markov Chains' (Norris) — rigorous treatment\n * Sutton & Barto 'Reinforcement Learning' — RL connection\n * The Metropolis-Hastings algorithm article on Wikipedia\n- Rust ecosystem pointers (crates for probabilistic modelling)\n\nTarget: replace the stub in edu/markov.md §10

@ -1,11 +1,14 @@
---
# edu-3yw9
title: 'Write §2: Monte Carlo Tree Search — algorithm explained'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T22:48:46Z
parent: edu-coqp
---
Step-by-step walkthrough of MCTS: selection (UCB1), expansion, simulation/rollout, backpropagation. Include a worked example on a small game tree.
## Summary of Changes\n\nWrote full content for §2 covering MCTS algorithm: the four phases (selection, expansion, simulation, backpropagation), UCB1/UCT formula, worked ASCII tree example, and strengths/limitations.

@ -0,0 +1,14 @@
---
# edu-453h
title: 'Write §13: The full AlphaGo Zero training loop'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-16T01:35:06Z
parent: edu-coqp
---
Reading lesson: generate → train → evaluate → promote. Discuss the ELO-based model selection step and why it matters.
## Summary of Changes\n\nWrote full content for §13 covering the complete AlphaGo Zero training loop: self-play with temperature, training, evaluation gate, and the iterative improvement cycle with complete Rust implementation.

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-13T22:37:26Z
parent: edu-svom
---
Write Section 8 of edu/markov.md: Exercise 4 — N-gram Generalization\n\nLearning objectives:\n- Generalize from bigrams to arbitrary-order n-gram chains\n- Use Vec<String> as a HashMap key (or a joined string)\n- Empirically compare output quality for n = 1, 2, 3, 4\n\nContent to produce:\n- Setup instructions (extend Exercise 3 project)\n- Step-by-step hints:\n 1. Modify train to use a sliding window of n words as the key\n 2. Modify generate to maintain a deque/window of the last n words\n 3. Run on the same corpus with n = 1, 2, 3, 4 and print 50 words each\n 4. Discuss observations: when does it start memorising the corpus?\n- Full reference solution\n- Stretch goal: implement character-level n-grams instead of word-level\n\nTarget: replace the stub in edu/markov.md §8

@ -1,11 +1,16 @@
---
# edu-4v13
title: 'Write §8: Exercise 2 — play Tic-Tac-Toe with pure MCTS'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T23:04:14Z
parent: edu-coqp
---
Exercise: wire MCTS to the game logic from Exercise 1 and run a match. Show sample output, discuss iteration count vs strength.
## Summary of Changes
Wrote full content for §8: Exercise 2 with MCTS vs MCTS tournament (100 games, iteration count experiments), human vs MCTS CLI game, experimentation prompts, and readiness checklist.

@ -1,11 +1,14 @@
---
# edu-5go8
title: 'Write §3: Why self-play? The AlphaGo Zero insight'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T22:51:31Z
parent: edu-coqp
---
Explain the key insight: a capable engine can be its own teacher. Historical context (AlphaGo vs AlphaGo Zero) and why the approach generalises.
## Summary of Changes\n\nWrote full content for §3 covering the evolution from Deep Blue to AlphaGo Zero, the self-play insight, the virtuous training cycle, and how we'll adapt the approach for Tic-Tac-Toe.

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T22:37:26Z
parent: edu-svom
---
Write Section 7 of edu/markov.md: Exercise 3 — Bigram Text Generator\n\nLearning objectives:\n- Build a HashMap-based transition table from a text corpus\n- Implement weighted random sampling over successor words\n- Generate and print novel word sequences from a seed\n\nContent to produce:\n- Setup instructions (new Cargo project or extend previous, add rand crate)\n- Step-by-step hints:\n 1. Tokenize corpus into words (split_whitespace)\n 2. Build BigramModel::train by iterating consecutive word pairs\n 3. Implement weighted sampling in generate (accumulate weights, compare to rng draw)\n 4. Handle end-of-chain gracefully (seed word not in model)\n 5. Try with a public-domain text (e.g., Project Gutenberg excerpt)\n- Full reference solution\n\nTarget: replace the stub in edu/markov.md §7

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-13T22:37:25Z
parent: edu-svom
---
Write Section 4 of edu/markov.md: Exercise 1 — Weather Model\n\nLearning objectives:\n- Translate a transition matrix into a Rust struct\n- Use a weighted random draw to implement a single Markov step\n- Run a simulation and print or collect the resulting sequence\n\nContent to produce:\n- Setup instructions (new Cargo project, add rand crate)\n- Step-by-step hints:\n 1. Define the Weather enum and index conversion\n 2. Implement WeatherChain::step using rand::Rng::gen::<f64>()\n 3. Implement WeatherChain::simulate as a loop collecting states\n 4. Run with transition matrix [[0.8, 0.2], [0.4, 0.6]] from Sunny\n 5. Count sunny vs rainy days and compare to stationary distribution\n- Full reference solution (collapsed or at end)\n\nTarget: replace the stub in edu/markov.md §4

@ -0,0 +1,16 @@
---
# edu-7lu6
title: 'Write §12: Exercise 4 — replace rollout with the value network'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-16T01:31:54Z
parent: edu-coqp
---
Exercise: substitute random rollout in MCTS with a neural-network value estimate; compare strength before and after.
## Summary of Changes
Wrote full content for §12: Exercise 4 covering PUCT formula, replacing random rollouts with value network evaluation, adding policy priors to MCTS nodes, modified MCTS code, and pure vs network-guided MCTS comparison.

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T22:37:26Z
parent: edu-svom
---
Write Section 6 of edu/markov.md: 'Text Generation with Markov Chains'\n\nLearning objectives:\n- Explain how words (or characters) become states in a text Markov chain\n- Define bigrams and how they form a transition table from a corpus\n- Discuss why generated text sounds locally plausible but globally incoherent\n- Introduce the concept of order-n chains and the tradeoff between coherence and novelty\n\nContent to produce:\n- 35 paragraphs of prose\n- A short worked bigram example from a 2-sentence sample text (show the table)\n- No code in this section\n\nTarget: replace the stub in edu/markov.md §6

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-13T22:37:25Z
parent: edu-svom
---
Write Section 3 of edu/markov.md: 'Transition Probabilities and Matrices'\n\nLearning objectives:\n- Formally define the transition matrix P where P[i][j] = P(next=j | current=i)\n- Explain the stochastic matrix constraint: all rows sum to 1, all entries ≥ 0\n- Show how to compute the distribution after k steps: π₀ Pᵏ\n- Work through a 2×2 weather-model example by hand\n\nContent to produce:\n- 35 paragraphs of prose\n- A worked numeric example (2-state weather chain)\n- LaTeX-style or plain-text matrix notation\n- No code in this section\n\nTarget: replace the stub in edu/markov.md §3

@ -0,0 +1,14 @@
---
# edu-brtk
title: 'Write §14: Exercise 5 — 1000 self-play games; observe improvement'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-16T01:40:32Z
parent: edu-coqp
---
Capstone exercise: run the full self-play loop for 1000 games; plot win-rate over iterations; discuss what worked and what didn't.
## Summary of Changes\n\nWrote full content for §14: Exercise 5 — the capstone exercise running 1000 self-play games, tracking diagnostics, validating convergence to perfect play, and providing next steps for further learning.

@ -1,11 +1,11 @@
---
# edu-coqp
title: 'edu: write Machine Learning chapter (self-play game AI, Alpha Go Zero style)'
status: in-progress
status: completed
type: feature
priority: low
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T20:03:44Z
updated_at: 2026-03-16T01:40:56Z
---
## Background
@ -44,3 +44,5 @@ A self-play reinforcement learning course. The practical focus is implementing a
- `edu/src/ml-self-play.md`
- Add to `edu/src/SUMMARY.md` under a `# Machine Learning` section
## Summary of Changes\n\nAll 14 sections written (7,622 lines total). The chapter covers:\n- Part 1 (§1-3): RL fundamentals, MCTS algorithm, AlphaGo Zero insight\n- Part 2 (§4-6): Tic-Tac-Toe as learning vehicle, Rust game state, Exercise 1\n- Part 3 (§7-8): MCTS implementation in Rust, Exercise 2 (pure MCTS play)\n- Part 4 (§9-12): NN from scratch, training on MCTS data, PUCT-guided MCTS\n- Part 5 (§13-14): Full self-play training loop, capstone exercise

@ -0,0 +1,16 @@
---
# edu-e39n
title: 'Write §5: Representing game state in Rust'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T22:56:30Z
parent: edu-coqp
---
Reading lesson: design of Board, Player, Move types. Discuss representation trade-offs (bitboard vs array). Show the full type definitions.
## Summary of Changes
Wrote full content for §5 covering Rust game state representation: Player enum, GameState struct, board indexing, Display impl, move generation, winner checking, and immutable apply_move design.

@ -0,0 +1,16 @@
---
# edu-iv0k
title: 'Write §9: Neural network architecture overview'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T23:07:35Z
parent: edu-coqp
---
Conceptual lesson: shared convolutional trunk, policy head (move probabilities), value head (win probability). Diagrams encouraged. No code yet.
## Summary of Changes
Wrote full content for §9 covering neural network fundamentals from scratch: neurons/weights/biases, layers, forward pass, training intuition, and the dual-headed policy+value architecture for game AI with concrete TTT dimensions.

@ -0,0 +1,16 @@
---
# edu-k3tq
title: 'Write §4: Choosing a simple game — Tic-Tac-Toe'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T22:53:54Z
parent: edu-coqp
---
Explain why Tic-Tac-Toe is ideal: small state space, deterministic, zero-sum, easily verifiable. Foreshadow how the same approach scales to Go/Chess.
## Summary of Changes
Wrote full content for §4 covering why Tic-Tac-Toe is the ideal learning vehicle: suitable game properties, game tree size, known optimal solution as validation target, and comparison with alternatives.

@ -0,0 +1,14 @@
---
# edu-lqky
title: 'Write §11: Exercise 3 — train the network on MCTS data'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-16T00:32:55Z
parent: edu-coqp
---
Exercise: generate training examples (state, policy vector, value) from pure MCTS self-play; run one training epoch; log loss.
## Summary of Changes\n\nWrote full content for §11: Exercise 3 covering MCTS data generation pipeline, TrainingExample struct, mini-batch SGD training loop, loss tracking, network evaluation, and experimentation prompts.

@ -1,11 +1,14 @@
---
# edu-of9y
title: 'Write §7: Implementing MCTS in Rust'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T23:01:59Z
parent: edu-coqp
---
Walk through selection (UCB1 formula), expansion, simulation (random rollout), backpropagation. Show Rust code for the node structure and the four phases.
## Summary of Changes\n\nWrote full content for §7 covering MCTS implementation in Rust: arena-allocated node structure, all four phases implemented and explained, UCT calculation, main loop, and move selection.

@ -0,0 +1,14 @@
---
# edu-pvou
title: 'Write §10: Integrating a neural network crate'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T23:11:44Z
parent: edu-coqp
---
Reading lesson: evaluate tch-rs vs candle for this use case; show how to define and initialise the network; basic forward-pass usage.
## Summary of Changes\n\nWrote full content for §10 covering from-scratch neural network implementation in Rust: Layer struct, forward pass with ReLU/softmax/tanh, illegal move masking, Xavier initialization, backpropagation, SGD training, and complete compilable code.

@ -5,18 +5,7 @@ status: completed
type: epic
priority: high
created_at: 2026-03-10T23:30:02Z
updated_at: 2026-03-10T23:30:04Z
blocked_by:
- edu-18qe
- edu-zjy1
- edu-a1al
- edu-7cp2
- edu-0w1v
- edu-9kuk
- edu-6r70
- edu-4gok
- edu-urpp
- edu-34co
updated_at: 2026-03-13T22:33:43Z
---
Self-guided Markov chain course in edu/markov.md.\n\nThe course outline lives in edu/markov.md. Each of the 10 section tickets must be completed to flesh out all stubs before this project is done.\n\nSections:\n1. fbf323 — What Is a Markov Chain?\n2. 738be2 — States and Transitions\n3. 44ebe7 — Transition Probabilities and Matrices\n4. 257a2a — Exercise 1: Weather Model (Rust)\n5. 64826a — Exercise 2: Random Walk (Rust)\n6. 92a829 — Text Generation with Markov Chains\n7. 74be50 — Exercise 3: Bigram Text Generator (Rust)\n8. 1f995a — Exercise 4: N-gram Generalization (Rust)\n9. 68ee16 — Stationary Distributions\n10. 5994a6 — Applications and Further Reading

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T22:37:26Z
parent: edu-svom
---
Write Section 9 of edu/markov.md: 'Stationary Distributions'\n\nLearning objectives:\n- Define stationary distribution π: πP = π, Σπᵢ = 1\n- Explain existence and uniqueness conditions: irreducibility and aperiodicity\n- Show how to compute π analytically for a 2-state chain\n- Introduce power iteration as a numerical method\n- Connect to the long-run frequency interpretation from the simulation in Exercise 1\n\nContent to produce:\n- 46 paragraphs of prose\n- Worked 2×2 example: solve πP = π by hand\n- Power iteration pseudocode or brief Rust sketch\n\nTarget: replace the stub in edu/markov.md §9

@ -0,0 +1,14 @@
---
# edu-wobk
title: 'Write §1: What is reinforcement learning?'
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T22:46:18Z
parent: edu-coqp
---
Cover: state, action, reward, policy, value function. Intuitive explanation with a game-playing example. No code.
## Summary of Changes\n\nWrote full content for §1 covering RL fundamentals: agent/environment loop, state/action/reward/policy/value concepts, contrast with supervised/unsupervised learning, and why RL fits games.

@ -1,11 +1,14 @@
---
# edu-ymux
title: 'Write §6: Exercise 1 — implement Tic-Tac-Toe game logic'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T22:58:06Z
parent: edu-coqp
---
Hands-on exercise: move generation, win detection, terminal-state check, displaying the board. Include starter code and expected test output.
## Summary of Changes\n\nWrote full content for §6: Exercise 1 with project setup instructions, 8 unit test specifications with collapsible solutions, a random-game main function, and a readiness checklist.

@ -5,7 +5,8 @@ status: completed
type: task
priority: high
created_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-10T23:30:01Z
updated_at: 2026-03-13T22:37:25Z
parent: edu-svom
---
Write Section 2 of edu/markov.md: 'States and Transitions'\n\nLearning objectives:\n- Define state space (finite vs countably infinite)\n- Define a transition as a directed edge between states with an associated probability\n- Introduce state-transition diagrams and how to draw them\n- Distinguish absorbing states, transient states, and recurrent states at an intuitive level\n\nContent to produce:\n- 35 paragraphs of prose\n- A hand-drawn-style ASCII or described state-transition diagram for the weather example\n- No code in this section\n\nTarget: replace the stub in edu/markov.md §2

@ -1,10 +1,11 @@
---
# edu-10m1
title: '§9 Exercise 2: draw a coloured triangle'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:52Z
updated_at: 2026-03-13T19:54:52Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-1nox
title: §17 Signed Distance Fields for font rendering
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:55:11Z
updated_at: 2026-03-13T19:55:11Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-2ak3
title: §3 What is WGSL? Syntax overview
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:41Z
updated_at: 2026-03-13T19:54:41Z
updated_at: 2026-03-16T02:30:27Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-2sqo
title: '§13 Compute pipelines: dispatching work groups'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:55:02Z
updated_at: 2026-03-13T19:55:02Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-32xl
title: 'Write §1: What is a language model?'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:47Z
updated_at: 2026-03-13T22:01:47Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,10 +1,11 @@
---
# edu-3l9h
title: §7 Vertices, buffers, and the vertex shader
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:49Z
updated_at: 2026-03-13T19:54:49Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,11 +0,0 @@
---
# edu-453h
title: 'Write §13: The full AlphaGo Zero training loop'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Reading lesson: generate → train → evaluate → promote. Discuss the ELO-based model selection step and why it matters.

@ -1,11 +1,11 @@
---
# edu-4u7w
title: 'edu: write chapter on shader programming'
status: in-progress
status: completed
type: feature
priority: low
created_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-13T19:54:32Z
updated_at: 2026-03-16T02:32:28Z
---
## Background
@ -50,3 +50,7 @@ A practical introduction to GPU shaders, written with Rust as the host language.
- `edu/src/shaders.md`
- Add to `edu/src/SUMMARY.md` under a `# Graphics` section
## Summary of Changes
All 18 sections written with full educational content covering the GPU execution model, wgpu setup, vertex/fragment shaders, textures, compute shaders, and advanced topics. ~4400 lines of content including full Rust+WGSL code examples, ASCII diagrams, and 5 hands-on exercises.

@ -1,10 +1,11 @@
---
# edu-5g0l
title: '§1 CPU vs GPU: parallel execution model'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:37Z
updated_at: 2026-03-13T19:54:37Z
updated_at: 2026-03-16T02:30:27Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-6jjp
title: '§5 Exercise 1: create a window and clear it to a colour'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:44Z
updated_at: 2026-03-13T19:54:44Z
updated_at: 2026-03-16T02:30:27Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-7do4
title: 'Write §2: Character-level tokenisation'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:48Z
updated_at: 2026-03-13T22:01:48Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-7lu6
title: 'Write §12: Exercise 4 — replace rollout with the value network'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Exercise: substitute random rollout in MCTS with a neural-network value estimate; compare strength before and after.

@ -1,10 +1,11 @@
---
# edu-7m8d
title: '§18 Resources: Learn WGPU, Shadertoy, The Book of Shaders'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:55:12Z
updated_at: 2026-03-13T19:55:12Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-9cnd
title: 'Write §6: The Transformer block'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:55Z
updated_at: 2026-03-13T22:01:55Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,10 +1,11 @@
---
# edu-9lda
title: '§16 Post-processing effects (bloom, blur): conceptual overview'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:55:11Z
updated_at: 2026-03-13T19:55:11Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-9sb7
title: 'Write §14: Further reading'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:02:08Z
updated_at: 2026-03-13T22:02:08Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,10 +1,11 @@
---
# edu-abdu
title: 'Write §10: Cross-entropy loss and the training loop'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:02:02Z
updated_at: 2026-03-13T22:02:02Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-brtk
title: 'Write §14: Exercise 5 — 1000 self-play games; observe improvement'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Capstone exercise: run the full self-play loop for 1000 games; plot win-rate over iterations; discuss what worked and what didn't.

@ -1,10 +1,11 @@
---
# edu-bycd
title: §11 Texture coordinates (UVs), texture creation, sampler config
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:56Z
updated_at: 2026-03-13T19:54:56Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-cr0w
title: '§10 Exercise 3: animate the triangle using a time uniform'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:54Z
updated_at: 2026-03-13T19:54:54Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-cw9v
title: 'Write §4: Embeddings and positional encoding'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:52Z
updated_at: 2026-03-13T22:01:52Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-e39n
title: 'Write §5: Representing game state in Rust'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Reading lesson: design of Board, Player, Move types. Discuss representation trade-offs (bitboard vs array). Show the full type definitions.

@ -1,10 +1,11 @@
---
# edu-exby
title: '§15 Exercise 5: GPU-accelerate a particle simulation'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:55:05Z
updated_at: 2026-03-13T19:55:05Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-ga8p
title: §8 Interpolation and the fragment shader
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:50Z
updated_at: 2026-03-13T19:54:50Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-hrfy
title: '§6 The render loop: swap chains, frames, command encoders'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:44Z
updated_at: 2026-03-13T19:54:44Z
updated_at: 2026-03-16T02:30:27Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-hufe
title: 'Write §7: Exercise 2 — implement self-attention in Rust'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:56Z
updated_at: 2026-03-13T22:01:56Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,10 +1,11 @@
---
# edu-i76z
title: 'Write §12: Exercise 5 — sample from the model'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:02:05Z
updated_at: 2026-03-13T22:02:05Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-iv0k
title: 'Write §9: Neural network architecture overview'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Conceptual lesson: shared convolutional trunk, policy head (move probabilities), value head (win probability). Diagrams encouraged. No code yet.

@ -1,10 +1,11 @@
---
# edu-j35d
title: §4 What is wgpu? Cross-platform graphics API in Rust
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:43Z
updated_at: 2026-03-13T19:54:43Z
updated_at: 2026-03-16T02:30:27Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-jybf
title: 'Write §11: Exercise 4 — train on a small text corpus'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:02:04Z
updated_at: 2026-03-13T22:02:04Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-k3tq
title: 'Write §4: Choosing a simple game — Tic-Tac-Toe'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Explain why Tic-Tac-Toe is ideal: small state space, deterministic, zero-sum, easily verifiable. Foreshadow how the same approach scales to Go/Chess.

@ -1,10 +1,11 @@
---
# edu-kkjc
title: 'Write §13: What limits this model?'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:02:07Z
updated_at: 2026-03-13T22:02:07Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-lqky
title: 'Write §11: Exercise 3 — train the network on MCTS data'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Exercise: generate training examples (state, policy vector, value) from pure MCTS self-play; run one training epoch; log loss.

@ -1,11 +0,0 @@
---
# edu-pvou
title: 'Write §10: Integrating a neural network crate'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Reading lesson: evaluate tch-rs vs candle for this use case; show how to define and initialise the network; basic forward-pass usage.

@ -1,10 +1,11 @@
---
# edu-r52d
title: '§2 The programmable pipeline: vertex, fragment, compute shaders'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:39Z
updated_at: 2026-03-13T19:54:39Z
updated_at: 2026-03-16T02:30:27Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-s6mr
title: 'Write §5: Self-attention — queries, keys, and values'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:53Z
updated_at: 2026-03-13T22:01:53Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,10 +1,11 @@
---
# edu-tufd
title: 'Write §3: Exercise 1 — build a character-level tokeniser in Rust'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:50Z
updated_at: 2026-03-13T22:01:50Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +1,11 @@
---
# edu-u2w7
title: 'edu: write chapter on creating and training a simple LLM'
status: in-progress
status: completed
type: feature
priority: low
created_at: 2026-03-10T23:30:00Z
updated_at: 2026-03-13T22:01:43Z
updated_at: 2026-03-16T02:32:26Z
---
## Background
@ -48,3 +48,7 @@ A practical course on building a small language model from scratch in Rust, cove
- `edu/src/llm-from-scratch.md`
- Add to `edu/src/SUMMARY.md` under the `# Machine Learning` section
## Summary of Changes
All 14 sections written with full educational content covering language modeling basics, the Transformer architecture, model assembly with candle, training, and reflection. ~1900 lines of content including code examples, ASCII diagrams, and exercises.

@ -1,10 +1,11 @@
---
# edu-ujs5
title: 'Write §9: Exercise 3 — define the GPT-1-style model in candle'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:02:00Z
updated_at: 2026-03-13T22:02:00Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,10 +1,11 @@
---
# edu-uxa1
title: §14 Storage buffers and read/write access from WGSL
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:55:04Z
updated_at: 2026-03-13T19:55:04Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

@ -1,10 +1,11 @@
---
# edu-vqxk
title: 'Write §8: A decoder-only LM — stacking blocks and the causal mask'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T22:01:58Z
updated_at: 2026-03-13T22:01:58Z
updated_at: 2026-03-16T02:30:26Z
parent: edu-u2w7
---

@ -1,11 +0,0 @@
---
# edu-wobk
title: 'Write §1: What is reinforcement learning?'
status: todo
type: task
created_at: 2026-03-13T20:03:17Z
updated_at: 2026-03-13T20:03:17Z
parent: edu-coqp
---
Cover: state, action, reward, policy, value function. Intuitive explanation with a game-playing example. No code.

@ -1,10 +1,11 @@
---
# edu-xv9j
title: '§12 Exercise 4: render a textured quad'
status: todo
status: completed
type: task
priority: normal
created_at: 2026-03-13T19:54:58Z
updated_at: 2026-03-13T19:54:58Z
updated_at: 2026-03-16T02:30:28Z
parent: edu-4u7w
---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save