Course Description

Foundations of Data Science combines three perspectives: inferential thinking, computational thinking, and real-world relevance. Given data arising from some real-world phenomenon, how does one analyze that data so as to understand that phenomenon? The course teaches critical concepts and skills in computer programming and statistical inference, in conjunction with hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. It delves into social issues surrounding data analysis such as privacy and design.


This course does not have any prerequisites beyond high-school algebra. The curriculum and format is designed specifically for students who have not previously taken statistics or computer science courses. Students with some prior experience in either statistics or computing are welcome to enroll, though some parts of the course will be slow. Students who have taken both statistics and computer science courses should instead take a more advanced course.

Materials & Resources

Our primary text is an online book called Computational and Inferential Thinking: The Foundations of Data Science. This text was written for the course by the course instructors.

The computing platform for the course is hosted at datahub.berkeley.edu. Students find it convenient to use their own computer for the course. If you do not have adequate access to a personal computer, we have machines available for you; please contact the instructor.


You are not alone in this course; the staff and instructors are here to support you as you learn the material. It's expected that some aspects of the course will take time to master, and the best way to master challenging material is to ask questions. For online questions, use Piazza. We will also hold office hours for in-person discussions.


Weekly labs are a required part of the course and should be submitted during your lab session. To receive credit, you must attend lab, work on the lab assignment until you're finished or the lab period is over, and get checked off by a course staff member. Labs will be released on Monday night. If you don't want to attend lab physically, you may complete a lab assignment remotely, but you must complete it by Tuesday at 11:59pm to receive credit. Note that if you attend lab, you can still get credit even if you don't finish all of the lab problems. However, if you choose to work remotely, you must finish the entire lab to receive credit. Each person must submit each lab independently, but you are welcome to collaborate with other students in your lab room.


Small-group tutoring sections will be available to a subset of students who sign up for them during the second week of classes. For students who have not programmed before, these sections will be an excellent use of your time. Details about sign-ups will be shared in lecture and posted here.


Data science is about analyzing real-world data sets, and so a series of projects involving real data are a required part of the course. You may work with a single partner on all projects; your partner must be from your lab section.

Weekly homework assignments are a required part of the course. Each student must submit each homework independently, but you are allowed to discuss problems with other students.


The midterm exam will be held in class (during the lecture period) on Friday, October 6. The final exam will be held from 3 p.m. to 6 p.m. on Tuesday December 12. Unless you have accommodations as determined by the university or permission from the instructor, you must take the midterm and the final at the dates and times provided here. Please check your course schedule and make sure that you have no conflicts with these exams.


Participation points can be earned in one of two ways: attending lecture or completing a final independent data exploration. Lecture attendance will begin to count in week 3; the first two weeks are optional. Students who have previously taken both computer science and statistics courses cannot receive participation credit for attendance; they must complete a final independent data exploration.



Grades will be assigned using the following weighted components:

Activity Grade
Participation 5%
Lab 10%
Homework 20%
Projects 25%
Midterm 10%
Final 30%

The course will not be curved, but further details of grading criteria may not be announced until the end of the course. It is certainly possible for all students to receive high grades in this course if all of you show mastery of the material on exams and complete all assignments.

Learning Cooperatively

With the obvious exception of exams, we encourage you to discuss all of the course activities with your friends and classmates as you are working on them. You will definitely learn more in this class if you work with others than if you do not. Ask questions, answer questions, and share ideas liberally.

Since you're working collaboratively, keep your project partner and the course staff informed. If some medical or personal emergency takes you away from the course for an extended period, or if you decide to drop the course for any reason, please don't just disappear silently! You should inform your project partner, so that nobody is depending on you to do something you can't finish.

Academic Honesty

Cooperation has a limit, however. You should not share your code or answers directly with other students. Doing so doesn't help them; it just sets them up for trouble on exams. Feel free to discuss the problems with others beforehand, but not the solutions. Please complete your own work and keep it to yourself. The exception to this rule is that you can share everything related to a project with your project partner and turn in one project between you.

Penalties for cheating are severe — they range from a zero grade for the assignment or exam up to dismissal from the University, for a second offense.

Rather than copying someone else's work, ask for help. You are not alone in this course! The course staff is here to help you succeed. If you invest the time to learn the material and complete the projects, you won't need to copy any answers.

Late Submission

We don't accept late submissions of labs or homeworks after the deadline. In lieu of offering exceptions or extensions, your lowest homework score and lowest lab score will be dropped. Projects will be accepted up to 2 days (48 hours) late; a project submitted less than 24 hours after the deadline will receive 2/3 credit, a project submitted less than 48 hours after the deadline will receive 1/3 credit, and a project submitted 48 hours or more after the deadline will receive no credit.

If you have a special circumstance that you believe requires an extension, you must contact your lab TA explaining the situation at least 24 hours before the due date of the assignment.

Late Adds

If you add the class late and were not on the waitlist, we will give you a grace period for submitting assignments if you contact us right away; please contact Fahad Kamran at fhdkmrn@berkeley.edu as soon as you add the course with your name, Student ID number, Calnet ID (username), and @berkeley.edu email address.

If you are on the waitlist, please do all coursework and attend labs and lectures; all assignments are due at the normal times.

A Parting Thought

This page shouldn't end with a list of penalties for cheating or lateness, because penalties and grades aren't the purpose of the course. We actually just want you to learn. Please keep that goal in mind throughout the semester. Welcome to Data 8.