Educate in CS
For students, teachers, and self-learners.
Whether you're just starting out or brushing up on a tricky topic, you're in the right place. Free notes, worked examples, and interactive exercises — from how hardware works to writing your first sorting algorithm. Currently aligned with IB CS (2027). Code examples use Java.
The big picture
Every computer does the same four things
It takes input, runs a process, produces output, and saves to storage. You type on a keyboard (input), the CPU runs instructions (process), the screen shows results (output), and files are saved to disk (storage). Every topic on this site zooms into one part of this cycle.
Topics
Pick where you'd like to start
Each topic has notes, worked examples, interactive exercises, and a teacher guide. Organised by the six layers of the IB CS 2027 syllabus, plus cross-cutting topics.
Information Layer
Programming Layer
Java Fundamentals
Variables, data types, operators, Strings, exception handling, debugging.
Programming Constructs
Sequence, selection, iteration, methods — the three building blocks of every program.
Data Structures
1D and 2D arrays, ArrayLists, stacks, queues — choosing the right collection.
Algorithms
Searching, sorting, and Big-O notation — picking the right tool for the job.
OOP & Java
Modelling problems as interacting objects — classes, encapsulation, inheritance, polymorphism.
File Processing
Reading and writing text files in Java — Scanner, BufferedReader, FileWriter.
Abstract Data Types
Building structures from scratch — linked lists, stacks, queues, BSTs, hash tables.
Operating Systems Layer
Communication Layer
IB CS Assessments
Internal Assessment
The 30-mark IB CS project — criteria, planning, development, evaluation.
Case Study
HL Paper 3 — the annual case study, applied concepts, and structured response strategies.
CS Extended Essay
A 4,000-word independent research essay in computer science — choosing a topic, framing a question, evaluating sources.
What you'll find on each page
Five ways to practise
Multiple choice
Pick the right answer; see why each option is or isn't correct.
Trace tables
Step through code line-by-line; fill in variable values; check each row.
Code completion
Fill the blanks in a method or loop until the code works.
Spot the bug
Find the broken line; pick the fix that makes the test pass.
Predict output
Read the code, write what it prints, hit check.
And on every content page
More than just quizzes
- Key Conceptsclear explanations with precise terminology
- Worked Examplesstep-by-step solutions
- Practice ExercisesCore, Extension, and Challenge levels
- Glossary Tooltipshover over highlighted terms for a quick definition
- Connectionsprerequisites and related topics to explore next
- GitHub Classroomprogramming pages include assignments with automated tests