Course Syllabus
| Week | Topic & Chapters |
|---|---|
| Week 1 | Introduction to Algorithms (Chapter 1) |
| Week 2 | Getting Started: Insertion Sort & Merge Sort (Chapter 2) |
| Week 3 | Asymptotic Analysis & Running Times (Chapter 3) |
| Week 4 | Divide-and-Conquer, Recurrences, Master Method (Chapter 4) |
| Week 5 | Probabilistic Analysis & Randomized Algorithms (Chapter 5) |
| Week 6 | Heapsort & Quicksort (Chapters 6–7) |
| Week 7 | Linear-Time Sorting & Order Statistics (Chapters 8–9) |
| Week 8 | Midterm Exam |
| Week 9 | Elementary Data Structures (Chapter 10) |
| Week 10 |
Binary Search Trees (Chapter 12) (Optionally include key ideas from Hash Tables in Chapter 11 if time permits) |
| Week 11 | Dynamic Programming (Chapter 14) |
| Week 12 | Greedy Algorithms (Chapter 15) |
| Week 13 | Graph Algorithms I: Basic Traversals (Chapter 20) |
| Week 14 | Graph Algorithms II: MST & Shortest Paths (Chapters 21–22) |
| Week 15 |
NP-Completeness & Related Topics (or alternatively Number-Theoretic Algorithms, e.g. Chapter 31, for cybersecurity relevance) |
| Week 16 | Final Exam |