Teaching
Stanford
Most of my teaching at Stanford was done in the context of the Embedded Ethics program. I led teams of CS faculty and teaching assistants to create and teach ethics curriculum in CS courses. Some of our materials are open source on the Embedded Ethics website. Please reach out to me if you are interested in seeing additional material for the courses I led below.
Ethics Curriculum
2023, 2024 (x2), 2025
CS 221: Artificial Intelligence: Principles and Techniques
Large intro-level AI course. Myself and various teaching assistants wrote 1-2 homework problems across 8 assignments that connects various ethics topics to the technical material of the course. We also created and filmed 10-15 minute ethics lectures that support these homework problems. Example topics include: dual use, safe exploration in reinforcement learning, reward hacking, and explainability.
Ethics Curriculum
2023
CS 177: Human-Centered Product Management
Product management course focusing on design, organizational, and interpersonal skills. Myself and various teaching assistants created a lecture and class activity to help students understand how ethics and values are built into products.
Ethics Curriculum
2024, 2025
CS 124: From Language to Information
Intro-level NLP course. Myself and various teaching assistants created three ethics units on sentiment classification, information retrieval, and large language models that were taught as in-class labs in a flipped classroom.
Ethics Curriculum
2023, 2024 (x2), 2025
CS 107: Computer Organization and Systems
Intro-level computer systems. I facilitated homework assignments that bridge technical content of the course to topics in security and privacy including trust, partiality, and responsible disclosure.
Ethics Curriculum
2024 (x2), 2025
CS 106B: Programming Abstractions
Second course in the Stanford CS sequence, focus on object-oriented programming, data structures, and run-time. I created and taught a new lecture that encourages early-career CS students to think about how they can practice ethics beyond code-level or UI-level changes to products.
Ethics Curriculum
2024 (x2)
CS 106A: Programming Methodology
Large intro CS class for students with no prior programming background. I revised and taught lectures on end-to-end encryption and data ethics to support homework problems on these topics.
Ethics Curriculum
2025
CS 278: Social Computing
Design patterns for social computing systems. Myself and a teaching assistant wrote a reflection assignment to guide students in thinking about the ethical implications of their final projects.
Course Designer & Instructor
2023
Ethics in Tech
2 week high school course on ethics in technology. Based on my UCSC HCI 220 graduate-level course.
UC Santa Cruz
Course Designer & Instructor
2022, 2023
HCI 220: Ethics and Activism in Tech and Design
Graduate-level course surveying topics related to tech ethics (e.g. race and gender issues, privacy, AI bias) and tech activism (e.g. labor movements). Course topics discussed through a design lens. Made a required course by the program director after the first offering in 2022.
[site]
Teaching Assistant
2022, 2021
CMPM 178: Human-Centered Design Research
Upper-division undergraduate course that introduces various methods used in the design-research process. These include user interviews, usability testing, and low-fidelity/high-fidelity prototyping.
Teaching Assistant
2021
CMPM 35: Data Structures for Interactive Media
Undergraduate intro computer science course for non-majors. Students learn common data structures and how to use them to create interactive media.
Teaching Assistant
2018
CSE 20: Beginning Programming in Python
Introductory undergraduate computer science course that introduces novice students to the basics of programming. Topics include data types, functions, and control flow.
Teaching Assistant
2018
CMPS 12A: Introduction to Programming, Accelerated
Accelerated introductory undergraduate computer science course (taught in Java). Topics include functions, control flow, recursion, and basic data structures (e.g. arrays).
Teaching Assistant
2018 (x2)
CMPS 5J: Introduction to Programming in Java
Introductory undergraduate computer science course that introduces novice students to the baiscs of programming.