diff --git a/edu/.nbd/tickets/257a2a.md b/edu/.nbd/tickets/257a2a.md new file mode 100644 index 0000000..3e73730 --- /dev/null +++ b/edu/.nbd/tickets/257a2a.md @@ -0,0 +1,8 @@ ++++ +title = "Markov exercise: Weather Model (Rust)" +priority = 7 +status = "archived" +ticket_type = "task" +dependencies = [] ++++ +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 \ No newline at end of file diff --git a/edu/.nbd/tickets/44ebe7.md b/edu/.nbd/tickets/44ebe7.md new file mode 100644 index 0000000..23e330b --- /dev/null +++ b/edu/.nbd/tickets/44ebe7.md @@ -0,0 +1,8 @@ ++++ +title = "Markov lesson: Transition Probabilities and Matrices" +priority = 7 +status = "done" +ticket_type = "task" +dependencies = [] ++++ +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 \ No newline at end of file diff --git a/edu/.nbd/tickets/738be2.md b/edu/.nbd/tickets/738be2.md new file mode 100644 index 0000000..625beee --- /dev/null +++ b/edu/.nbd/tickets/738be2.md @@ -0,0 +1,8 @@ ++++ +title = "Markov lesson: States and Transitions" +priority = 7 +status = "done" +ticket_type = "task" +dependencies = [] ++++ +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 \ No newline at end of file diff --git a/edu/.nbd/tickets/74be50.md b/edu/.nbd/tickets/74be50.md new file mode 100644 index 0000000..baecd36 --- /dev/null +++ b/edu/.nbd/tickets/74be50.md @@ -0,0 +1,8 @@ ++++ +title = "Markov exercise: Bigram Text Generator (Rust)" +priority = 7 +status = "done" +ticket_type = "task" +dependencies = [] ++++ +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 \ No newline at end of file diff --git a/edu/.nbd/tickets/92a829.md b/edu/.nbd/tickets/92a829.md new file mode 100644 index 0000000..b99f8f5 --- /dev/null +++ b/edu/.nbd/tickets/92a829.md @@ -0,0 +1,8 @@ ++++ +title = "Markov lesson: Text Generation with Markov Chains" +priority = 7 +status = "done" +ticket_type = "task" +dependencies = [] ++++ +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 \ No newline at end of file diff --git a/edu/.nbd/tickets/fb7f74.md b/edu/.nbd/tickets/fb7f74.md new file mode 100644 index 0000000..a5fc795 --- /dev/null +++ b/edu/.nbd/tickets/fb7f74.md @@ -0,0 +1,8 @@ ++++ +title = "markov" +priority = 7 +status = "done" +ticket_type = "project" +dependencies = ["fbf323", "738be2", "44ebe7", "257a2a", "64826a", "92a829", "74be50", "1f995a", "68ee16", "5994a6"] ++++ +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 \ No newline at end of file