Programming Companion
Java

Programming foundations checkpoint

Checkpoint challenges

This is a pacing and progress-check stage before object-oriented programming. The larger challenges are optional: students who are secure can extend themselves while others revisit unfinished techniques and strengthen weaker areas.

End of the programming foundations section

The separate checkpoint exam is completed in class and is not published on this site.

Secure and ready

Choose one larger challenge that combines several techniques and complete it independently.

Still consolidating

Return to incomplete or weaker foundation challenges instead of starting a larger task too early.

Checkpoint exam

Completed separately in class.

Before starting: read the standards and task carefully, identify inputs and outputs, and split the problem into smaller methods before writing the full program.
Before starting: read the standards and task carefully, identify inputs and outputs, and split the problem into smaller functions before writing the full program.
Challenges Choose one

Choose a challenge that feels appropriate for you. Code heat is only a rough estimate, not a fixed level.

Change Calculator

Challenge ID: PC-X01 · Standards: B2.3.2, B2.3.3

Write a program that outputs change using the lowest possible number of standard UK coins: 200p, 100p, 50p, 20p, 10p, 5p, 2p and 1p. Work entirely in pence to avoid decimal rounding errors. For example, 367p can be dispensed as 200p, 100p, 50p, 10p, 5p and 2p.

Blackjack

Challenge ID: PC-X02 · Standards: B2.2.2, B2.3.2, B2.3.3, B2.3.4

Create a game of Blackjack between the player and computer. Store each hand in an array or ArrayList. Deal two cards to each side, allow the player to twist or stick, make the dealer draw below 16, treat picture cards as 10 and handle an ace as 1 or 11. The closest valid total to 21 wins. Separate card generation, hand value and turn logic into methods.

A simple educational card-game illustration with cards and a total approaching 21.

National Lottery Simulation

Challenge ID: PC-X03 · Standards: B2.2.2, B2.3.3, B2.3.4

Allow a player to choose six unique numbers from 1 to 59. Generate six unique winning numbers and a bonus ball, then report the matches. Extend the program to simulate many draws and count how often each match category occurs. Do not claim that a small simulation proves the exact theoretical odds.

Numbered balls emerging from a transparent lottery machine.

London Underground Letter Filter

Challenge ID: PC-X04 · Standards: B2.1.2, B2.2.2, B2.3.3

Store a supplied list of London Underground station names. Ask the user for a word and find every station that can be written without using any letter contained in that word. Ignore spaces, punctuation and letter case, and explain the matching rule clearly.

Mayan Calendar

Challenge ID: PC-X05 · Standards: B2.1.1, B2.3.1, B2.3.4

Use the Mayan long-count units: 20 kin in a uinal, 18 uinal in a tun, 20 tun in a katun and 20 katun in a baktun. Build methods that convert a long-count date into a total number of days and convert a total back into baktun, katun, tun, uinal and kin. Use a teacher-supplied reference date for conversion to a modern calendar date.

Advanced Expression Parser

Challenge ID: PC-X06 · Standards: B2.1.2, B2.1.3, B2.3.2, B2.3.4

Extend the expression parser so it accepts spaces, signed numbers and decimal operands while still supporting +, -, * and /. Separate token extraction, validation and calculation into methods. Report the location or cause of malformed input without crashing.