Teaching
My goal as an educator is to make computing, applied mathematics, 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.
Many of the courses below link to recent public course websites on which you can find lecture notes, assignments, code, and other resources.
Courses at Middlebury
Spring 2024
Fall 2024
- CSCI 0200: Math Foundations of Computing
- CSCI 0702: Senior Thesis
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.