diff --git a/edu/.beans/archive/edu-0w1v--markov-exercise-simulating-a-random-walk-rust.md b/edu/.beans/archive/edu-0w1v--markov-exercise-simulating-a-random-walk-rust.md index 55f9a47..8575cac 100644 --- a/edu/.beans/archive/edu-0w1v--markov-exercise-simulating-a-random-walk-rust.md +++ b/edu/.beans/archive/edu-0w1v--markov-exercise-simulating-a-random-walk-rust.md @@ -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 diff --git a/edu/.beans/archive/edu-18qe--markov-lesson-what-is-a-markov-chain.md b/edu/.beans/archive/edu-18qe--markov-lesson-what-is-a-markov-chain.md index 9717c41..53a809b 100644 --- a/edu/.beans/archive/edu-18qe--markov-lesson-what-is-a-markov-chain.md +++ b/edu/.beans/archive/edu-18qe--markov-lesson-what-is-a-markov-chain.md @@ -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 3–4 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- 3–5 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 diff --git a/edu/.beans/archive/edu-34co--markov-lesson-applications-and-further-reading.md b/edu/.beans/archive/edu-34co--markov-lesson-applications-and-further-reading.md index 40104c0..e6b2f9a 100644 --- a/edu/.beans/archive/edu-34co--markov-lesson-applications-and-further-reading.md +++ b/edu/.beans/archive/edu-34co--markov-lesson-applications-and-further-reading.md @@ -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 2–3 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 (5–7 topics, each 2–3 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 diff --git a/edu/.beans/archive/edu-4gok--markov-exercise-n-gram-generalization-rust.md b/edu/.beans/archive/edu-4gok--markov-exercise-n-gram-generalization-rust.md index a7359d4..489f50a 100644 --- a/edu/.beans/archive/edu-4gok--markov-exercise-n-gram-generalization-rust.md +++ b/edu/.beans/archive/edu-4gok--markov-exercise-n-gram-generalization-rust.md @@ -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 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 diff --git a/edu/.beans/archive/edu-6r70--markov-exercise-bigram-text-generator-rust.md b/edu/.beans/archive/edu-6r70--markov-exercise-bigram-text-generator-rust.md index d7a6d62..a567198 100644 --- a/edu/.beans/archive/edu-6r70--markov-exercise-bigram-text-generator-rust.md +++ b/edu/.beans/archive/edu-6r70--markov-exercise-bigram-text-generator-rust.md @@ -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 diff --git a/edu/.beans/archive/edu-7cp2--markov-exercise-weather-model-rust.md b/edu/.beans/archive/edu-7cp2--markov-exercise-weather-model-rust.md index d6933b0..d3b693f 100644 --- a/edu/.beans/archive/edu-7cp2--markov-exercise-weather-model-rust.md +++ b/edu/.beans/archive/edu-7cp2--markov-exercise-weather-model-rust.md @@ -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::()\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 diff --git a/edu/.beans/archive/edu-9kuk--markov-lesson-text-generation-with-markov-chains.md b/edu/.beans/archive/edu-9kuk--markov-lesson-text-generation-with-markov-chains.md index aa7daa0..2a789b6 100644 --- a/edu/.beans/archive/edu-9kuk--markov-lesson-text-generation-with-markov-chains.md +++ b/edu/.beans/archive/edu-9kuk--markov-lesson-text-generation-with-markov-chains.md @@ -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- 3–5 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 diff --git a/edu/.beans/archive/edu-a1al--markov-lesson-transition-probabilities-and-matrice.md b/edu/.beans/archive/edu-a1al--markov-lesson-transition-probabilities-and-matrice.md index 10d4cc3..ca294f4 100644 --- a/edu/.beans/archive/edu-a1al--markov-lesson-transition-probabilities-and-matrice.md +++ b/edu/.beans/archive/edu-a1al--markov-lesson-transition-probabilities-and-matrice.md @@ -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- 3–5 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 diff --git a/edu/.beans/archive/edu-svom--markov.md b/edu/.beans/archive/edu-svom--markov.md index 9293b2f..6260580 100644 --- a/edu/.beans/archive/edu-svom--markov.md +++ b/edu/.beans/archive/edu-svom--markov.md @@ -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 diff --git a/edu/.beans/archive/edu-urpp--markov-lesson-stationary-distributions.md b/edu/.beans/archive/edu-urpp--markov-lesson-stationary-distributions.md index a5bd953..7eafb87 100644 --- a/edu/.beans/archive/edu-urpp--markov-lesson-stationary-distributions.md +++ b/edu/.beans/archive/edu-urpp--markov-lesson-stationary-distributions.md @@ -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- 4–6 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 diff --git a/edu/.beans/archive/edu-zjy1--markov-lesson-states-and-transitions.md b/edu/.beans/archive/edu-zjy1--markov-lesson-states-and-transitions.md index cc9073c..a8cdb43 100644 --- a/edu/.beans/archive/edu-zjy1--markov-lesson-states-and-transitions.md +++ b/edu/.beans/archive/edu-zjy1--markov-lesson-states-and-transitions.md @@ -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- 3–5 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