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.
2. Learn a technique
Work through the teaching material that the standard needs, then select one challenge and handwrite your pseudocode before coding.
3. Check coverage
See which IB standards are covered through programming and which remain separate classroom or later HL work.
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.