|
| 1 | +# Beginning Python — Project Instructions |
| 2 | + |
| 3 | +## Core Teaching Philosophy |
| 4 | + |
| 5 | +**The primary teaching tool in Chapters 1–18 is inline interactive turtle graphics powered by Skulpt.** |
| 6 | + |
| 7 | +Every lesson in the early chapters must include at least one Skulpt lab where the student can: |
| 8 | +1. **Read** a short, working Python program |
| 9 | +2. **Run** it instantly in the browser (no install, no account) |
| 10 | +3. **Modify** it — change a number, a color, a direction — and run it again |
| 11 | + |
| 12 | +This "see it, run it, modify it" cycle is the heartbeat of this textbook. It is what separates |
| 13 | +it from a static reference and makes it usable in coding club or classroom setting. |
| 14 | + |
| 15 | +### Predict Before You Run |
| 16 | + |
| 17 | +Before every Skulpt lab, ask the student to **predict what the program will do** before |
| 18 | +clicking Run. This one habit — pausing to reason through code before executing it — is |
| 19 | +one of the most valuable skills a beginning programmer can build. |
| 20 | + |
| 21 | +Monty frames the prediction using `mascot-thinking`: |
| 22 | + |
| 23 | +```markdown |
| 24 | +!!! mascot-thinking "What Do You Think Will Happen?" |
| 25 | + { class="mascot-admonition-img" } |
| 26 | + Before you click Run, look at the program below. |
| 27 | + How many sides do you think the turtle will draw? |
| 28 | + Make your guess, then run it to find out! |
| 29 | +``` |
| 30 | + |
| 31 | +**Rules for prediction prompts:** |
| 32 | +- Ask one specific, answerable question (shape drawn, number of lines printed, color used, how many times the loop repeats, etc.) — not an open-ended "what happens?" |
| 33 | +- Place the `mascot-thinking` prediction prompt **immediately above** the Skulpt lab block, before the student can run the code |
| 34 | +- After the lab, add a brief "Were you right?" sentence in prose to close the loop — no second admonition needed |
| 35 | +- Keep the prediction question at a difficulty level where roughly half the students will guess correctly on their first try — too easy builds no habit, too hard discourages guessing |
| 36 | + |
| 37 | +### Learning Checks |
| 38 | + |
| 39 | +For every important concept, include at least one **Learning Check** — a Skulpt lab where: |
| 40 | +- The program is **almost complete** but is missing one key line the student must add, OR |
| 41 | +- The program contains a **small, deliberate bug** the student must find and fix |
| 42 | + |
| 43 | +Learning checks should be clearly labeled and framed by Monty so students know they are being |
| 44 | +asked to think, not just read. Use `mascot-thinking` for "add the missing line" challenges and |
| 45 | +`mascot-warning` for "find the bug" challenges. |
| 46 | + |
| 47 | +**Learning Check format:** |
| 48 | +```markdown |
| 49 | +!!! mascot-thinking "Your Turn — Add the Missing Line" |
| 50 | + { class="mascot-admonition-img" } |
| 51 | + The program below draws three sides of a square but stops short. |
| 52 | + Add **one line** to make it draw the fourth side and complete the shape! |
| 53 | +``` |
| 54 | + |
| 55 | +Followed immediately by a Skulpt lab whose textarea contains the incomplete or buggy program. |
| 56 | + |
| 57 | +## Content Generation Guidelines |
| 58 | + |
| 59 | +**Read `CONTENT-GENERATION-GUIDELINES.md` before generating any student-facing content.** |
| 60 | + |
| 61 | +That file is the authoritative source for: |
| 62 | +- Monty the Python mascot usage (admonition types, image paths, placement rules, hard limits) |
| 63 | +- Skulpt lab HTML block structure and required element IDs |
| 64 | +- General writing style (audience ages 10–14, post-Scratch, encouraging tone) |
| 65 | + |
| 66 | +Key rules to keep in mind at all times: |
| 67 | + |
| 68 | +- **Mascot max 6 admonitions per lesson** — never back-to-back |
| 69 | +- **Always open with `mascot-welcome`** and **close with `mascot-celebration`** |
| 70 | +- **Image path depth matters**: chapters live two levels deep → use `../../img/mascot/` |
| 71 | +- **Never use `<img>` tags** — always `{ class="mascot-admonition-img" }` |
| 72 | +- **Skulpt element IDs are fixed** — `skulpt.js` depends on them; do not rename them |
| 73 | +- Instructor-facing content (teachers' guide, course description) does NOT use the mascot |
| 74 | + |
| 75 | +## Chapter Structure |
| 76 | + |
| 77 | +38 chapters covering 450 concepts, all validated with 0 dependency violations. |
| 78 | +Chapter files live in `docs/chapters/##-slug/index.md`. |
| 79 | +The chapter concept assignment is the source of truth for which concepts belong where. |
| 80 | + |
| 81 | +## MkDocs |
| 82 | + |
| 83 | +- Do NOT add `- navigation.tabs` to mkdocs.yml. |
| 84 | +- Do not start or kill `mkdocs serve` — the user runs it in their own terminal. |
0 commit comments