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.

How the feature request works

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
Commit rule: start each checkpoint commit with the checkpoint number, like 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 Core

Extended

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 Extended

Transfer

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 Transfer

Your 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.