Teaching

Teaching Summary

My teaching experience ranges from Course Assistant to Instructor, spanning positions at UIUC, UW-Madison, and the New Horizons Summer School (sponsored by SIGACT and TTIC).

My teaching philosophy centers on breaking down complex topics to simplify learning. My favorite approach to building intuition is through the power of analogy: relating a new, abstract topic to one the students already understand.

I strongly believe in open access to education and am committed to making my course materials publicly available.

Courses Taught
  • Game Theory, Optimization & Learning
  • Introduction to Algorithms
  • Introduction to Artificial Intelligence
  • Introduction to Data Science
  • Introduction to Optimization
  • Algorithms and Models of Computation

Selected Course Materials

Algorithms Lecture Recordings

Complete lecture series from my time as instructor for Introduction to Algorithms at UW-Madison:

Watch Lectures
MARL Theory Notes

Lecture notes and slides from the Multi-Agent RL module of Game Theory, Optimization & Learning at UW-Madison:

Download ZIP

Courses

2025

  1. Guest Lecturer
    CS839: Game Theory, Optimization & Learning
    Manolis Vlatakis
    Spring 2025
    Role: Designed and presented a module on the theory of multi-agent reinforcement learning.

2022

  1. Instructor
    CS577: Introduction to Algorithms
    Jeremy McMahan
    Summer 2022
    Role: Responsible for curriculum design, lecture delivery, course structure, and student evaluation for a class of 100 students. Designed original lecture slides, lecture notes, lecture videos, and problem sets focusing on the design of efficient algorithms and rigorous proofs of correctness. Managed one TA and grader.
  2. Guest Lecturer
    New Horizons in Theoretical Computer Science Summer School
    Nicole Immorlica, Yael Kalai, Jelani Nelson, Ashia Wilson, and Antonio Blanca
    Summer 2022
    Role: Designed and presented lectures spanning complexity theory basics, interactive proofs, and Markov-chain Monte Carlo methods.
  3. Head TA
    CS 540: Introduction to Artificial Intelligence
    Jerry Zhu, Sharon Li, and Ilias Diakonikolas
    Spring 2022
    Role: Coordinated the administrative and grading workflow for this large-scale course with 500 students, 8 TAs, and over 20 graders and peer mentors. Developed standardized grading rubrics and course structures in addition to the standard teaching assistant duties.

2021

  1. TA
    CS 540: Introduction to Artificial Intelligence
    Josiah Hanna
    Fall 2021
  2. Guest Lecturer
    New Horizons in Theoretical Computer Science Summer School
    Nicole Immorlica, Yael Kalai, Jelani Nelson, Ashia Wilson, and Antonio Blanca
    Summer 2021
    Role: Designed and presented lectures spanning complexity theory basics, interactive proofs, and Markov-chain Monte Carlo methods.
  3. Head TA
    CS 540: Introduction to Artificial Intelligence
    Sharon Li and Fred Sala
    Spring 2021
    Role: Coordinated the administrative and grading workflow for this large-scale course with 500 students, 8 TAs, and over 20 graders and peer mentors. Developed standardized grading rubrics and course structures in addition to the standard teaching assistant duties.

2020

  1. TA
    CS 540: Introduction to Artificial Intelligence
    Yingyu Liang, Anthony Gitter, Yin Li, and Daifeng Wang
    Fall 2020
  2. TA
    CS577: Introduction to Algorithms
    Shuchi Chawla and Christos Tzamos
    Spring 2020
    Role: Designed supplementary lecture and guided-problem solving videos to aid in the mastery of key topics, in addition to usual responsibilities.

2019

  1. TA
    CS577: Introduction to Algorithms
    Jiazhen Zhou
    Summer 2019
  2. TA
    CS 301: Introduction to Data Science
    Tyler Caraza-Harter
    Fall 2019
    Role: Designed supplementary lecture videos to aid in the mastery of key topics, in addition to usual responsibilities.
  3. TA
    CS577: Introduction to Algorithms
    Dieter Melkebeek
    Spring 2019

2018

  1. TA
    CS 524: Introduction to Optimization
    Steve Wright
    Fall 2018
  2. CA
    CS 374: Algorithms and Models of Computation
    Jeff Erickson
    Spring 2018