Unit 1 — Your Language Track
Learn the Unit 1 basics in one of the approved languages, and build the adventure game in it.
This Track Is for You If…
- You already have some programming experience, and you want to learn these basics in an approved language instead of Python.
- You already know Python and want to learn in another language. You don't need the Python lessons, but you still show every concept below in your language.
Python is the starting point for new students to coding, so Core is the default route. This track is for students with some experience who want a different language. It has the same concepts, the same game and the same checkpoints as Core. Only the language and the path into the concepts are different.
Check Before You Choose
Without notes, and in the language you'd build in, can you do these? It isn't graded. It helps you and your teacher see where to start.
- Print a message, and read something the user types in.
- Make a choice with an if/else.
- Repeat something until a condition changes.
- Write a function that takes an input and returns a result.
- Keep a list, add to it, and loop over it.
If you can do all five quickly, you'll move through the concept list fast. If not, you'll spend more time on it. Either way you finish the same project, so start here and let your teacher know which route fits.
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'll Learn
These are the concepts this track needs. Each one must appear in your game and in your concept log, with a note on how your language writes it.
- Variables and data types
- Input and output
- Operators and expressions
- Conditionals
- Loops
- Functions
- Lists
- Strings
- Debugging: finding and fixing a planted bug in your own game
There are no Python lessons on this track. Use your language's official documentation and your own practice to learn each concept, then show it in your game.
What You'll Build
The same text adventure game as Core, across three projects. Your language, your code, your names. Each project page lists the goals it must show in any language.
- 1A — Character and first choice. The player creates a character and makes one choice.
- 1B — A multi-room adventure loop. The player moves between rooms until they win or quit.
- 1C — Inventory and debugging. Items can be picked up and used, and you find and fix planted bugs in your own game.
Common Parameters (any language, any project)
These apply to all three projects, and to any simple project you build in your language. They're the same whichever language you pick, so your teacher can check any project the same way.
- Language: one from the approved list on the 2C page.
- Folder: your project files go in
1_foundations/adventure_game, with a main file and aREADME.mdbeside it. - Concept log: one row per concept the project uses, in the README: how your language writes it, and what surprised you.
- Run check: run the project from start to finish at least twice, making different choices each time. Write down what happened in the README.
- Documentation: someone who has never seen your code should be able to run it and understand what each part does from your comments and README.
- Commits: commit when the project runs, with the checkpoint prefix (
CP1:,CP2:,CP3:). Push before your one-on-one. - Assessment: the same Unit 1 rubric as Core.
Simple project instead? If you'd rather build a small tool than the adventure game, it still needs these parameters and the goals on each project page. Agree the idea with your teacher first.
Concept Log
In your README, keep one row for each concept above. Use the same format as 2C: how your language writes it, and what surprised you. Start it at CP1, and add to it as you go.
| Concept | How I write it | What surprised me |
|---|---|---|
| Loop until a condition changes | while (!won) { |
The condition is checked before each pass, so a bad starting value can skip the loop entirely |
Checkpoints on This Track
| Checkpoint | What it looks like on this track |
|---|---|
| CP1 | Pitch names the language; hello world running in your language, committed; project 1A running with one choice; concept log started |
| CP2 | Project 1B running, with the rooms and the loop working; concept log has at least 5 rows |
| CP3 | Project 1C running with inventory; planted bug found and fixed, with a short record of how; concept log complete |
Start each checkpoint commit with CP1:, CP2: or CP3:, and push before your teacher calls you up.
How You're Assessed
The same Unit 1 evaluation as Core: the rubric, a scored Unit 1 mark, and a short self-check before your one-on-one. Work you've finished counts, even when some of the project is still unfinished.
After This Unit
Your teacher will help you choose your Unit 2 level, using your Unit 1 work and your concept log. Ask about it at CP2 of this unit, so the choice is settled before Unit 2 starts.
Done Looks Like…
Someone can play your game from start to finish. Your concept log shows where each concept is in your code and how your language writes it.