Here is this semester's tentative schedule; I will update it as the semester progresses.
Please note that lecture notes are provided as a supplement, and are NOT a substitute for attending lecture. In particular, these are not guaranteed, so expect technical difficulties to prevent them from being posted at least a few times in the semester; they also will not contain exercises whose solutions are worked out on the board in class. Please plan accordingly to either take notes or get them from a friend if necessary.
Date Topic Worksheet Lecture Notes Extra links (if any) Monday August 24 Introduction and overview Lecture Notes Wednesday August 26 Logic and proofs Lecture Notes Friday August 28 Proofs Week 1 worksheet Lecture Notes Monday August 31 Sets Set exercises Lecture Notes Wednesday September 2 Induction Induction exercises Lecture Notes Friday September 4 Induction and recursion Structural induction exercises Lecture Notes Wednesday September 9 Pseudocode More induction Lecture Notes Friday September 11 More Big-O Sorting functions exercises Lecture Notes Monday September 14 Intro to pseudocode Running time exercise Lecture Notes Wednesday September 16 Sorting More runtime exercises Lecture Notes Friday September 18 Recursion Recursive pseudocode Lecture Notes Monday September 21 Solving recurrences Linear recurrences exercises Lecture Notes Wednesday September 23 More recurrences Inhomogeneous recurrence exercises Lecture Notes Friday September 25 Divide and conquer recursion D&C exercisesLecture Notes Monday September 28 Lists and Arrays
Amortized analysisLists and arrays exercises Lecture Notes Wednesday Septmeber 30 Binary Trees Binary tree exercises Lecture Notes Friday October 2 Search Trees BST exercises Lecture Notes Monday October 5 Heaps Heap exercises Lecture Notes Wednesday October 7 Binomial Heaps Binomial Heap exercises Lecture Notes Friday October 9 Hashing Hash exercises Lecture Notes Monday October 12 Graph representations Graph intro exercises Lecture Notes BFS and DFS Graph traversal exercises Lecture Notes Friday October 16 Midterm review Takehome midterm exam questions Monday October 26 Midterm exam Wednesday October 28 DAGs Friday October 30 Topological sort Monday November 2 Greedy Algorithms Wednesday November 4 Greedy algorithms Friday November 6 Greedy Algorithms Monday November 9 Greedy Approximation Wednesday November 11 Dynamic Programming Friday November 13 Dynamic Programming Monday November 16 Dynamic Programming Wednesday November 18 Dynamic Programming Friday November 20 Computability and undecidability Monday November 23 Complexity theory Monday November 30 Complexity Wednesday December 2 Complexity Friday December 4 Complexity Monday December 7 Wednesday December 9 Review