Code Companion
Java

IB DP Computer Science · Java

IB DP Computer Science · Python

Code Companion

A teachable programming sequence: learn and check the technique, inspect worked examples, design a solution, handwrite pseudocode, complete a challenge and submit finished code to a personal GitHub portfolio.

Learn and check

Work through the explanation needed for the standard, reason about Java examples and use short understanding checks where the concept needs them.

Work through the explanation needed for the standard, reason about Python examples and use short understanding checks where the concept needs them.

Choose and plan

Choose a challenge with an appropriate Code heat, then handwrite your pseudocode on paper before opening the IDE. Give the paper to your teacher when asked.

Build a portfolio

The site generates operating-system-specific commands to create the correct folder, README, commit and GitHub push. The handwritten pseudocode is not uploaded to the site or portfolio.

Start here

1. Set up your portfolio

Create one private GitHub repository and optionally invite your teacher as a read-only collaborator.

Portfolio setup

2. Learn a technique

Work through the teaching material that the standard needs, then select one challenge and handwrite your pseudocode before coding.

Begin with sequence

3. Check coverage

See which IB standards are covered through programming and which remain separate classroom or later HL work.

Standards coverage

At each checkpoint: students who have finished the section techniques can choose an Additional challenge while classmates catch up or consolidate. The actual checkpoint exam is a separate teacher-controlled classroom assessment and is not published on this site.

Programming foundations

The first section builds the programming language and control-flow foundation: sequence, variables, strings, arithmetic, selection, loops, functions, debugging and exceptions. After debugging and exceptions, students who are ready can move into optional additional challenges while others use the same time to catch up. The final checkpoint exam is completed separately in class.

Data, files and algorithms

The second section develops collection choice, stacks and queues, algorithm efficiency, searching, sorting and sequential text-file processing. Recursion is an HL-only extension inside this broader programming section. The additional-challenge stage gives secure students larger synthesis work while the teacher supports students who still need technique practice; the controlled checkpoint exam remains offline.

Object-oriented programming

The shared SL/HL OOP section provides the complete teaching flow on-site: problem-first explanations, vocabulary, UML and code models, understanding checks and independent challenges. Once B3.1.1–B3.1.5 are complete, additional synthesis challenges are available without importing HL-only inheritance or polymorphism. The SL checkpoint exam itself is teacher-controlled and completed in class.

Higher-level object-oriented programming

The HL OOP section covers inheritance, runtime polymorphism, abstraction, whole–part relationships and Singleton, Factory and Observer. Additional challenges ask students who are ready to combine those ideas through justified UML and code while other students consolidate individual techniques. The final HL OOP checkpoint exam is separate and teacher-controlled.

The HL OOP section covers inheritance, runtime polymorphism, abstraction, whole–part relationships and Singleton, Factory and Observer. Additional challenges ask students who are ready to combine those ideas through justified UML and code while other students consolidate individual techniques. The final HL OOP checkpoint exam is separate and teacher-controlled.

Checkpoint pattern: technique work → optional additional challenges for students who are ready / catch-up time for students who are not → final checkpoint exam run separately by the teacher in class.