Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

  1. It runs without crashing under normal use.
  2. It does what your plan said it would do — at least the simplest version.
  3. 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 status should say “working tree clean” before the demo.
  • Add a README — a README.md file 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:

  1. Show your project. Run it. Use it.
  2. Tell us about it. What is it? What does it do?
  3. 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?
  4. Tell us one thing that was hard. Bug stories, design decisions, things that took longer than expected.
  5. 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.