Coding Patterns
Watch each core algorithm, then learn its mental model, invariant, and proof.
- Lessons
- 16
- Concepts
- 78
- Diagrams
- 94
Your curriculum
16 modules · Follow in order or jump to a skill gap.
- 01Open module
Time & space complexity
17:41 video · Learn to describe how runtime and memory grow as the input grows, without confusing machine speed with algorithmic efficiency.
- 02Open module
Arrays & strings
18:24 video · Understand why indexing is fast, why middle edits are expensive, and how dynamic arrays trade occasional resizing for cheap appends on average.
- 03Open module
Linked lists
17:04 video · Learn singly and doubly linked node chains, their operation costs, and the pointer discipline that prevents lost suffixes and broken back-links.
- 04Open module
Hash tables
25:51 video · See how hash functions power sets and maps, why collisions are unavoidable, and why average constant-time lookup depends on distribution and load factor.
- 05Open module
Stacks & queues
14:58 video · Use stacks for newest-first unresolved work and queues for oldest-first frontier expansion, with the Python containers that keep operations efficient.
- 06Open module
Recursion
19:02 video · Build recursive solutions from a base case, a shrinking subproblem, and a precise return contract while accounting for call-stack order and memory.
- 07Open module
Binary search
21:51 video · Move from exact lookup in sorted data to condition-based boundary search over any monotonic false/true decision space.
- 08Open module
Binary trees & BSTs
39:39 video · Connect binary-tree shape, array representation, DFS orders, BFS levels, iterative traversal, and the ordering invariant that makes a BST searchable.
- 09Open module
Heaps & priority queues
24:08 video · Understand the complete-tree shape, array index formulas, sift operations, linear-time heapify, heap sort, and Python’s min-heap interface.
- 10Open module
Sorting algorithms
41:41 video · Compare bubble, insertion, selection, merge, quick, and counting sort by the invariant each maintains—not by memorized code alone.
- 11Open module
Graphs: DFS & BFS
32:11 video · Model vertices and edges, choose a representation, and traverse with recursive DFS, iterative DFS, or BFS while proving each state is discovered once.
- 12Open module
Two pointers
8:18 video · Replace a quadratic pair search with two coordinated indices when order or a read/write relationship proves which pointer must move.
- 13Open module
Sliding window
20:31 video · Maintain fixed-size or variable-size contiguous ranges incrementally, updating only the elements that enter and leave instead of recomputing each range.
- 14Open module
Recursive backtracking
12:59 video · Traverse a decision tree, maintain one mutable partial solution, prune invalid branches, and undo each choice so sibling branches start from clean state.
- 15Open module
Dynamic programming
20:41 video · Turn repeated recursive subproblems into named states, transitions, and base cases using top-down memoization or bottom-up tabulation.
- 16Open module
Binary & bit manipulation
17:23 video · Connect positional binary representation, signed values, two’s complement, binary arithmetic, bitwise operators, and shifts to reliable coding patterns.