NOTE: this website is out of date. This is the course web site from a past quarter, Autumn 2019. If you are looking for winter quarter's website, you should visit instead. Please be advised that courses' policies change with each new quarter and instructor, and any information on this out-of-date page may not apply to you.


Tuesday, October 29
7:00PM-9:00PM PDT
Hewlett 200

Wednesday, December 11
3:30PM-6:30PM PST
CEMEX Auditorium


cs109 @


Lisa Yan
yanlisa @ stanford
Gates 187
W 3:00-5:00pm


Contest Results

We received 29 contest entries this quarter and were impressed by the creativity and probability know-how the entries showed!

Winner: Robert Thompson, A Better Way to Reform the Electoral College

Runner Up: Serena Jing, Goodbye Mr. Chips: a Look at Surname Extinction

Runner Up: Callum Burgess, Using Statistics to Drum (Video)

Final Exam

The CS109 final is coming up: it is Wednesday, December 11, 3:30PM-6:30PM PST, in CEMEX Auditorium. The final is a closed book, closed calculator/computer exam; you are, however, allowed to bring six 8.5" x 11" pages (front and back) of notes in the exam, formatted in any way you like. The last page of the exam will be a Stanford Normal Table, in case you need it.

The best way to study is by working through the practice exams.

Update (12/13): Solutions to the final are located here: Final solutions.

Final PSet

The final problem set is now available. You will implement two machine learning algorithms, Naive Bayes and Logistic Regression. You will then use these algorithms to make predictions on heart tomography, Netflix movies and ancestry.

Note: We will cover neural nets as part of our intro to deep learning lecture this week, so you can (and should) feel free to skip problem 3 for now.

PSet #5 is out

The penultimate problem set is now available! The problem set includes evaluating peer grading, a/b testing, general inference in WebMD.

This problem set has only 9 questions. Celebrate!

Central Limit Theorem

The CLT says that if $Y$ is the sum of $n$ iid random variables (which all have expectation $\mu$ and variance $\sigma^2$) then:

$Y \sim N(n\mu, n\sigma^2)$

The proof is beyond the scope of the class. A friendly CS109 student from a few quarters ago (Sophia Furfine) made a video of the proof in case you are curious!

Community answers to Concept Checks

We have released a short list of anonymous, suggested responses for all previous Concept Checks. These entries were selected anonymously from your answers this quarter, so props if you see your response listed! Go ahead and check out the link here: Community Answers to Concept Checks (requires Stanford login + Stanford Google login).

As a side note, there are many other possible answers for all of these questions! These are just example answers that will help you understand the material more.

CS109 Contest

This quarter we are going to hold the fourth ever Stanford Probability for Computer Scientists Contest. The contest is completely optional. See the contest handout for more details.

Week 5 Concept Check deadline

Hope everyone enjoyed the midterm! The Week 5 Concept Check deadline has been pushed back to Wednesday, October 30th, at 11:59PM.

PSet #4 is out

Problem Set #4 has been released! It has you predict users based on biometric keystrokes. The pset clearly delineates the questions that you should do before the midterm :-).

Midterm Next Tuesday

The CS109 midterm is coming up: it is Tuesday, October 29, 7:00PM-9:00PM PDT, in Hewlett 200. The midterm is a closed book, closed calculator/computer exam; you are, however, allowed to bring three 8.5" x 11" pages (front and back) of notes in the exam, formatted in any way you like. The last page of the exam will be a Stanford Normal Table, in case you need it.

The best way to study is by working through the practice exams and section problems.

Review session: Julie, one of our TAs, will be hosting a review session Saturday, October 26, 10:00AM-12:00PM PDT in Shiram 104. This session will not be recorded, but all materials will be posted on the exam practice website afterwards.

The Week 5 concept check will be due on Wednesday, October 30th, 1pm, instead of the normal Tuesday deadline. The Week 4 and Week 6 concept checks will still be due Tuesday, October 22nd, and Tuesday, November 5th, respectively.

Alternate midterm assignments (and OAE) will be finalized in the coming days; look out for an email with your specific logistics. If you requested an alternate midterm and have not received your information by Friday, October 25th, please email Noah (narthurs@).

PSet #3 is out

Problem Set #3 has been released! It uses real probability density functions from the IPCC Climate Change report, and has you analyze a bloom filter (a probabilistic datastructure).

PSet #2 is out

Problem Set #2 has been released! Calculate the updated belief of the location of a cell phone and hypothesize the genetic relationship between bats and whether they carry Ebola. Here is a Latex template for pset 2.

Complete Weekly Concept Checks!

In addition to your Section preferences, you should be filling out the Weekly Concept Checks. Please make sure you finish the Week 1 Concept check by Tuesday, October 1, at 1:00PM PDT.

Python Tutorial this Friday

Update (9/28/19): Session slides and recording are now up!

For those of you interested in learning/reviewing Python 3, Sonja will be giving a Python tutorial on Friday, September 27, 3:30-4:20pm in Hewlett 102. We will try our best to record this session. We recommend looking at the Jupyter notebook beforehand. If you need help getting set up, this Piazza post should be a good starting point.

Sign up for Section!

Update (9/30/19): Section assignments have been released. If you did not receive an email, please contact the staff mailing list. For any other section scheduling questions, please fill out the Late & Swap form ASAP. Section starts this week.

Please sign up for section by filling out this form:

Once a week you are going to meet in a small group section. We are going to find the best weekly time for everyone. Section signups will close on Saturday, September 28th at 11:59pm. Preferences are not first come first serve. For more information, visit the Section Attendance page.

PSet #1 is out

Problem Set #1 has been released! It is due next Friday, October 4th at 1:00pm. Submission will be via Gradescope with entry code M7B45K. Office hours will start tomorrow (Thursday), and the office hours calendar will have times and locations.

If you're new to Gradescope, you can join the class by going to and clicking the button in the top right marked "Sign Up." Select "Student," then enter the entry code, your full name, email address, and 8-digit student id.

You are encouraged to write up your problem sets using LaTeX. Templates for each Problem Set are located on their respective webpage. See this intro to LaTeX, and the LaTeX code used to generate it. Though you may install LaTeX, it is often much easier to use an online LaTeX editor. A great option is:

What is CS109?

We put together some handouts to help you understand where we are going to go in CS109 and how we plan to get there.

The Administrivia handout has details on course logistics. Read this to get a sense for what CS109 is going to entail.

The Course Schedule page shows you the topics that we are going to cover in CS109 and the corresponding readings. We will also post materials from lecture on the schedule page.

The Staff / Office Hours page has contact information for TAs and the office hour calendar. Office hours will start Thursday, September 26.

Once the quarter starts, you will need to sign up for a weekly 50-minute discussion section. Details on how to sign up for section will be provided during the first week of class.


Welcome to CS109! We are looking forward to a fun quarter. Class starts Monday, September 23, at 1:30pm in Cubberley Auditorium.


Week Monday Wednesday Friday

Sep 23

1: Counting

Read: Ch 1.1-1.2

Sep 25

2: Permutations and Combinations

Read: Ch 1.3-1.6
Out: PSet #1

Sep 27

3: Axioms of Probability

Read: Ch 2.1-2.5, 2.7

Sep 30

4: Conditional Probability and Bayes

Read: Ch 3.1-3.3

Oct 2

5: Independence

Read: Ch 3.4-3.5

Oct 4

6: Random Variables and Expectation

Read: Ch 4.1-4.4
Due: PSet #1
Out: PSet #2

Oct 7

7: Variance, Bernoulli, Binomial

Read: Ch 4.5-4.6

Oct 9

8: Poisson and More

Read: Ch 4.7-4.10

Oct 11

9: Continuous Random Variables

Read: Ch 5.1-5.3, 5.5

Oct 14

10: The Normal Distribution

Read: Ch 5.4
Due: PSet #2
Out: PSet #3

Oct 16

11: Joint Distributions

Read: Ch 6.1

Oct 18

12: Continuous Joint Distributions

Read: Ch 6.1

Oct 21

13: Independent Random Variables

Read: Ch 6.2-6.3
Out: PSet #4

Oct 23

14: Conditional Distributions

Read: Ch 6.4-6.5
Due: PSet #3

Oct 25

15: Correlation and Covariance

Read: Ch 7.3-7.4

Oct 28

16: Great Expectations

Read: Ch 7.1-7.2
Midterm: Tue Oct 29th, 7:00-9:00pm

Oct 30

17: Beta

Read: Ch 5.6.1-5.6.4, 7.5-7.6

Nov 1

18: Central Limit Theorem

Read: Ch 8.3

Nov 4

19: Sampling/Bootstrapping

Read: Lecture Notes

Nov 6

20: General Inference

Read: Lecture Notes
Due: PSet #4
Out: PSet #5

Nov 8

21: Parameters and MLE

Read: Lecture Notes

Nov 11

22: Gradient Ascent

Read: Lecture Notes

Nov 13

23: Maximum A Posteriori

Read: Lecture Notes

Nov 15

24: MAP + Naive Bayes

Read: Lecture Notes
Due: PSet #5
Out: PSet #6

Nov 18

25: Naive Bayes + Logistic Regression

Read: Lecture Notes

Nov 20

26: Logistic Regression + Deep Learning

Read: Lecture Notes

Nov 22

27: Deep Learning II

Nov 25

Thanksgiving break
No Class

Nov 27

Thanksgiving break
No Class

Nov 29

Thanksgiving break
No Class

Dec 2

28: CS109 Review

Read: Everything :)

Dec 4

29: Beyond CS109

Our last class
Due: PSet #6

Dec 6

Dead Day
No Class

Last day to submit assignments
Final: Wed Dec 11th, 3:30-6:30pm