Teaching, over the years
- Introduction to Computational Complexity
- Derandomization and PCPs
- Circuit Complexity
- Boolean Function Complexity
- Matchings in Graphs
- Linear Programming and Combinatorial Optimization
- Communication Complexity
- Discrete Mathematics
- Theory of Computation
- Data Structures and Algorithms
- Computational Geometry
- Combinatorial Geometry