CS21SI: AI for Social Good

Spring 2019


Course Description   Students will learn about and apply cutting-edge artificial intelligence techniques to real-world social good spaces (such as healthcare, government, education, and environment). Taught jointly by CS+Social Good and the Stanford AI Group, the aim of the class is to empower students to apply these techniques outside of the classroom. The class will focus on techniques from machine learning and deep learning, including regression, support vector machines (SVMs), neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs). The course alternates between lectures on machine learning theory and discussions with invited speakers, who will challenge students to apply techniques in their social good domains. Students complete weekly coding assignments reinforcing machine learning concepts and applications. Prerequisites: programming experience at the level of CS107, mathematical fluency at the level of CS103, comfort with probability at the level of CS109 (or equivalent). Application required for enrollment.

Email us at cs21si-staff@lists.stanford.edu.


  • 3/5/19 Applications are now open! Apply at bit.ly/AIForGoodApp by 11:59pm on Friday, March 22.

Course Information

Time and Location
Tue 4:30 PM - 5:50 PM, 50-51P
Contact Information
If you have any questions about whether the class would be a good fit for you, feel free to reach out to us at cs21si-staff@lists.stanford.edu (a mailing list consisting of the instructors and course staff).
Course Staff



You're a good fit for the class if you're excited to apply AI to real-world social good spaces. The class provides a high-level overview of the machine learning and deep learning techniques that have already proved effective in tackling social good problems–familiarity with these techniques is not a prerequisite. If you're already experienced using deep learning techniques (you've done research or completed several AI classes at Stanford), the technical content of the class will likely overlap with what you've already seen.

Students are expected to have the following background:
  • Programming experience at the level of CS107 (or equivalent)
  • Mathematical fluency at the level of CS103 (or equivalent), along with basic linear algebra fundamentals (MATH51 is more than sufficient)
  • Comfort with probability at the level of CS109 (or equivalent)
We encourage students of all backgrounds to apply, as the class will build up from mathematical fundamentals (including calculus and linear algebra).
The class will be graded on a credit/no-credit basis, on the basis of required attendance and completion of weekly homework assignments. Homework assignments will generally be iPython notebooks that reinforce concepts from class and guide students in applying these concepts to exciting social good spaces.

Acknowledegment   This webpage is using the code from Shuqui Qu and Ziang Xie who have built the CS229 webpage, special thanks to them.