Course structure at a glance
Our seasonal intensives are designed as a connected sequence. A student progresses through DP1 Summer → DP1 Winter → DP2 Summer → DP2 Winter, with theory, coding and exam practice running together in every term.
Term | DP1 (Year 1) | DP2 (Year 2) |
Summer | A1 Computer Fundamentals + A2 Networks (theory) — taught alongside B1 Computational Thinking and the first steps of programming. Students set up their development environment and begin writing real Java: variables, commands, control flow, loops and basic data structures. | A3 Databases + A4 Machine Learning — the remaining theory topics, building on a full year of coding experience. |
Winter | Focus heavily on B3 Object-Oriented Programming (encapsulation, inheritance, polymorphism) and B4 Abstract Data Types (HL). This term is coding-intensive: students implement OOP and ADTs themselves in Java, not just study them in theory. | B2 Programming (everything not yet covered) plus full exam preparation: pseudocode, tracing and trace tables, key definitions, JETS algorithms, and past-paper practice — the entire course condensed and exam-focused. |
Note on levels: Abstract Data Types (B4) and OOP for multiple classes (B3.2) are HL-only. SL students follow the same approach with the HL-only depth removed.
Learning points
1.
You leave able to actually code. Every student writes, runs and debugs real Java — not just studies it on paper.
2.
No prior experience needed. We start from zero and build every skill from the ground up.
3.
Theory, coding and exam technique, every term. The three are taught together, the way they are actually tested.
4.
Exam skills the syllabus skips. Pseudocode, trace tables, key definitions and JETS algorithms — practised directly with past papers.
5.
Learning through real errors. Students debug their own mistakes in class, which is how understanding actually sticks.
What makes our approach different
We built this course to ensure learning three things happen in parallel throughout every term:
1. Concepts & theory. We work systematically through the IB syllabus so students build a complete, structured understanding of how computer systems work — divided sensibly across the summer and winter terms so the load is balanced.
2. Hands-on coding, from the very first class. While students learn each concept, they also learn to implement it. Students bring their laptops, install the tools they need, and write real code in class — commands, control structures, loops, data structures, variables. We deliberately let them encounter and fix their own errors (for example, mixing two incompatible data types). A student who has personally seen an error appear, and worked out why, will never forget why it matters. A student who has only read about it will.
3. Exam technique. Several skills the IB tests are not taught explicitly in the syllabus — things like writing pseudocode, drawing trace tables, the precise definitions examiners look for, and the standard algorithms in the IB's JETS (Java Examination Tool Subset). We practise these directly using past-paper questions so students know exactly what is being asked and how to answer it.
In short: theory, real coding, and exam technique — woven together, every term. Not theory now and coding "later".
Java: starting from zero
Your child does not need any prior coding experience. A question we hear constantly from parents is "my child has never written Java — is that a problem?" It is not. The course starts from the very beginning and teaches every command, every structure, and every piece of syntax needed to use Java confidently.
Why Java and not Python? Python is easier to start with, but it makes the advanced concepts that the IB tests — especially object-oriented programming and abstract data types — harder to learn properly. Java forces the concepts to be explicit, which is exactly what students need for the HL exam. Java is also the language the IB uses in its own exam code.
Homework & assessment in our classes
Homework comes in two forms. Theory homework reinforces the concepts covered in class. Coding homework gives students short, concrete programming tasks — for example, "write a loop that adds a number 100 times" — so that the coding muscle is exercised between every lesson.
End-of-class tests are tailored to where the student is in the course:
•
Rising DP1 students are given short, achievable coding tasks — write a simple algorithm or a short program — rather than full exam-length questions. The goal is confidence and competence.
•
Exam-preparing DP2 students work through real past-paper questions, including the longer code-reading and code-writing problems that appear on the IB exam.
We draw on our internal question banks of Java and theory problems to match each test to the student's level.

.jpg&blockId=2950e466-bde2-4a6b-82d2-196d8d47bbea)

