Welcome to CS41: Algorithms! This course is a more formal study of basic algorithms and data structures commonly used in many areas of computer science and other disciplines.
This course will consist of numerous homework exercises and a few programming projects. The course format will be a mixture of lecture and seminar formats. Students should be prepared to present and discuss homeworks or readings in class.
| Day | Notes | Topic | Homework | Reading | 
|---|---|---|---|---|
| Sep 4–8 | Introduction to algorithms Math review - Induction, summations, fun with logarithms Some interesting(?) problems | Hw 1 (Due Sep 6) Hw 2 (Due Sep 8) Hw 3 (Due Sep 11) Hw 4 (Due Sep 13) | Ch. 1,2, and App. A | |
| Sep 11–15 | Asymptotic notation, growth of functions Solving recurrences Sketch of solutions to interesting problems by students | Hw 5 (Due Sep 15) Hw 6 (Due Sep 18) Hw 7 (Due Sep 22) | Ch. 3, 4 | |
| Sep 18–24 | Review of sets, relations, graphs, trees Heapsort, Quicksort | Ch. 6,7,8,9, and App. B | ||
| Sep 24–29 | Sorting lower bounds Linear time sorting Order statistics Review of basic data structures Binary search trees Linear time majority | Hw 8 (Due Sep 27) Hw 9 (Due Sep 29) Hw 10 (Due Oct 2) Hw 11 (Due Oct 4) | Ch. 10, 12, 13 | |
| Oct 2–6 | Red-black trees, B-trees | Hw 12 (Due Oct 6) Hw 13 (Due Oct 9) Hw 14 (Due Oct 11) | Ch. 18 | |
| Oct 9–13 | Dynamic programming, Greedy algorithms | Practice problems for midterm pdf | Ch. 15 and 16 | |
| Oct 16–20 | No Class — Fall Break | |||
| Oct 23–27 | Exam Friday | Amortized analysis Sets, Union-find | Hw 15 (Due Oct 25) Hw 16 (Due Oct 30) Hw 17 (Due Nov 1) | Ch. 17 and 21 | 
| Oct 30–Nov 3 | BFS, DFS, Topological sort | Hw 18 (Due Nov 3) Hw 19 (Due Nov 8) | Ch. 22, 23 | |
| Nov 6–10 | Minimum spanning trees, Shortest paths | Hw 20 (Due Nov 15) | Ch. 24, 25 | |
| Nov 13–17 | Computational Geometry Convex hull Line segment intersection | Hw 21 (Due Nov 22) | Ch. 33 | |
| Nov 20–22 | Computational Geometry Intro to Hard/Unsolvable Problems | Ch. 34 | ||
| Nov 27–Dec 1 | NP-Completeness | Hw 22 (Due Dec 6) | Ch. 34 | |
| Dec 4–8 | Approximation algorithms | Ch. 35 | ||
| Dec 11 | Wrap-up | |||
| Dec 20 | Final Exam: Wed 9:00am-noon | |||