CS201
Data Structures & Algorithms
The core toolkit: measuring efficiency with Big-O, and the data structures — arrays, lists, stacks, hash tables, trees — that make software fast.
10 modules · 48 lessons · Practice after every lesson
Syllabus
Module 1
Algorithmic Foundations
- From Problems to Abstract Data Types
- Models of Computation and Cost
- Asymptotic Notation: O, Ω, and Θ
- Correctness Proofs, Invariants, and Induction
- Recurrences and Amortized Analysis
Module 2
Linear Structures and Connectivity
- Arrays, Memory Layout, and Locality
- Dynamic Arrays and Sequence Abstractions
- Linked Lists, Sentinels, Stacks, Queues, and Deques
- Disjoint Sets and Union–Find
Module 3
Sorting and Selection
- Sorting Contracts: Order, Stability, and Adaptivity
- Insertion Sort and Elementary Methods
- Merge Sort and Divide-and-Conquer
- Quicksort, Partitioning, and Randomization
- Heaps, Priority Queues, and Heapsort
- Comparison Lower Bounds and Decision Trees
- Linear-Time Sorting: Counting, Radix, and Buckets
- Selection and Order Statistics
Module 4
Dictionaries, Hashing, and Probabilistic Filters
- The Dictionary ADT and Hash Function Contracts
- Separate Chaining and Load-Factor Analysis
- Open Addressing, Probing, and Deletion
- Universal Hashing and Adversarial Inputs
- Bloom Filters and Approximate Membership
Module 5
Trees and Ordered Structures
- Binary Trees, Traversals, and Structural Recursion
- Binary Search Trees
- AVL Trees and Rotations
- Red–Black Trees and 2–3–4 Trees
- Augmented Trees and Order Statistics
- B-Trees and the External-Memory Model
- Tries, Radix Trees, and String Dictionaries
Module 6
Graph Foundations
- Graph Modeling and Representations
- Breadth-First Search and Unweighted Shortest Paths
- Depth-First Search, Edge Classification, and Topological Order
- Strongly Connected Components
Module 7
Weighted Graph Algorithms
- Dijkstra’s Algorithm
- Bellman–Ford, Negative Edges, and Difference Constraints
- All-Pairs Shortest Paths
- Minimum Spanning Trees
- Network Flow and Bipartite Matching
Module 8
Algorithm Design Paradigms
- Greedy Algorithms and Exchange Arguments
- Divide-and-Conquer Beyond Sorting
- Dynamic Programming: States, Recurrences, and Evaluation Order
- Sequence, DAG, and Interval Dynamic Programming
Module 9
Complexity, Approximation, and Search
- Backtracking, Branch-and-Bound, and Exponential Search
- Randomized Algorithms and Probabilistic Analysis
- Reductions, P, NP, and NP-Completeness
- Approximation Algorithms and Heuristics
Module 10
Algorithm Engineering and Synthesis
- Algorithm Engineering: Constants, Caches, and Benchmarking
- Choosing and Composing Algorithms
Start Data Structures & Algorithms.
No setup, nothing to install. Try the first lessons before you sign up.