Unit 3 — Transfer Track

Build the Unit 3 app in a language you already know, and show the same skills in it.

This Track Is for You If…

  • You already write programs in a language other than Python, and can do basic work in it without looking up simple syntax.
  • You've done Unit 2 work in that language, or can show your teacher the same evidence they'd look for at 2C.

Transfer skips the four Unit 3 lessons. You're not skipping the concepts. You show them directly, in your language.

Check Before You Choose

About 20 minutes, in the language you'd build in, with no notes. It isn't graded. It helps you and your teacher decide whether Transfer is the right track.

  1. Write a function that takes a list of records (each with a name and a number) and returns the names of the records above a threshold. Store the results in a keyed collection. Test it with one normal case and one empty list.
  2. In two or three sentences, say what your code does with a value that isn't a number. Then say how you'd change it if the input came from a file.

If you can do both, Transfer is a good fit. If not, start on Core and talk to your teacher. Nothing is locked in: you can change tracks before CP1.

Choosing Your Language

Use a language from the approved list on the 2C page. Those are the languages confirmed to work on the lab computers.

Want a language that isn't on the list? Ask your teacher at CP1. A new language gets added once it passes its check on a lab machine.

What You're Building

One app from the Unit 3 menu: inventory system, gradebook, game leaderboard or budget tracker. It's a console program: a menu, input, and a save file. Build it in your language, with the same requirements as Core and Extended.

Requirements Checklist

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

Concept Evidence: CONCEPTS.md

Instead of the four lessons, include a CONCEPTS.md file in your repo. It has one row for each concept below: where it appears in your code, and how it's tested. Your teacher should be able to find every concept in your code in a few minutes.

ConceptWhere it's in my codeHow it's tested
Variables and data types, including one conversion between types
Conditionals
Loops or iteration
Functions with inputs and outputs
An ordered collection
A keyed collection
Input validation and error handling, in your language's style
Saving and loading data
Splitting code into more than one unit (module, file or package)
Running and testing with your language's own tools

Your Language-Specific Concept

Pick one thing your language does differently from Python. Examples: ownership and borrowing in Rust, manual memory and pointers in C++, prototypes in JavaScript, pattern matching, or generics.

Explain it in your README, in your own words, with one piece of your code that shows it. This is the section your one-on-one will focus on.

Checkpoints at Transfer

CheckpointWhat it looks like on this track
CP1 Pitch names the language and why; pseudocode; your language's check command passes on a lab machine, committed; CONCEPTS.md started
CP2 Menu runs with at least two features working; save and load working; test table written with expected results filled in
CP3 All tests run with actual results recorded; CONCEPTS.md complete; language-specific section written; feature request triaged and done (or declined, with a reason); shown to a peer

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

How You're Assessed

The same 5 criteria as every other track. At CP3, your teacher will call you up for a short one-on-one: you'll walk through one function, explain one choice, and change one small thing live.

Done Looks Like…

Someone can run your app, add something, close it, reopen it, and find it still there. Your tests show that, your CONCEPTS.md shows where each concept lives, and your language-specific section shows you understand why your language works the way it does.