At Princeton University
- SML480 — Pedagogy of Data Science Spring 2020 (lectures)
- SML201 — Introduction to Data Science Spring 2019, 2020 (lectures)
- Princeton Mathematics Junior Paper Spring 2020 — Supervising Ryan Lee
- COS497/498 — Senior Independent Work in Computer Science/Computer Science thesis 2019-2020 — Supervising and co-supervising Ananya Joshi, Preeti Iyer, Max Piasevoli, Niranjan Shankar, Daniel K. Chae, and Claire S. Lee
- SML310 — Research Projects in Data Science Fall 2018, 2019 (lectures)
At the University of Toronto
- ESC180 — Introduction to Computer Programming Fall 2020-2025 (lectures)
- ESC190 — Computer Algorithms and Data Structures Winter 2021-2025 (lectures)
- ECE324 — Machine Intelligence, Software, and Neural Networks Winter 2022, Winter 2023 (lectures)
- Data Science and Functional Programming in R Mini-Course Summer 2023
- MIE490 — Mechanical and Industrial Engineering Capstone Supervising teams 2022-2023, 2023-2024, 2024-2025
- ESC494 x 36 — Engineering Science Thesis Fall 2018 - Winter 2019 — supervising Yoonsun You and supervising Navid Korhani, with Chloé Pou-Prom. Supervising ~30 students 2020-present
- CSC411/2515 — Machine Learning and Data Mining Winter 2018 (lectures, with Lisa Zhang)
- CSC494 — Computer Science Project Fall 2017 — supervising Sam Banning
- CSC411 — Machine Learning and Data Mining Winter 2017 (lectures)
- GGR417 — Honours Thesis (Geography/Environmental Science) 2016-2017 — co-supervising Joshua Samson-Seltzer
- CSC494 — Computer Science Project Fall 2016 — supervising Omobola Okesanjo
- CSC495 — Computer Science Project Fall 2016 — supervising Ujash Joshi
- CSC180 — Introduction to Computer Programming Fall 2016 (lectures)
- CSC494 — Computer Science Project Summer 2016 — supervising Ujash Joshi (official course description)
- STA303/STA1002 — Methods of Data Analysis II Summer 2016 (lectures) (official course description)
- C4M — Computing for Medicine Winter 2016 - Summer 2016 (design and delivery of the workshops, with Michelle Craig). Description
- CSC495 — Computer Science Project Winter 2016 — supervising Ramaneek Gill (official course description)
- CSC492 — Computer Science Implementation Project Winter 2016 — co-supervising Karo Castro-Wunsch (official course description)
- CSC321 — Introduction to Neural Networks and Machine Learning Winter 2016 (lectures) (official course description)
- CSC494 — Computer Science Project Fall 2015 — supervising Ramaneek Gill (official course description)
- CSC180 — Introduction to Computer Programming Fall 2015 (lectures) (official course description)
- CSC320 — Introduction to Visual Computing Winter 2015 (lectures) (official course description)
- CSC180 — Introduction to Computer Programming Fall 2014 (lectures) (official course description)
- CSC165 — Mathematical Expression and Reasoning for Computer Science Summer 2014 (lectures) (official course description)
- CSC180 — Introduction to Computer Programming Fall 2010 (lectures, with François Pitt)
- CSC180 — Introduction to Computer Programming Fall 2009 (lectures, with Anya Tafliovich)
- CSC180 — Introduction to Computer Programming Fall 2008 (head TA)