Educate in CS

For students, fellow educators, or self-learners.

Explore how computers work, learn to program, and connect the ideas, with notes and practice currently aligned with IB Computer Science.

Code examples in Java and Python
163
topic pages
5
quiz formats
Free
forever, no signup

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.

INPUT PROCESS CPU OUTPUT > sort([5,2,8,1]) [1, 2, 5, 8] STORAGE 01001100 11010010

Topics

Pick where you'd like to start

Each topic has notes, worked examples, and interactive exercises; most also have a teacher guide, with more being added. Organised by the six layers of the IB Computer Science syllabus, plus cross-cutting topics.

Practise as you learn

Five ways to practise

✓ Adjacent elements
First and last

Multiple choice

Choose an answer and read the explanation.

i   j   arr[j]
0   0   5
0   1   _

Trace tables

Follow the code line by line and record how the variables change.

for (int i = 0;
     i < n;
     i__) {

Code completion

Fill the blanks in a method or loop until the code works.

for (int i = 0; i <=
   arr.length; i++)
  sum += arr[i];

Spot the bug

Find the error and choose the correction.

x = 5
x *= 2
print(x)
→ 10

Predict output

Read the code, predict its output and check your answer.

Study tools

Tools for studying

  • Key Conceptsclear explanations with precise terminology
  • Worked Examplesstep-by-step solutions
  • Practice ExercisesCore, Extension, and Challenge levels
  • Glossary Tooltipshover over or tap a highlighted term for its definition
  • Connectionsprerequisites and related topics to explore next
  • GitHub Classroomprogramming assignments with automated tests
  • My Progresskeep track of reviewed pages and quiz scores in this browser on My Progress
  • Works Offlineinstall the site as an app; pages you have visited stay readable without a connection

© EduCS.me. A resource hub for Computer Science education. EduCS is an independent educational resource. It is not affiliated with, or endorsed by, the International Baccalaureate Organization.

This site uses Just the Docs, a documentation theme for Jekyll.