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)