11 parts · 18 chapters

Data Structures and Algorithms, Complete

The core of a computer science degree, taught through code you run. Data structures decide what is cheap; algorithms decide how work grows as data grows. On this machine, finding duplicates among 50,000 numbers took 727 ms with nested loops, 9.8 ms by sorting and 2.8 ms with a hash set: that gap is what this course is about.

Eleven parts: complexity and amortisation; arrays, lists, stacks and queues; hashing; trees and balancing; heaps and priority queues; graphs from BFS to flows; dynamic programming; greedy algorithms; string algorithms; randomised algorithms; and the patterns behind interview problems. It extends the frontend-focused Algorithms course.

complexity · arrays and lists · hashing · trees and balancing · heaps · graphs · dynamic programming · greedy · strings · randomised · interview patternseveryone without a CS degree · and anyone preparing for coding interviews
complexityBig-O, amortised analysis, and measuring rather than guessing.
structuresArrays, linked lists, hash tables, trees, heaps, tries, union-find.
graphsBFS, DFS, topological sort, Dijkstra, MST, max flow.
DP and greedyRecognising overlapping subproblems and greedy-choice properties.
stringsKMP, rolling hashes, tries, suffix structures.
patternsTwo pointers, sliding window, binary search on answers, backtracking.
Extends Algorithms (frontend)The Algorithms course covered what the frontend runs on; this course is the complete general foundation. Discrete Maths (course 25) supplies the proofs; Algorithms Backends Run On (course 21) applies it.