Learn computer science

See how the data moves and how the code works.

Read the explanation, compare the Python, C++, and Java implementations, then step through the same example in the animated demonstration.

Choose where to begin

Data Structures and Algorithms begins with storing values and moves into searching and sorting. Operating Systems begins with the role of the OS and follows programs through the kernel, scheduler, and memory manager.

DS
Course

Data Structures and Algorithms

Start with ways to store data, then learn the algorithms used to search, sort, and process it.

Arrays and linked listsStacks, queues, trees, and graphsSorting and searching
Open the course →
OS
Course

Operating Systems

Follow a program from an application request into the kernel, CPU scheduler, and memory system.

OS basics and system typesKernel and system callsProcesses, threads, and memory
Open the course →
How every lesson works

Diagram, code, output, and motion

  • Begin with a labeled visual of the structure or system.
  • Compare equivalent Python, C++, and Java code.
  • Read the input and expected output.
  • Play or step through the animated example.
A useful study order

Read, predict, then run

Pause before each animation step and predict what changes next. After the example, rewrite the code without looking and test it with a smaller input. That turns the page from reading material into practice.