$\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: Saturday, March 11th at noon Friday, March 17th at 5:00pm

We're delighted to announce that this quarter we are going to hold the Stanford CS109 Probability for Computer Scientists Challenge. This challenge is 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.

We call this a challenge instead of a contest to emphasize the fact that you're not competing with each other for some limited resource. It's true that there are grand prizes, and that the grand prize is an automatic 100% on all exams, including the final exam that you won't be required to take. Even though, in practice, there are a limited number of grand prizes, we certainly do give out more than one in most quarters, so it isn't some zero-sum game where someone else is denied a grand prize becuse you receive one.

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 Saturday, March 11th at noon March 17th at 5:00pm. We will announce the results by Monday, March 13th Sunday, March 19th.

But, as we will explain, you win just by playing!

Who is This For?

The Creative Learner: Do you love being creative? Do you excel at learning when you have to think outside the box? Then the CS109 Challenge is for you!

Beyond The Exam: Do you feel like you are unable to show what you know in an exam setting? The CS109 Challenge is for you! Show us what you know by being creative with the material.

Pushing Limits: Do you feel like you're fluent in the basics, and you want to know how far you can push yourself? The CS109 Challenge is for you!

Genuinely Optional

All of this is genuinely optional. We understand that many of you are busy, and it's certainly not our intention to create more stress.

When we say optional, we truly mean it. We will only apply bonuses for the challenge after we have calculated final grades for the class, and at least one person who doesn't participate will get an A+ in the class. Restated, if you don’t participate, you're going to received the same final grade in CS109 as you would have received had there been no challenge.

Evaluation Criteria

The entries will be evaluated by the CS109 Staff (see official rules below) along 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 in all dimensions, but it helps if it hits multiple objectives. For example, a submission that is an expression of a truly creative idea would be well received, even if it doesn't really leverage the most advanced of CS109 concepts doesn’t have much social benefit. All submissions should be ethically sound and, especially, should not harm society (since this is subjective, please feel free to chat to us if you think there is some grey area). Do: make a project that shows off CS109 material. Don't: feel like you need to force an impact area into your project.

Here are three projects from the past that we have loved. They leveraged a wide range of CS109 topics and applications:


We will reward all serious challenge entries with extra credit, based on the amount of effort that was included, and the extent to which the work demonstrates understanding of the CS109 material. Everyone wins by playing. And as promised, we are going to give at least one grand prize. If you win the grand prize we will replace all of your exam scores with 100%s. How amazing is that?

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: Time expectation is 5 minutes or less. Only in exceptional circumstances should you go over (e.g. your project is a lesson and you need more time).

Short Writeup: Max length 3 pages. You can have an appendix with further derivations / figures if necessary.

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. Less is more!

Official rules

  1. Entries to this challenge are beholden to the Stanford Honor Code.
  2. Only students registered in CS109 are eligible to submit entries in the challenge. Only one entry per person can 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 final results must be submitted by Saturday, March 11th at noon Friday, March 17th at 5:00pm. Late entries can't be accepted.
  7. You may ask Jerry or the CAa for help during office hours, though 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 worked on for 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!