Teaching
Current Course (Winter 2026)
CPSC 351 - Theoretical Foundations of Computer Science II
Role: Course Coordinator
Past Courses
- Fall 2025:
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 661—Algorithms for Distributed Computation
- Winter 2025:
- CPSC 351—Theoretical Foundations of Computer Science II
- Fall 2024:
- CPSC 522—Introduction to Randomized Algorithms
- CPSC 622—Randomized Algorithms
- Winter 2024:
- CPSC 351—Theoretical Foundations of Computer Science II
- CPSC 622—Randomized Algorithms
- Fall 2023:
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 661—Algorithms for Distributed Computation
- Fall 2022: CPSC 351—Theoretical Foundations of Computer Science II
- Winter 2022:
- CPSC 522—Introduction to Randomized Algorithms
- CPSC 622—Randomized Algorithms
- CPSC 701—Research Topics in Computer Science
- Fall 2021:
- CPSC 351—Theoretical Foundations of Computer Science II
- CPSC 661—Algorithms for Distributed Computation
- Winter 2021:
- CPSC 251—Theoretical Foundations of Computer Science I
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 661—Algorithms for Distributed Computation
- Fall 2020: CPSC 522—Introduction to Randomized Algorithms
- Winter 2020:
- CPSC399.02—Theoretical Foundations of Computer Science II
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 661—Algorithms for Distributed Computation
- Fall 2019: CPSC 399.01—Theoretical Foundations of Computer Science I
- Spring 2019: CPSC 522—Introduction to Randomized Algorithms
- Spring 2018: CPSC 413—Design and Analysis of Algorithms
- Fall 2017:
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 661—Algorithms for Distributed Computation
- Winter 2017:
- CPSC 522—Introduction to Randomized Algorithms
- CPSC 622—Randomized Algorithms
- Fall 2016: CPSC 413—Design and Analysis of Algorithms
- Fall 2015:
- CPSC 331—Data Structures, Algorithms, and Their Analysis
- CPSC 561—Introduction to Distributed Algorithms
- Winter 2015: CPSC 661—Algorithms for Distributed Computation
- Fall 2014:
- CPSC 522—Introduction to Randomized Algorithms
- CPSC 622—Randomized Algorithms
- Winter 2014: CPSC 601.11—Special Topics in CPSC—Distributed Computing Through Combinatorial Topology
- Fall 2013:
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 661—Algorithms for Distributed Computation
- CPSC 622—Randomized Algorithms
- Winter 2013:
- CPSC 331—Data Structures, Algorithms, and Their Analysis
- CPSC 522—Introduction to Randomized Algorithms
- CPSC 622—Randomized Algorithms
- Winter 2012:
- CPSC 313—Introduction to Computability
- CPSC 661—Algorithms for Distributed Computation
- Fall 2011: CPSC 561—Introduction to Distributed Algorithms
- Spring 2011: CPSC 622—Randomized Algorithms
- Winter 2011:
- CPSC 511—Introduction to Computational Complexity
- CPSC 611—Computational Complexity
- CPSC 599.60—Special Topics in CPSC—Introduction to Randomized Algorithms
- CPSC 601.60—Special Topics in CPSC—Randomized Algorithms
- Fall 2010: CPSC 313—Introduction to Computability
- Spring 2010: CPSC 599.79—Special Topics in CPSC—Communication Complexity
- Winter 2010:
- CPSC 599.60—Special Topics in CPSC—Introduction to Randomized Algorithms
- CPSC 601.60—Special Topics in CPSC—Randomized Algorithms
- CPSC 661—Algorithms for Distributed Computing
- Fall 2009:
- CPSC 561—Introduction to Distributed Algorithms
- CPSC 522—Introduction to Randomized Algorithms
- Winter 2009: CPSC 413—Design and Analysis of Algorithms
- Fall 2008:
- CPSC 511—Introduction to Computational Complexity
- CPSC 611—Computational Complexity
- Winter 2008: CPSC 413—Design and Analysis of Algorithms
- Fall 2007:
- CPSC 599.60—Special Topics in CPSC—Introduction to Randomized Algorithms
- CPSC 601.60—Special Topics in CPSC—Randomized Algorithms
- Fall 2006: CSC 363—Computational Complexity and Computability (taught at University of Toronto)