Unit 3 — Choice Project 2: Data & Structures
Your app will hold real data, save it to a file, and still have it the next time you open it. You'll pick one app from the menu, build it, then respond to a change request from a classmate, the way real clients do.
What You're Building
Everyone picks one app from this menu. Each one is a console program that stores a list of records, saves them, and loads them back.
Inventory system
- Items with name, quantity and price
- Add, remove, restock
- Low-stock warning
Gradebook
- Students and their scores
- Average per student
- Class average
Game leaderboard
- Player names and scores
- Keep the top 10
- Sort and save between sessions
Budget tracker
- Income and expenses
- Totals by category
- Save and reload each month
Each one keeps its records in a collection, with each record stored under a unique key (a dictionary in Python), saves them to a file, and loads them back when the program starts. Your language's name for these things is up to you.
What You'll Learn First
Core and Extended students do these four short lessons first, one for each skill the project needs. Transfer students skip them and show the same skills directly, in their own language.
The Feature Request
Partway through Week 2, a classmate plays client and hands you a change request you didn't see coming. You triage it in writing (accept, defer or decline), then build it if you accept.
Checkpoints
Same rhythm as Unit 2: three checkpoints, one at the end of each week. Every track uses these.
| Checkpoint | What's in your repo |
|---|---|
| CP1 — Pitch, data sketch and plan | README pitch; a data sketch (what one record looks like and how you'll save it); pseudocode |
| CP2 — Working build with save and load | Menu runs; data saves and loads; test table written |
| CP3 — Tested build, feature request and share | Tests run and recorded; feature request response in the README; shown to one peer |
CP1: Pitch and data sketch done, as you did in Unit 2.Find Your Track
Everyone builds an app from the same menu and hits the same checkpoints. Your track sets how high the technical bar is and which language you build in.
Core
You're comfortable with lists, conditionals and functions, and want to build a working app with data saved to a file. Written in Python.
Go to CoreExtended
You want to organize a bigger program across files, use Python's built-in data tools, and take on the full version of the change request. Written in Python.
Go to ExtendedTransfer
You already write programs in another language. Skip the lessons, build the app in that language, and show the same skills through a project and a concept file.
Go to TransferYour teacher will recommend a track based on Unit 2. Think you're ready for a different one? Bring evidence from your Unit 2 work and pitch it. Transfer students use a language from the approved list on the 2C page.
How You're Assessed
Same course rubric as every project, with the same 5 criteria. Your track sets the bar for the technical part, and the criteria are the same on every track.
At each checkpoint, your teacher will call you up to go over your work one-on-one, so commit and push before each one.