Algorithms and Data Structures
From binary to big-O — the foundational structures and analysis that underpin every program ever written.
- Reading time
- ~51 min (+43 min optional)
- Level mix
- 12 beginner · 4 intermediate · 4 advanced
Every program, from a sorting routine to a distributed database, is built on a surprisingly small set of ideas: how data gets arranged in memory, how to measure how expensive an operation is, and how to use recursion to break a big problem into small ones. This path covers that foundation.
Start with the binary representation that underpins everything, move through the core analysis tools (big-O, complexity classes), then work through the structures that show up in almost every real-world system: linked lists, stacks, queues, hash tables, and trees.
Roadmap
Loading progress...
The foundations
A bit is the smallest unit of information in computing — a single value that is either 0 or 1.
A way of writing whole numbers using only two digits, 0 and 1 — the native number system of digital computers.
The algebra of true and false — the simple rules (AND, OR, NOT) from which every digital decision is built.
- HexadecimalOptional
A base-16 numbering system used throughout computing because each hex digit corresponds exactly to 4 binary digits.
Algorithms
A precise, finite recipe for solving a problem — the central idea of computer science.
A notation for describing how an algorithm's cost grows as its input grows — the standard way computer scientists compare algorithms.
A way of solving a problem by having a function call itself on a smaller version of the same problem, until the base case is trivial.
- Complexity TheoryOptional
The study of how the resources a problem requires — time and memory — grow with input size, and how problems are classified by how hard they are to solve.
Data structures
A way of organising values in memory so that the operations you care about — find, insert, delete, sort — are efficient.
A data structure built from nodes that each point to the next, allowing O(1) insert and remove at any known node — and notably awful cache behaviour.
Two of the simplest data structures — a stack is last-in-first-out, a queue is first-in-first-out. Both show up everywhere from CPU instructions to background job systems.
A data structure that maps keys to values with average O(1) lookup, insert, and delete — the workhorse of dictionaries, sets, caches, and indexes.
A hierarchical data structure where each node has children but only one parent — the basis of file systems, search structures, DOMs, and ASTs.
- B-TreeOptional
A self-balancing tree optimised for block storage — wide, shallow, and designed so every search, insert, and delete touches only O(log n) pages, which is why it powers almost every database index.
- Graph TheoryOptional
The study of graphs — collections of nodes connected by edges — which model networks, relationships, and dependencies across computing and beyond.
Theory
- AbstractionOptional
Hiding complexity behind a simpler interface — the core technique that lets us build and reason about large systems by ignoring lower-level details until we need them.
- ComputabilityOptional
The study of what can be computed by an algorithm at all — and the proof that some problems, like the halting problem, can never be solved by any computer.
- Discrete MathematicsOptional
The branch of mathematics dealing with distinct, separate values — logic, sets, combinatorics, graphs, and proof — that forms the mathematical foundation of computer science.
- Formal LanguageOptional
A precisely-defined set of strings built from an alphabet according to formal rules (a grammar) — the mathematical foundation for parsing, programming languages, and computation theory.
- AutomataOptional
Abstract machines that read input and move between states according to fixed rules — the mathematical models of computation, from simple finite-state machines up to the Turing machine.