Programming Companion
Java

Curriculum map

Standards coverage

This table distinguishes content taught through the practical programming companion from standards taught separately through tracing, physical modelling, visualisation or later HL work.

Language selection: Java and Python cover the same standard-level intent, while the pages change syntax, libraries, scaffolds and language-specific explanations.
IB standardFocusExplained hereChallenge evidenceNotes
B1.1.1Construct a problem specificationEmbeddedPartialChallenge tasks provide specifications; student-authored specifications will be strengthened later.
B1.1.2–B1.1.3Computational-thinking concepts and applicationEmbeddedPartialUsed through decomposition, pattern recognition and modular design.
B1.1.4Trace flowchartsSeparateNoTaught separately through tracing activities.
B2.1.1Variables, scope and data typesYesYesVariables, input, arithmetic and functions pages.
B2.1.2Substring extraction and manipulationYesYesString manipulation page.
B2.1.3Exception-handling techniquesYesYesDebugging and exceptions page.
B2.1.4Debugging techniquesYesYesTrace, breakpoint, print and step-execution evidence.
B2.2.1Static and dynamic data structuresYesYesFixed-capacity and dynamic collection behaviour compared in the selected language.
B2.2.2Arrays and listsYesYes1D, 2D and dynamic collection examples.
B2.2.3Stacks and LIFOYesYesOperations, traces, qualitative impact, safety and suitability.
B2.2.4Queues and FIFOYesYesOperations, traces, qualitative impact, safety and suitability.
B2.3.1Sequence of instructionsYesYesSequence and output page.
B2.3.2Selection structuresYesYesSelection page.
B2.3.3Looping structuresYesYesCounted and conditional loop pages.
B2.3.4Functions and modularisationYesYesParameters, returns, scope and reusable blocks.
B2.4.1Big O notationSeparateNoTaught separately with cards, traces and visual models.
B2.4.2Linear and binary searchSeparateNoDedicated algorithm lesson rather than a project challenge.
B2.4.3Bubble and selection sortSeparateNoDedicated algorithm lesson rather than a project challenge.
B2.4.4–B2.4.5Recursion (HL)FutureNoNot present in the old programming companion.
B2.5.1File-processing operationsYesYesRead, write, append and reliable closure.
B3.1.1Evaluate OOP fundamentalsYesYesBalanced scenario judgement rather than universal advocacy.
B3.1.2Design classes, methods and behaviourYesYesRequirement-led UML and matching class designs.
B3.1.3Class-owned and instance-owned membersYesYesOwnership, scope and suitability are implemented with the selected language model.
B3.1.4Define classes and instantiate objectsYesYesInitialisation, objects, receivers and independent instance state.
B3.1.5Encapsulation and information hidingYesYesControlled state, deliberate interfaces and valid-state protection; Python differences are explicit.
B3.2.1Inheritance and code reusability (HL)YesYesParent–child hierarchies, parent initialisation, access impact and is-a judgement.
B3.2.2–B3.2.5Remaining multiple-class OOP (HL)FutureNoPolymorphism, abstraction, composition, aggregation and design patterns.
B4.1.1–B4.1.6Abstract data types (HL)SeparateNoOutside the current practical companion; taught as a later HL extension.
Boundary: Big O, searching and sorting remain visible in the standards map but are intentionally not turned into ordinary project challenges. B3.2.1 inheritance is available; B3.2.2–B3.2.5 remain later work.