Session 8: Milestone project + demo day
Phase 2 — Python with Turtle · Session 8 of 8
What we’re learning today
Today is your day. You’ll plan, build, and demo a Turtle drawing of your own design — your idea, your code, your scene. By the end of class, you’ll have shown your work to the room and finished Phase 2. There’s no new programming concept this week; today is about putting your skills to use on something you chose.
You’ll need to remember from last time
- Everything from Sessions 1-7. Functions, loops, variables, conditionals, all the turtle commands.
- The garden scene you built last week — proof you can make something substantial.
- The idea you (hopefully) brought with you today. (If not, Part A has a list to start from.)
Part A: Plan and start building
Today is structured tighter than Phase 1’s milestone — we have one session for planning, building, and demoing — so we move quickly and you decide what’s important.
The plan
Take a piece of paper or open a blank text file. Answer these four questions about your project. Keep it short — first answers are usually right:
-
What are you drawing? (One sentence. Examples: “A snowy mountain landscape.” “My initials in giant decorated letters.” “A snowflake pattern.”)
-
What functions do you need? (Each function does one thing. Examples:
draw_mountain(),draw_tree(),draw_letter_A(),draw_petal(). Brainstorm 2-5.) -
What will vary? (What are the parameters? Position? Color? Size? List which functions need which parameters.)
-
What’s the simplest version that’s still cool? (If you only had 30 minutes to build, what would you do FIRST? What would you add LATER if there’s time? This is the most important question.)
If you don’t have an idea
Pick one and modify it slightly:
- A snowy mountain landscape — triangles for mountains, small circles for snow, a cabin or tree at the bottom.
- A snowflake — radial symmetry around a center point. Use a function to draw one “arm” and a loop to call it 6 times rotated.
- A name in giant letters — each letter is a function,
drawn with
forward/right/left/ pen control. - A field of flowers like last week, but bigger or with different flower types.
- An abstract pattern — shapes radiating from a center, spirals within spirals, anything geometric.
- A simple animal — a cat, a fish, a bird built from circles and lines.
- Your favorite emoji — recreated in turtle code. You’d be surprised what’s possible.
Pick one. Spend two minutes deciding. Don’t agonize — you can modify the idea while you build.
Show Mr. Eric
When your plan is ready (about 10 minutes in), show it to Mr. Eric. He’ll either say “go build it” or ask one question that helps you tighten it up. Then start building.
Start building — the simplest version first
Look at your answer to question 4. Build that first. Get the simplest version working before adding anything fancy. Real programmers do this — get something runnable as fast as possible, then improve from there.
If you said “the simplest version is just one mountain” — build one mountain. Run it. See it. Then add a second one. Then snow. Then trees.
Don’t try to type the whole project before testing. Build small. Test often. Add piece by piece.
When you get stuck
The same five steps as always:
- Read your code carefully. Did you tell the computer the right thing?
- Read the error message. Most Python errors point at the exact line.
- Look at how you did something similar before. Last week’s garden? Open it for reference.
- Ask your buddy.
- Ask Mr. Eric.
The Getting unstuck appendix has more on this.
Checkpoint: You have a written plan with the four questions answered, Mr. Eric has signed off, and you’ve started building the simplest version. This is the natural stop point if class is cut very short — but for today, we’re going to keep going to the demo half.
Part B: Final polish, then demo
After the break, you have about 15 minutes to finish or polish, then we demo.
Polish (~10-15 min)
Be honest with yourself about what’s done. Three things make a project ready to demo:
- It runs. You can press the green flag and see something without an error.
- It does what your plan said it would do — at least the simplest version (your answer to question 4).
- You can explain how it works. Walk someone through the functions and what they each draw.
If your project doesn’t meet those three, focus on getting it there before adding anything new. A working simple project is way better than a broken ambitious one.
Buddy test (~5 min)
Swap with your buddy. They run your project; you run theirs. Notice:
- Did it run?
- Did the visual surprise them in any way (good or bad)?
- Could they tell what each part of the drawing was?
Tell each other one thing you noticed.
Demos
Each of you demos for 3-5 minutes. Same format as Phase 1 demo day:
- Show your drawing. Run it. Let the class see it appear.
- Tell us about it. What were you trying to make? What functions did you write?
- Tell us one thing that was hard. Honest, not bragging. Maybe the math on a turn angle. Maybe positioning a sprite correctly. Things that broke and how you fixed them.
- Take one question. Someone asks something specific — “how did you make the snowflake?”, “what made you pick those colors?” Answer as best you can.
When it’s not your turn, watch carefully and have one specific question ready when called on. “I really liked X” is nice; “How did you make X?” is better.
After everyone demos
Mr. Eric will say a few specific things about each of your projects. Then we’re done — Phase 2 is complete.
What you accomplished
- You built two programs from scratch in Python this phase: the garden last week, and your own project today. That’s two more than you’d built before Phase 2.
- You learned functions — the most powerful tool for organizing code that we cover in the entire curriculum.
- You typed real Python code, made (and fixed) lots of error messages, and you kept going. That’s what programming is.
- You shipped two milestone projects so far in your programming journey. The Phase 1 game; today’s drawing. Most adults haven’t shipped one creative project ever. You’re at two.
What’s next
Next week starts Phase 3 — Python basics. Real Python beyond the turtle.
What’s different in Phase 3:
- No more turtle. The turtle was great as a bridge — visual, immediate. But real Python programs do all sorts of things that aren’t drawing. We’ll write programs that think with text, numbers, lists of things.
- Strings, lists, files. Programs that talk to you, ask questions, remember things across runs.
- Real-world projects. A number-guessing game. A text adventure. Something that reads a file (your favorite Bible verses, maybe?) and does something useful with it.
- The Thonny debugger. The single most useful Python tool you haven’t met yet. It lets you watch your program run line by line and see exactly what’s happening.
Bring your machine and your brain. We’re going deeper.
If you missed this session
Two cases:
If you missed only the demo half: Show your project to Mr. Eric at the start of next week’s class. He’ll give you the same kind of feedback the demo would have.
If you missed the whole session and don’t have a finished project: No big deal. Pick one of the seed ideas above (or extend last week’s garden), build it at home using everything you know, and bring it next week. Or: just join us in Phase 3 — what you’ve already built is plenty to be proud of.
Stretch and extension ideas
If you have time after the demos and want to keep going:
- Polish your project more. Add details, sounds, more variation.
- Build a second project of a different style. With everything you know now, the second one is faster than the first.
- Show your work to your family. They will be impressed.
- Save your project files. You’ll want to look back at them in a year and be amazed at what you knew at this stage.
What’s next
Phase 3 — Python without the turtle. See you there.