Many of my course offerings are designed with reusable materials,
including videos, notes, and starter code for assignments. Feel free to
check them out, and get in touch if you have questions or find them helpful.
- (New!) Systems Programming & Software Tools (UCSD CSE 29)
[Fall 2024]
- Software Tools & Techniques Laboratory (UCSD CSE 15L)
[Winter 2024]
[Spring 2023]
[Winter 2023]
[Winter 2022]
- Advanced Compiler Design/Construction (UCSD CSE 231)
[Spring 2023]
[Spring 2022]
[Winter 2021, see Experience Report]
-
Compiler Construction
(UCSD CSE 131)
[Spring 2023]
[Fall 2019]
[Spring 2018]
[Spring 2017]
- Software Engineering (UCSD CSE 110)
[Spring 2022, with Bill Griswold]
- Introduction to Object-Oriented Programming in Java: Accelerated Pace
(UCSD CSE 11)
[Fall 2021, with Greg Miranda, see Experience report on video exams]
[Spring 2020, see
Remote Teaching Information]
[Spring 2017]
[Winter 2017, with Phil Papadopoulos]
- Race, Gender, and Computing
(UCSD CSE 194)
[Spring 2021, with Christine Alvarado; email for information]
- Introduction to Programming and Computational Problem Solving 1
(UCSD CSE 8A [formerly Programming in Java 1])
[Winter 2021]
- Advanced Data Structures
(UCSD CSE 100)
[Spring 2020, with Niema Moshiri and Sander Valstar]
-
Introduction to Programming in Java: 1
(UCSD CSE 8A)
[Winter 2020]
[Fall 2018, with Mia Minnes; see Reflection on Using jshell]
-
Discrete Math for CS
(UCSD CSE 20)
[Spring 2019, with Mia Minnes; see also an Experience Report on Adaptive Rubrics]
-
Basic Data Structures and Object-Oriented Design
(UCSD CSE 12)
[Winter 2019]
[Winter 2018]
-
Computer Organization and Systems Programming
(UCSD CSE 30)
[Fall 2017]
- Principles of Compiler Design
(Swarthmore CS 75)
[Spring 2016]
- Data Structures and Algorithms (Swarthmore CS 35)
[Fall 2015]
- Programming Languages (Swarthmore CS 91)
[Spring 2015]
- Programming Languages (Brown University CS173; with Shriram Krishnamurthi)
[Fall 2013]
[Fall 2012]