IB DP Computer Science · Java
IB DP Computer Science · Python
Programming Companion
A practical reference for learning programming techniques, studying worked examples, choosing a challenge and submitting completed work to a personal GitHub portfolio.
Learn a technique
Read a focused explanation, inspect Java examples and check common mistakes before beginning a challenge.
Read a focused explanation, inspect Python examples and check common mistakes before beginning a challenge.
Choose a challenge
Each page offers independent tasks with an approximate Code heat. Optional extensions are labelled rather than placed in compulsory chains.
Build a portfolio
The site generates operating-system-specific commands to create the correct folder, README, commit and GitHub push.
Start here
1. Set up your portfolio
Create one private GitHub repository and optionally invite your teacher as a read-only collaborator.
2. Choose a technique
Work through the explanation, then select one challenge that matches your current confidence.
3. Check coverage
See which IB standards are covered through programming and which are intentionally taught separately.
Programming foundations
The labels use official IB standard codes so teachers can move directly from a weekly scope-and-sequence entry to the relevant explanation and challenge set.
Continue to the programming foundations checkpoint →
Object-oriented programming
The shared SL/HL OOP sequence moves from evaluating the paradigm to constructing objects, distinguishing member ownership and protecting valid state.
Higher-level object-oriented programming
The HL sequence begins with inheritance: establishing defensible parent–child relationships, reusing behaviour and applying Java access rules accurately.
The HL sequence begins with inheritance: establishing defensible parent–child relationships, reusing behaviour and comparing Python conventions with the access rules named by the syllabus.