Session 9: Milestone project work day 2 + demo day
Phase 4 — Intermediate Python · Session 9 of 9
What we’re learning today
Today is the last session of Phase 4. You’ll spend the first half finishing your project — fixing bugs, adding the last features, making sure your tests pass. Then you’ll demo to the class. By the end, you’ll have shipped your fourth milestone project, this one with multi-file structure, Git history, and (hopefully) tests. You’re ready for Phase 5.
You’ll need to remember from last time
- Your project plan from last week.
- Whatever you got working last week.
- Your buddy for testing.
- Git — commit your final changes today.
Part A: Final polish
You have about 30 minutes to finish.
What “finished” means
Same three rules as always:
- It runs without crashing under normal use.
- It does what your plan said it would do — at least the simplest version.
- You can explain how it works.
If your project doesn’t meet all three, focus on getting there before adding anything new.
Polish ideas (Phase 4 specific)
- Run your tests. Make sure they all pass.
- Add a test or two for anything critical that doesn’t have one.
- Clean up your commit messages. Look at your
git log. Are the messages clear? They don’t have to be perfect, but they should describe what changed. - Make sure all your files are committed.
git statusshould say “working tree clean” before the demo. - Add a README — a
README.mdfile with one paragraph about what your project does and how to run it. Every real project has one.
Buddy test
About 15 min in, swap with your buddy. They use your program for a few minutes; you use theirs. Notice and report.
Checkpoint: Your project runs the basic version of
what you planned, and your git log shows the journey of
how you built it. This is the natural stop point if
class is cut short — but today, demo time is next.
Part B: Demo day
Each person gets 3-5 minutes. Same format as before, plus a Phase 4 twist: show your Git log.
How a demo works
When it’s your turn:
- Show your project. Run it. Use it.
- Tell us about it. What is it? What does it do?
- Show your Git log. Run
git log --oneline. Walk us through how the project came together — what was the first commit? What was the last? What was a turning point? - Tell us one thing that was hard. Bug stories, design decisions, things that took longer than expected.
- Take one question.
The Git log section is new. Your project’s history is part of the project. Showing how you got here matters as much as what you got to.
After everyone demos
Mr. Eric will say a few specific things about each project. Then we’re done — Phase 4 is complete.
What you accomplished
- You shipped your fourth milestone project. Most adults have shipped zero. You’re at four.
- You used multi-file structure — your project is organized like real software.
- You used Git from day one — you have a real version history of your work.
- (If you wrote tests) You verified your code with automated tests.
- You finished Phase 4. The professional toolkit is yours.
What’s next: Phase 5 — customtkinter (desktop apps)
Phase 5 is a shorter, focused phase: building desktop apps with windows, buttons, forms, and other widgets.
What’s different:
- Visual again. Phase 4 was all text. Phase 5 you’ll build apps with actual user interfaces — windows, buttons, text inputs, layouts.
- Heavy class use. Every widget is a class. Phase 4’s light classes intro becomes daily practice.
- A new library:
customtkinter— a modern Python GUI toolkit. Looks much nicer than the old standard (tkinter); same mental model.
After Phase 5, you’ll have built apps that look like real software — apps you could install on someone else’s computer and they’d know how to use.
Bring your machine and your enthusiasm. See you in Phase 5.
If you missed this session
Two cases:
Missed only the demo half: Show your project to Mr. Eric at the start of next week’s class. Same kind of feedback you’d have gotten in the demo.
Missed the whole session: No big deal. Finish your project at home using your Session 8 plan, and bring it next week. Or just join us in Phase 5 — you’ve already shipped enough this phase to be proud.
Stretch and extension ideas
If you have time after demos:
- Polish more. Add features, more tests, better error messages.
- Build a
requirements.txt— a file listing any external Python packages your project needs. (Phase 4 projects mostly don’t need this since we used stdlib only, but it’s a real-project file.) - Write a longer README — installation instructions, examples, future ideas.
- Save your project file. You’ll want them all later.
What’s next
Phase 5 — customtkinter (desktop apps with real windows). See you there.