Teaching
Winter 2022
This course covers a range of design and analysis techniques including greedy methods, divide and conquer, and dynamic programming. It also discusses the maximum flow problem and NP-completeness.Spring 2021
This course covers several concepts in convex optimization, including, elimination, reduction, geometrization, sparsification, acceleration, and decomposition.Winter 2021
This course covers several concepts in sketching and sub-linear space algorithms.Winter 2020
This course covers several concepts in convex optimization, including, elimination, reduction, geometrization, sparsification, acceleration, and decomposition.Winter 2019
This course covers several concepts in convex optimization, including, elimination, reduction, geometrization, sparsification, and acceleration.Autumn 2018
This course covers a range of design and analysis techniques including greedy methods, divide and conquer, and dynamic programming. It also discusses the maximum flow problem and NP-completeness.Spring 2018
This course covers a range of design and analysis techniques including greedy methods, divide and conquer, and dynamic programming. It also discusses the maximum flow problem and NP-completeness.Winter 2018
This course covers several frameworks for convex optimization, including, first-order methods, cutting plane methods and interior point methods.