All concepts
Computer science concepts explained with short lessons and interactive animations.
Big O Notation
Foundations
How to compare algorithms by the way they grow, not by how fast they happen to run on your machine.
Arrays
Data Structures
A row of numbered lockers in memory. Instant to read by index, costly to change in the middle.
Strings
Data Structures
A sequence of characters, like beads on a necklace. In most languages you cannot change one in place.
Linked List
Data Structures
A chain of nodes. Each one holds a value and the address of the next one.
Stack
Data Structures
A pile of plates. The last thing you put on is the first thing you take off.
Queue
Data Structures
A line of people. The first one to join is the first one to leave.
Linear Search
Algorithms
Check every value in turn until you find the one you want. The only search that assumes nothing.
Binary Search
Algorithms
Check the middle, discard the half that cannot hold the answer, repeat. A billion values in 30 steps.
Recursion
Algorithms
A function that solves a problem by calling itself on a smaller version of the same problem.
Backtracking
Algorithms
Make a choice, try to finish, and undo it the moment finishing turns out to be impossible.
Load Balancer
System Design
One front door for many servers. It spreads requests across them and routes around the ones that fail.
Deadlock
Operating Systems
Two processes each holding what the other needs, and neither lets go. Four conditions, and how to break one.
How DNS Works
Networking
You know the name. The machine needs the address. DNS is what turns one into the other.