Computer Atlas

Algorithms and Data Structures

For intermediates 20 topics (11 required · 9 optional) · updated 2026-06-08

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.

Edit this path on GitHub

Roadmap

Loading progress...

  1. The foundations

  2. A bit is the smallest unit of information in computing — a single value that is either 0 or 1.

  3. A way of writing whole numbers using only two digits, 0 and 1 — the native number system of digital computers.

  4. The algebra of true and false — the simple rules (AND, OR, NOT) from which every digital decision is built.

  5. HexadecimalOptional

    A base-16 numbering system used throughout computing because each hex digit corresponds exactly to 4 binary digits.

  6. Algorithms

  7. A precise, finite recipe for solving a problem — the central idea of computer science.

  8. A notation for describing how an algorithm's cost grows as its input grows — the standard way computer scientists compare algorithms.

  9. 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.

  10. 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.

  11. Data structures

  12. A way of organising values in memory so that the operations you care about — find, insert, delete, sort — are efficient.

  13. 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.

  14. 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.

  15. A data structure that maps keys to values with average O(1) lookup, insert, and delete — the workhorse of dictionaries, sets, caches, and indexes.

  16. A hierarchical data structure where each node has children but only one parent — the basis of file systems, search structures, DOMs, and ASTs.

  17. 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.

  18. Graph TheoryOptional

    The study of graphs — collections of nodes connected by edges — which model networks, relationships, and dependencies across computing and beyond.

  19. Theory

  20. 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.

  21. 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.

  22. The branch of mathematics dealing with distinct, separate values — logic, sets, combinatorics, graphs, and proof — that forms the mathematical foundation of computer science.

  23. 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.

  24. 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.