Teaching

Courses I Teach


CS577-Fall2024: Introductions to Algorithms

This course provides a comprehensive introduction to the fundamental strategies for designing and analyzing efficient algorithms, including greedy methods, divide-and-conquer, dynamic programming, reductions, and randomization. Students will explore key algorithmic paradigms and gain insights into computational intractability, with a focus on NP-complete problems and strategies to address them, such as approximation algorithms and heuristics. By the end of the course, students will be equipped with essential tools to solve complex computational challenges and develop a strong foundation for advanced topics in computer science.

CS839-Spring2025: Game Theory, Optimization & Learning