Please note that some topics may take more/less time than planned and may not be covered in exactly this order.
Week | Date | Topic | Reading |
---|---|---|---|
Week1 | 7/2 | Introduction, analyzing running times, O, Omega, Theta notation, short math review | Chapter 1: 1.2.2,1.2.3; Chapter 2: 2.1 |
7/3 | Recursion and runtime analysis: binary search, gcd, Towers of Hanoi | Chapter 2: 2.4.4 | |
7/5 | Sorting: bubble sort, insertion sort | Chapter 7: 7.2 | |
7/6 | Sorting: lowerbound on simple sorting, mergesort, comparison with quicksort | Chapter 7: 7.3, 7.6 | |
Week2 | 7/9 | Sorting: quicksort, runtime analysis, special case: bucket sort | Chapter 7: 7.7, 7.9 |
7/10 | List ADT, array and linked list implementation, hw1 due | Chapter 3: 3.1,3.2,3.4,3.5 | |
7/11 | Generic classes and Iterator interface, Stack ADT, implementation overview | Chapter 3: 3.4,3.5,3.6 | |
7/12 | Stack applications: balancing symbols, evaluating postfix expressions. Queue ADT, array and link list implementation | Chapter 3: 3.6,3.7 | |
Week3 | 7/16 | Trees: introduction, terminology, tree properties, traversals, Binary Search Trees | Chapter 4: 4.1,4.3 |
7/17 | BST implementation. Balanced trees: AVL trees, hw2 due | Chapter 4: 4.3, 4.4 | |
7/18 | Wrap up trees, midterm review | Chapter 4: 4.3 | |
7/19 | MIDTERM | ||
Week4 | 7/23 | Heaps | Chapter 6: 6.1-6.3 |
7/24 | Leftist heaps, heapsort, hw3 due | Chapter 6: 6.6; Chapter 7: 7.5 | |
7/25 | Hashing: introduction, examples, collision resolution with chaining | Chapter 5: 5.1-5.3 | |
7/26 | Hashing: other collision resolution strategies, rehashing | Chapter 5: 5.4,5.5 | |
Week5 | 7/30 | Introduction to graphs, terminology, different graph representations | Chapter 9: 9.1 |
7/31 | Topological sort, Depth First Search, hw4 due | Chapter 9: 9.2, 9.6.1 | |
8/1 | Unweighted shortest paths: Breadth First Search | Chapter 9: 9.3.1 | |
8/2 | Minimum Spanning Trees: Prim's and Kruskal's algorithms | Chapter 9: 9.5 | |
Week6 | 8/6 | Weighted shortest paths: Dijkstra's algorithm | Chapter 9: 9.3.2 |
8/7 | Dijkstra runtime analysis, final review, hw5 due | Chapter 9: 9.3.2 | |
8/8 | Final review, course evaluations | ||
8/9 | FINAL |