My goal as an educator is to make computing, quantitative reasoning, and data science accessible to all students. I approach this goal through actively inclusive teaching practices and evidence-based pedagogy. My courses often involve include flipped classrooms, project-based learning, structured group work, writing assignments, and alternative grading.

Courses at Middlebury

Spring 2024

Winter 2024

Fall 2023

Spring 2023

Fall 2022

Courses at UCLA

The pages below contain lecture notes and other resources for previous courses that I taught at UCLA. You may find these sites useful, but please note that they are no longer maintained.

  • PIC 16A: Python with Applications I. A flipped-classroom, team-based course focusing on Python basics and technical computing. Special emphasis on data science, machine learning, and algorithmic bias.
  • PIC 16B: Python with Applications II. A project-based course in advanced technical computing and data science with Python. Topics include data analysis and acquisition; numerical programming; machine learning via TensorFlow; natural language processing; and network science.
  • MATH 168: Introduction to Networks. An upper division course in the mathematics of network science. Topics including measuring networks, random graph models, data science with graph data, and dynamical systems on networks.