$\DeclareMathOperator{\p}{Pr}$ $\DeclareMathOperator{\P}{Pr}$ $\DeclareMathOperator{\c}{^C}$ $\DeclareMathOperator{\or}{ or}$ $\DeclareMathOperator{\and}{ and}$ $\DeclareMathOperator{\var}{Var}$ $\DeclareMathOperator{\E}{E}$ $\DeclareMathOperator{\std}{Std}$ $\DeclareMathOperator{\Ber}{Bern}$ $\DeclareMathOperator{\Bin}{Bin}$ $\DeclareMathOperator{\Poi}{Poi}$ $\DeclareMathOperator{\Uni}{Uni}$ $\DeclareMathOperator{\Exp}{Exp}$ $\DeclareMathOperator{\N}{N}$ $\DeclareMathOperator{\R}{\mathbb{R}}$ $\newcommand{\d}{\, d}$

The Probability Challenge

Due: March 20th, 11:59p AOE

It is our happy job to announce that this quarter we are going to host the Stanford CS109 Probability for Computer Scientist Challenge. This challenge is going to be completely optional (and in the genuine sense of the word optional – not in some mischievous “this is extra credit but if you don’t do it, your grade will suffer” sort of way). Our intention is to give you space to have fun with the material, to be inspired and to be inspiring. It also serves as a way for you to demonstrate what you have learned in a creative context.

For the challenge, create a probability driven project of your choosing that highlights concepts from the class and does something interesting. Each of you is eligible to submit one entry for the challenge, where an entry consists of a screen capture and a short write-up of the probability theory behind your work. The challenge entries will be due March 20th at 11:59pm Anywhere on Earth. We will release the results on the following Monday. Though as we will explain, you win just by playing.

Genuinely Optional

This challenge is genuinely optional. We appreciate that many of you are busy – and our intention is not to create any more obligatory work. When we say optional we really mean it. We will only apply bonuses for the challenge after we have calculated final grades for the class. Thus, if you don’t participate you are going to get the exact same final grade in CS109 as you would have received had there been no challenge. We don’t recommend that you work on your challenge entry if it means you won’t have time to study for the class.

Evaluation Criteria

The entries will be evaluated by the CS 109 staff (see official rules below), on the following dimensions:

  1. Creativity. We are looking for original ideas that showcase unique thought. This dimension will be reflected in how novel your work is. Similarly, we encourage work that is aesthetically interesting.
  2. Impact. We will give special consideration to work that seems to have the potential for positive social benefit.
  3. Academic Sophistication. This dimension is based on the difficulty of the underlying probability, how well the ideas relate to the concepts presented in CS109 and how well you are able to articulate your ideas.

An entry does not have to be strong on all evaluation dimensions. For example a submission that is an expression of a truly creative idea would be well received, even if it does not use the hardest concepts from CS109 and doesn’t have much social benefit.


We will reward serious challenge entries with runner up prizes, based on the amount of effort that was included, and the extent to which the work demonstrates understanding of the CS109 material. In addition we are going to give one grand prize. If you win a grand prize we will replace all of your quiz scores with 100%s.

Submission Format

Your submission will have two parts, a demonstration video and a short writeup (the minimum needed to explain what is cool and probabilistic about your submission).

The demonstration video should just be a screen capture that shows your program running. The idea behind this submission format is to allow you to use any programming language without having to worry about your program running on our machines. The writeup does not have to be formatted in any way. It is another medium for you to explain to us why your submission is interesting. You should include a probabilistic explanation of your program.

Use the two submission parts in anyway you like. If your idea is best expressed via a writeup, you can submit a short and sweet video. If your entry is best expressed via a video, you can keep your writeup minimal.

Official rules

  1. Entries to this challenge are beholden to the Stanford Honor Code.
  2. Only students registered in CS 109 are eligible to submit entries in the challenge. Only one entry per person will be accepted.
  3. No groups are allowed. Individual work only.
  4. You can code your submission in any programming language.
  5. All entries must be submitted electronically on Gradescope. Include both a link to your demonstration video and a PDF of your write up.
  6. Your submission must be sent by March 20th at 11:59pm Anywhere on Earth. Late entries will not be accepted.
  7. You may ask Chris, Jerry or the TAs for help during office hours, however they will give priority to students working on problem sets.
  8. You are free to use any of the probability ideas we have gone over in class.
  9. If you use a concept we didn’t cover, the concept should be close enough to the material that you could explain it in terms of things we have learned in CS109.
  10. This should not be a project you have made for a grade in another class.
  11. To keep things fair, we are not going to give credit for using advanced python libraries (e.g. tensorflow or pytorch). You could use them, but we won't consider it demonstration of CS109 concepts and your submission should involve probability beyond any library you use.

That's all!

Don't forget to have fun.