2A — Build It

Put everything from Unit 1 together into one complete program you designed.

This Level Is for You If…

  • Unit 1 was your first real time programming, in Python or in another approved language.
  • You can write loops, conditionals and functions in your language.
  • You haven't built a whole program from your own idea yet.

What You'll Build

A console program from the problem menu: a calculator-type tool, a quiz engine, or a simple tracker. You decide what it does and who it's for. It runs in the terminal, takes input, and gives useful output.

Requirements Checklist

Your finished project must include all of these. (Ticking the boxes is just for you, it doesn't save.)

Need a head start?

Try building from a blank file first, then use the pseudocode example below as your plan. If you're writing in Python and get stuck, grab the Python starter for your problem type. Each one has a menu loop that already works, plus empty functions with comments saying what each should do. Look for the # TODO markers.

Download starter_calculator.py Download starter_quiz.py Download starter_tracker.py

The starters are Python only. If you're writing in another language, use the blank-file route. Save your main file into your Unit 2 project folder, and commit it before you change anything, so your history shows what was the starting point and what's yours.

On AI and tutorials: web tutorials and Copilot are fine to use, as long as your AI Collaboration section records what came from them. When your teacher calls you up, you should be able to explain every function in your program.

Checkpoints at 2A

CheckpointWhat it looks like at 2A
CP1 README pitch filled in using the template prompts; pseudocode for your main menu and each function
CP2 Menu runs and at least two features work; test table written with expected results filled in
CP3 All tests run with actual results recorded; any failures fixed or explained; shown to a peer

Remember to start each checkpoint commit with CP1:, CP2: or CP3:, and push before your teacher calls you up.

What CP1 pseudocode looks like

Here's a worked example for a small tip calculator. Your own pseudocode should be about this detailed. Notice it's plain English steps, not code with the details taken out. It works the same whatever language you'll write in.

MAIN MENU
  keep repeating until the user picks Quit:
    show the options: 1) Calculate a tip   2) Split the bill   3) Quit
    ask which option they want
    if they pick 1 → run calculate_tip
    if they pick 2 → run split_bill
    if they pick 3 → say goodbye and stop repeating
    anything else  → tell them that's not an option

get_whole_number(message)
  show the message and get what they type
  while what they typed isn't all digits:
    tell them to type a whole number, and ask again
  hand back what they typed, turned into a number

calculate_tip
  bill ← get_whole_number("Bill amount in dollars?")
  percent ← get_whole_number("Tip percent?")
  tip ← bill × percent ÷ 100
  show the tip and the total (bill + tip)

split_bill
  total ← get_whole_number("Total bill in dollars?")
  people ← get_whole_number("How many people?")
  if people is 0 → tell them you can't split between 0 people, and stop
  each ← total ÷ people
  show how much each person pays

When You're Stuck

  • Go back to your Unit 1 work. Python students: your practice notebooks in 1_foundations/practice. Other languages: your Unit 1 concept log. Every skill you need for this project is in there.
  • Three before me: check your notes, then ask a neighbour, then ask your teacher.
  • Print-debug: print your variables just before the line that breaks, so you can see what they actually hold. Every language has a way to do this.

Done Looks Like…

Someone who's never seen your program can run it, understand what to do, and can't easily break it. Your README shows what you planned, what you tested, and what you changed along the way.