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
| Checkpoint | What 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.