In various capacities, I have supported teaching and learning in Stanford computer science courses, University of Washington informatics courses, and high school computer science classes while at MIT.
Stanford Computer Science
From 2022-2024, I served as an Embedded Ethics Fellow. Within this role, I worked with faculty members and teaching assistants in the CS department as well as philosophers in the McCoy Family Center for Ethics to embed ethics into undergraduate courses. This role primarily involved curriculum development (lectures, assignments, exam questions, TA-led section content) and guest lecturing.
Within this role, I co-organized a conference on Teaching Responsible Computer Science which occurred March 2023 and was attended by over 100 higher education educators and industry affiliates.
Here are the courses I embedded ethics into, with some notable contributions:
Programming Methodologies (CS 106A)
Wi ʼ23, Sp ʼ23, Fa ʼ23
Programming Abstractions (CS 106B)
Sp ʼ23, Fa ʼ23, Wi ʼ24
Operating Systems Principles (CS 111)
Wi ʼ23, Sp ʼ23, Fa ʼ23, Wi ʼ24
In this introductory operating systems class, I worked with William Grant Ray III, Xiyu Zhang, Liana Keesing, Swayam Parida, Prof. Nick Troccoli, and Prof. John Ousterhout to teach about the relationship between operating systems and trust two page explainer. We ended up developing two 50 minute ethics lectures, two accompanying assignment questions, and questions for the midterm and final.
Assignment 2, Exercise 3 on trust and OS long-term support.
Ethics Lecture 1): Trust and OS. Motivated why trust was relevant to operating systems; framed trust as an unquestioning attitude; identified 3 ways trust manifests (assumption, inference, substitution), and used the Linux kernel as an example of how trust manifests for users, app developers, and systems programmers.
Assignment 4, Exercise 3 asked students to apply this framework of trust to understand the impact of a race condition to a voice chat app (Google Duo)
Ethics Lecture 2: Trust & Context. Engaged students with thinking of contextual factors that affect how we consider and communicate trust. Four dimensions of context are drawn from Value Sensitive Design and include stakeholders, time, values, pervasiveness. Examples I use include Therac-25, continuity of OS for ended Pebble smart watches.
Design & Analysis of Algorithms (CS 161)
I developed a second ethics lecture on different framings of equity applied to hiring algorithms. This drew upon framings of equity by Levinson, Geron, & Brighouse 2022 and used Geyik, Ambler, & Kenthapadi 2019‘s det-greedy algorithm as an example.
Human-Centered Product Management (CS 177)
Natural Language Processing with Deep Learning (CS 224N)
University of Washington Information School
During my Ph.D. at the UW Information School, I served as a co-instructor of record, seminar leader, head teaching assistant, and teaching assistant across various courses relating to data programming, machine learning, and software design, as well as a seminar on critical demography.
Introduction to Data Science (INFO 370)
Fa ʼ17 (34 students)
During my second year of my Ph.D., I designed and co-instructed a new undergraduate course for the first time. My co-instructor was a more senior Ph.D. student, Greg L. Nelson (now an assistant professor at University of Maine CS). This course took a more human-centered approach, framing data science as an interactive and iterative process of using computational tools to analyze data within organizational and social contexts to inform decisions.
The course materials were shared by Women in Statistics and Data Science’s Twitter.
Seminar on Identity, Demographic Data, and Computing Education (INFO 499)
Wi ʼ22 (8 students, remote)
I led a seminar with 8 undergraduate students on how we reduce identity down to demographic data and what the implications of this were to computing education. This seminar was part of Prof. Amy Ko’s Lablet experiment to engage more undergraduates in computing education research.
Advanced Methods in Data Science (INFO 371)
Wi ʼ21 (60 students, remote)
I served as a teaching assistant for a 60 person course taught by Prof. Jevin West. This course taught applied machine learning and data science techniques. I gave a lecture on the fundamentals of gradient descent, as well as its applications by activists to thwart government surveillance. Within this lecture, I also facilitated a discussion on how different positionalities affect how stakeholders may wield the same tools differently.
Technical Foundations of Informatics (INFO 201)
Fa ʼ19 (200 students)
I served as head TA for this introductory data programming course taught by Prof. Dave Hendry. My role involved training undergraduate TAs in inclusive teaching and fair assessment practices. Drawing upon my training in educational statistics, I used psychometric techniques to identify biases in grading by TAs and mitigated these biases by the middle of the quarter.
Cooperative Software Design, UW INFO 461
Sp ʼ17 (35 students)
I served as the TA for this course taught by Prof. Amy Ko. This course taught late-stage undergraduates to apply software engineering principles as they worked in large groups to design, develop, and iterate on web applications. I made minor contributions to a book Prof. Ko wrote about the topics in this course.
Introduction to Computer Science, Prospect Hill Academy.
Fa ʼ14, Sp ʼ15
As part of my three course education concentration at MIT, I spent multiple semesters serving as a part-time TA with two teaches at Prospect Hill Academy. I got to work with racially & socio-economically diverse high school students to build their capacity to express themselves with tools such as PencilCode.
I blogged about my experiences.