Software · Series hub · 24 decks + a coding gym

Algorithms & Data Structures

Twenty-four interactive decks on the core of computer science, from complexity and arrays to network flow, plus an LLM-examined coding gym to practise them by hand.

Who this is for. Anyone preparing for coding interviews or revisiting the fundamentals.

How to use it. Start with complexity, learn the structures, then the algorithms that use them; the coding gym at the end is for practice by hand.

The reading order

  1. Foundations

    01 · 1 entry

  2. Data structures

    02–13 · 12 entries

  3. Algorithms

    14–24 · 11 entries

  4. Practice

    25 · 1 entry

Part 1 · 01Foundations

How to measure an algorithm.

  1. 01
    Computational Complexity →

    Interactive presentation on computational complexity — Big-O, P vs NP, NP-completeness, reductions, approximation, and amortised analysis

    open markdown repo

Part 2 · 02–13Data structures

From contiguous memory to probabilistic sketches.

  1. 02
    Arrays and Linked Lists →

    Interactive presentation on arrays and linked lists — contiguous memory, dynamic arrays, singly linked, doubly linked, skip lists, and cache performance

    open markdown repo

  2. 03
    Stacks and Queues →

    Interactive presentation on stacks and queues — LIFO, FIFO, priority queues, monotonic structures, deque, and expression evaluation

    open markdown repo

  3. 04
    Hash Tables →

    Interactive presentation on hash tables — hash functions, collision resolution, open addressing, cuckoo hashing, load factor, and concurrent maps

    open markdown repo

  4. 05
    Binary Trees →

    Interactive presentation on binary trees — traversals, tree properties, LCA, Morris traversal, expression trees, and serialisation

    open markdown repo

  5. 06
    Binary Search Trees →

    Interactive presentation on binary search trees — BST invariant, search and insertion, balancing, treaps, splay trees, and order statistics

    open markdown repo

  6. 07
    Balanced Trees →

    Interactive presentation on balanced trees — AVL trees, Red-Black trees, rotations, 2-3 trees, balance factor, and persistent trees

    open markdown repo

  7. 08
    B-Trees →

    Interactive presentation on B-trees — B-tree operations, B+ trees, disk I/O, database indexes, node splitting, and LSM comparison

    open markdown repo

  8. 09
    Heaps and Priority Queues →

    Interactive presentation on heaps — binary heaps, heap sort, Fibonacci heaps, build-heap, decrease-key, and priority queue ADT

    open markdown repo

  9. 10
    Tries →

    Interactive presentation on tries — prefix trees, radix trees, suffix trees, autocomplete, Patricia tries, and IP routing

    open markdown repo

  10. 11
    Graph Data Structures →

    Interactive presentation on graph data structures — adjacency matrix, adjacency list, CSR format, DAGs, property graphs, and graph libraries

    open markdown repo

  11. 12
    Disjoint Sets (Union-Find) →

    Interactive presentation on disjoint sets — union by rank, path compression, inverse Ackermann, Kruskal's MST, and connected components

    open markdown repo

  12. 13
    Bloom Filters & Probabilistic DS →

    Interactive presentation on probabilistic data structures — Bloom filters, HyperLogLog, Count-Min Sketch, cuckoo filters, and cardinality estimation

    open markdown repo

Part 3 · 14–24Algorithms

Sorting and searching, the design paradigms, then graphs.

  1. 14
    Sorting Algorithms →

    Interactive presentation on sorting algorithms — bubble, merge, quick, heap, radix, counting, stability, complexity analysis, and real-world implementations

    open markdown repo

  2. 15
    Divide and Conquer →

    Interactive presentation on divide and conquer — Master theorem, merge sort, quick sort, Strassen's algorithm, closest pair, and FFT

    open markdown repo

  3. 16
    Hashing Algorithms →

    Interactive presentation on hashing algorithms — hash functions, collision resolution, open addressing, consistent hashing, cryptographic hashes, and perfect hashing

    open markdown repo

  4. 17
    String Matching Algorithms →

    Interactive presentation on string matching — KMP, Rabin-Karp, Boyer-Moore, suffix arrays, Aho-Corasick, and pattern matching

    open markdown repo

  5. 18
    Greedy Algorithms →

    Interactive presentation on greedy algorithms — greedy choice property, activity selection, Huffman coding, fractional knapsack, and exchange arguments

    open markdown repo

  6. 19
    Dynamic Programming →

    Interactive presentation on dynamic programming — optimal substructure, memoization, tabulation, knapsack, edit distance, and state transitions

    open markdown repo

  7. 20
    Backtracking Algorithms →

    Interactive presentation on backtracking — state space trees, N-Queens, Sudoku, constraint satisfaction, pruning, and branch and bound

    open markdown repo

  8. 21
    Graph Algorithms →

    Interactive presentation on graph algorithms — BFS, DFS, topological sort, connected components, cycle detection, and graph coloring

    open markdown repo

  9. 22
    Shortest Path Algorithms →

    Interactive presentation on shortest path algorithms — Dijkstra, Bellman-Ford, Floyd-Warshall, A* search, negative cycles, and routing

    open markdown repo

  10. 23
    Minimum Spanning Trees →

    Interactive presentation on minimum spanning trees — Kruskal's, Prim's, Borůvka's, cut property, Union-Find, and network design

    open markdown repo

  11. 24
    Network Flow Algorithms →

    Interactive presentation on network flow — max-flow min-cut, Ford-Fulkerson, Edmonds-Karp, Dinic's, bipartite matching, and cost flow

    open markdown repo

Part 4 · 25Practice

Writing it yourself.

  1. 25
    Coding Challenge Coach →

    LLM-examined, LeetCode-style practice for rebuilding hand-coding skill: 860 problems in Python, C, JavaScript, TypeScript, Verilog, SystemVerilog and VHDL, easy-first levels, hidden tests and a 100-point rubric, and an examiner that never writes your code

    open examiner prompt

Related