Recent Teaching
For each class I teach, only the most recent iteration is listed below.
- Spring 2025: CS673: Structure and Dynamics of Networked Information
- Spring 2025: CS670: Advanced Analysis of Algorithms
- Spring 2024: CS270: Introduction to Algorithms and the Theory of Computing
- Fall 2020: CS671: Randomized Algorithms
- Fall 2017: CS104: Data Structures and Object-Oriented Design
- Spring 2013: CS271 (now CS170): Discrete Methods in Computer Science
- Spring 2010: CS599 (now CS672): Approximation Algorithms
- Fall 2006: CS499: Algorithmic Problem Solving
Teaching Materials
Below are various documents that I have written at some point or other for use by my students. Feel free to use them in your teaching, but do so at your own risk. Of course, if you discover mistakes, or have other suggestions, please let me know.
- Lecture Notes for my course "Structure and Dynamics of Networked Information" (roughly 140 pages).
- Lecture Notes for the class on "Data Structures and Object-Oriented Design" (roughly 250 pages).
- A short writeup on the Running Time Analysis of the Edmonds-Karp Algorithm for Maximum Flow.
- A short writeup on Fibonacci Heaps.
- A very brief introduction to Linear Programming.
- An analysis of the Raghavan-Thompson algorithm for congestion minimization using randomized rounding of LPs.
- An absolutely minimal introduction to Online Algorithms and Competitive Analysis.
- A very brief and superficial introduction to Game Theory.
- A fairly brief summary of some of the basic ideas in Recursion Theory.