1Unit 1 · Take your time
First Programs and Values
Storing values and doing arithmetic with them. Java asks you to say what kind of value each variable holds, which feels like extra work for about a week and then starts catching your mistakes for you.
VariableTypeintdoubleWhole-number divisionRemainder
2Unit 2 · Steady
Making Decisions
Teaching a program to choose. The syntax is short; the difficulty is writing conditions that are true exactly when you meant them to be, especially at the edges of a range.
booleanComparisonandornotBranch
Doing something many times without writing it many times. Most early loop bugs are off by exactly one, which is why counting the iterations deliberately matters more than the syntax.
LoopCounterConditionIterationNested loopRunning total
4Unit 4 · Steady
Working With Text
Text that you can look inside but never change. Counting from zero takes some getting used to, and almost every early text bug is a position being one off.
PositionIndexPortionSearchUnchangeableTraversal
5Unit 5 · Heavy
Collections of Values
Holding many values under one name. Arrays are a fixed size; lists grow and shrink. This is also the first place two names can point at the same data, which surprises everyone the first time.
ArrayPositionfor-eachSharingListRemoval
6Unit 6 · Ends the course
Methods and Classes
Breaking a program into named pieces, then grouping data and behavior together into a class. This is the unit that makes larger programs possible rather than merely longer.
MethodParameterReturnClassObjectConstructor