Principles and Techniques of Data Science

Combining data, computation, and inferential thinking, data science is redefining how people and organizations solve challenging problems and understand their world. This intermediate level class bridges between Data8 and upper division computer science and statistics courses as well as methods courses in other fields. In this class, we explore key areas of data science including question formulation, data collection and cleaning, visualization, statistical inference, predictive modeling, and decision making.​ Through a strong emphasizes on data centric computing, quantitative critical thinking, and exploratory data analysis this class covers key principles and techniques of data science. These include languages for transforming, querying and analyzing data; algorithms for machine learning methods including regression, classification and clustering; principles behind creating informative data visualizations; statistical concepts of measurement error and prediction; and techniques for scalable data processing.

This class is listed as STAT C100 and as COMPSCI C100.

Important Information:

Lab, Section, and Office Hours Schedules

For official holidays see the academic calendar.



While we are working to make this class widely accessible we currently require the following (or equivalent) prerequisites :

  1. Foundations of Data Science: Data8 covers much of the material in DS100 but at an introductory level. Data8 provides basic exposure to python programming and working with tabular data as well as visualization, statistics, and machine learning.

  2. Computing: The Structure and Interpretation of Computer Programs CS61A or Computational Structures in Data Science CS88. These courses provide additional background in python programming (e.g., for loops, lambdas, debugging, and complexity) that will enable DS100 to focus more on the concepts in Data Science and less on the details of programming in python.

  3. Math: Linear Algebra (Math 54, EE 16a, or Stat89a): We will need some basic concepts like linear operators, eigenvectors, derivatives, and integrals to enable statistical inference and derive new prediction algorithms. This may be satisfied concurrently to DS100.


Fernando Perez
Fernando Perez (email)
Josh Hug
Josh Hug (email)


Aakash Bhalothia
Aakash Bhalothia (email)
Allen Shen
Allen Shen (email)
Aman Dhar
Aman Dhar (email)
Ananth Agarwal
Ananth Agarwal (email)
Andrew Do
Andrew Do (email)
Caleb Siu
Caleb Siu (email)
Daniel Zhu
Daniel Zhu (email)
Edward Fang
Edward Fang (email)
Junseo Park
Junseo Park (email)
Manana Hakobyan
Manana Hakobyan (email)
Mian Zhong
Mian Zhong (email)
Neil Shah
Neil Shah (email)
Patrick Chao
Patrick Chao (email)
Sasank Chaganty
Sasank Chaganty (email)
Scott Lee
Scott Lee (email)
Shrishti Jeswani
Shrishti Jeswani (email)
Simon Mo
Simon Mo (email)
Sumukh Shivakumar
Sumukh Shivakumar (email)
Suraj Rampure
Suraj Rampure (email)
Tiffany Jann
Tiffany Jann (email)
Tony Hsu
Tony Hsu (email)
William Krinsman
William Krinsman (email)