The following documents outline the notes for the course CS 165 Project in Algorithms and Data Structures.
Notes by Lecture Schedule
- Week 1:
Introduction. Algorithm Analysis.
Select Sorting Algorithms.
- Algorithm Analysis (Powerpoint slides)
- Selected Sorting Algorithms (Powerpoint slides)
- Microbenchmarking (PDF)
- plotting.ipynb example
- Shell sort example (PDF)
- Big-Oh notation
- Insertion sort algorithm
- Shellsort algorithm
- Arxiv article about Tim-sort algorithm (see Algorithm 3)
- log-log plots (focus especially on "Relation with monomials")
- Paper on adaptive sorting (Skip sort is described in Section 2.5)
- Week 2: Random Numbers and Random Permutations.
- Random and Pseudo-Random Numbers (Powerpoint slides)
- Random Permutations (Powerpoint slides)
- Preparing a Benchmark Driver
- Collecting Timing Data
- Processing Data with Python
- Plotting Your Data
- More about plotting data (PDF)
- Week 3: Experimental analysis and binary search trees.
- Sorting Analysis for Project 1 (PDF), where the slides are from a previous year but the analysis techniques still apply
- Zip-zip trees (Lecture slides)
- Augmented search trees (Lecture slides)
- Week 4: Bin packing.
- Week 5: Algorithms and Architectures.
- Algorithms and Architectures (Powerpoint slides)
- Discussion slides on Floating Point (PDF)
- Relevant Wikipedia articles:
- Week 6: Network structure.
- Network Structure (Powerpoint slides)
- Kevin Bacon Visa commercial illustrating six degrees-of-separation
- Relevant Wikipedia articles:
- Week 7: Network algorithms.
- Network Algorithms (Powerpoint slides)
- Relevant Wikipedia articles:
- semi-log plots, e.g., note how the log x function looks like a straight line in a lin-log plot.
- breadth-first search
- graph degeneracy
- Week 8: Network models.
- Network Models (Powerpoint slides)
- Required reading:
- Efficient generation of large random networks, by Batagelj and Brandes.
- Relevant Wikipedia articles:
- Week 9: Navigation and propagation in networks.
- Navigation and propagation in networks (Powerpoint slides)
- Relevant Wikipedia articles:
- Week 10: Wrap-up on experimental algorithms.
- Principles for Experimental Algorithmics (Powerpoint slides)
- Required reading:
- A Theoretician's Guide to the Experimental Analysis of Algorithms, by David Johnson
- Recommended reading:
- Towards a Discipline of Experimental Algorithmics, by Bernard Moret