| Lecture | Date | Topic | Readings | Homework |
| 1 | Aug 27 | Course Introduction | ||
| 2 | Aug 29 | Algorithms and problem solving: Methodologies | Chapter 1, Section 1 | |
| 3 | Sept 3 | Basic algorithmic analysis: Asymptotic analysis, Big O, little o notation | Chapter 1, Section 2-3 | |
| 4 | Sept 5 | Basic algorithmic analysis: Case studies | Chapter 1, Section 4 | |
| 5 | Sept 10 | Basic algorithmic analysis: Time and space tradoffs | Chapter 1, Section 6 | |
| 6 | Sept 12 | Fundemental data structures: Trees, dictionaries, hash tables, and heaps | Chapter 2, Section 3 | |
| 7 | Sept 17 | Fundemental data structures: Heap sort -- Guest Instructor | Chapter 2, Section 4 | Homework 1 |
| 8 | Sept 19 | Fundemental data structures: Hash tables -- Guest Instructor | Chapter 2, Section 5 | |
| 9 | Sept 24 | Fundemental computing algorithms: Binary search trees | Chapter 3, Section 1 | |
| 10 | Sept 26 | Fundemental computing algorithms: Merge sort and recurrence equations | Chapter 4, Section 1 | |
| 11 | Oct 1 | Fundemental computing algorithms: Set operations & Quicksort | Chapter 4, Sections 2-3 | Homework 2 |
| 12 | Oct 3 | Fundemental computing algorithms: O(N log N) sorting algorithms | Chapter 4, Sections 3-4 | |
| 13 | Oct 8 | Fundemental computing algorithms: Bucket-Sort and Radix-Sort | Chapter 4, Sections 5-6 | |
| 14 | Oct 10 | Fundemental computing algorithms: Selection algorithms | Chapter 4, Section 7 | |
| 15 | Oct 15 | Review | Homework 3 | |
| 16 | Oct 17 | Midterm | ||
| 17 | Oct 22 | Algorithmic strategies: Greedy algorithms | Chapter 5, Section 1 | |
| 19 | Oct 24 | Algorithmic strategies: Divide-and-Conquer | Chapter 5, Section 2 | |
| 20 | Oct 29 | Algorithmic strategies: Dynamic programming | Chapter 5, Section 3 | |
| 21 | Oct 31 | Fundemental computing algorithms: Depth- and Breath-first | Chapter 6, Section 1-3 | |
| 21 | Nov 5 | Fundemental computing algorithms: Minimum spanning tree--Guest Instructor | Chapter 7, Section 3 | |
| 22 | Nov 7 | Fundemental computing algorithms: Floyd-Warshall | Chapter 6, Section 4 | Homework 4 |
| 23 | Nov 12 | Fundemental computing algorithms: Dijkstra's algorithm | Chapter 7, Section 1 | |
| 24 | Nov 14 | Fundemental computing algorithms: Shortest-path algorithms | Chapter 7, Section 1 | |
| 25 | Nov 19 | Fundemental computing algorithms: Shortest-path algorithms | Chapter 7, Section 2 | |
| 26 | Nov 21 | Algorithmic strategies: string/text algorithms | Chapter 9, Section 1 | Homework 5 |
| 27 | Nov 26 | Algorithmic strategies: string/text algorithms | Chapter 9, Section 4 | Projects Due |
| Nov 28 | Thanksgiving | |||
| 28 | Dec 3 | The complexity classes P and NP | Chapter 13, Sections 1-3 | |
| 29 | Dec 5 | Review | Homework 6 | |
| Dec 9 | Final Exam: Monday 12:45-3:00pm |