| Topic | Dates | Notes format |
| Introduction | April 1 | PowerPoint or PDF |
| Euclidean Alg., Divide&Conquer | April 3 | PowerPoint or PDF |
| Recurrences | April 8 | PowerPoint or PDF |
| Quicksort and Heapsort | April 10-15 | PowerPoint or PDF |
| Memory Hierarchy Analysis | April 17 | PowerPoint or PDF |
| More on Sorting | April 17-24 | PowerPoint or PDF |
| Hashing | April 24-29 | PowerPoint or PDF |
| Dynamic Search Trees | April 29-May 1 | PowerPoint or PDF |
| Midterm | May 6 | |
| Rantings about HW3 | May 8 | PowerPoint or PDF |
| Dynamic Programming | May 13-15 | PowerPoint or PDF |
| Greedy Algorithms | May 20 | PowerPoint or PDF |
| Minimum Spanning Trees | May 22 | PowerPoint or PDF |
| Shortest Paths Problems | May 27 | PowerPoint or PDF |
| Max Flow Min Cut | May 29 | PowerPoint or PDF |
| Incomplete notes on NP completeness | June 3 | PowerPoint or PDF |
| FFT's and other goodies | June 5 | PowerPoint or PDF |
The goal is to show me that you can perform sound experiments, analyze the data, form hypotheses, test the hypotheses (via new experiments if necessary), and end up with interesting conclusions that are well supported by the experiments. The conclusions can be virtually anything (e.g. "the timer on my machine gets reset to zero whenever there is a disk access") as long as it's true and you present a convincing argument. Every data set I looked at had interesting features, but mostly people didn't even notice the features, let alone explain them.