Course Description

Machine learning has become an indispensable tool for creating intelligent applications, accelerating scientific discoveries, and making better data-driven decisions. Yet, the automation and scaling of such tasks can have troubling negative societal impacts. Through practical case studies, you will identify issues of fairness, justice and truth in AI applications. You will then apply recent techniques to detect and mitigate such algorithmic biases, along with methods to provide more transparency and explainability to state-of-the-art ML models. Finally, you will derive fundamental formal results on the limits of such techniques, along with tradeoffs that must be made for their practical application.

Course Instructor

Office Hours
Wednesday 3:00 pm - 4:00 pm at Gates 346

Course Assistant

Office Hours
Tuesday 11:00 am - 12:00 pm, Gates 421
Friday 11:00 am - 12:00 pm, Gates 457

Stanford Honor Code

Students are free to form study groups and may discuss homeworks, projects and assignments in groups. However, for homeworks, each student must write down the solutions and code from scratch independently, without referring to any written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by themselves. It is an honor code violation to copy, refer to, or look at written or code solutions from a previous year or any other source, including but not limited to: official solutions from a previous year, solutions posted online, and solutions you or someone else may have written up in a previous year, or from any other source. Furthermore, it is an honor code violation to post your assignment solutions online, such as on a public git repo. You must explicitly cite any external content, research, code or other resources you use for your homeworks, analyses or projects. The Stanford Honor Code can be found here. The Stanford Honor Code pertaining to CS courses can be found here.

AI Tool Policy

You may use generative AI tools such as Co-Pilot and ChatGPT as you would use a human collaborator. Soliciting direct answers or duplicating responses from these tools is not allowed. Any interactions with these tools must be credited as if they were contributions from collaborators. Using generative AI tools to essentially complete any part of an assignment or project is forbidden and will be considered a breach of the honor code. For additional information, see Generative AI Policy Guidance here.

When submitting your assignment to Gradescope, you must attach any chat transcript directly related to your assignment. We will be tolerant for actions taken in good faith. You can either add screenshots of the transcripts at the end of your submission, or attach a separate pdf file. We may later adjust the policy should we find the AI tool usage undermines the educational value.

Lecture Attendance

We require in-person lecture attendance. Specifically, the three socio-technical analyses dates will include in-class projects. More broadly, class participation and in-class discussions will count toward the final grade.

Time & Location

Spring Quarter: April 1 - June 5, 2024
Lecture: Monday, Wednesday 1:30 - 2:50 PM


Course staff can be reached through Ed. For personal correspondance, please send a private message on Ed.

Grade Breakdown

  • Three Homeworks: 10% each, total 30%
  • Three In-class Socio-Tech Analyses: 5% each, total 15%
    • In-class activities: 50%
    • 1-page summary: 50%
  • Exploratory Project: 15%
  • Final Project: 35%
    • Proposal: 10%
    • Progress Report: 20%
    • Poster Presentation: 20%
    • Final Report: 50%
  • Participation: 5%

Grading Policy

Letter grades in this course will be assigned according to the predetermined scale below. Plus/minus grades will be based on a curve within the scale. Grades below C will be assigned based on standard practices.

  • A: [90%,100%]
  • B: [80%,90%)
  • C: [70%,80%)


What are the pre-requisites?
  • Basic knowledge about machine learning from at least one of CS 221, 228, 229 or 230, or equivalent experience.
  • Proficiency in a programming language: preferably Python.
Can I audit or sit in?
A significant component of this course is in-class participation and activities. In general, we are very open to sitting-in guests if you are a member of the Stanford community (registered student, staff, and/or faculty), but the primary participants will be registered students. Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend. If the class is too full and we're running out of space, we would ask that you please allow registered students to attend.
Is there a textbook for this course?
While there is no required textbook, we offer a recommended reading list here for this course.

Academic Accomodations

If you need an academic accommodation based on a disability, please register with the Office of Accessible Education (OAE). Professional staff will evaluate your needs, support appropriate and reasonable accommodations, and prepare an Academic Accommodation Letter for faculty. To get started, or to re-initiate services, please visit

If you already have an Academic Accommodation Letter, please make a private Ed post. OAE Letters should be sent to us at the earliest possible opportunity so that the course staff can partner with you and OAE to make the appropriate accommodations.

Acknowledgments. HTML taken from various CS courses given at Stanford: cs231n, cs231a, and cs229.