Optional Challenge

Submission deadline: Saturday, Nov 14th, 11:59pm (Anywhere on Earth)

October 25th, 2020

The programs you've written in this class have helped you build a foundation of computing skills. Still, those assignments have mostly asked you to implement programs that someone else defined. We want to give you a chance to use your programming abilities to develop something that you think is interesting. So, we are pleased to announce the CS 106A Programming Contest. Note that this is a purely optional contest, so you should not feel obligated to enter if you don't have the time. It's really a chance to let you show some more creativity in working with Python and showcase some of your programming skills if you so choose.

A picture of someone dreaming up a challenge entry

Each of you is eligible to submit one entry for the contest, where an entry consists of an original program written in Python using the facilities you've learned about in CS106A. You are free to use any of the capabilities you've learned about in this class and are free to lookup additional features of Python if you think they might be useful in helping you develop your program. Of course, your contest entry must be entirely your own work.

Your Submission in Lights

The main reason one should participate in the contest is for the joy that comes from the mix of coding with exploration and creativity. We encourage everyone to make anything, even if you consider it a small program. To keep with tradition, we also highlight two entries which especially caught our attention.

The entries will be judged by the CS 106A staff (see official rules below), and a prize will be awarded in each of two categories:

  1. Aesthetic merit. This prize is awarded based on the aesthetic value of the graphical images and/or animations produced.
  2. Algorithmic sophistication. This prize is based on the difficulty of the underlying programming task and the sophistication of what the program does.

In both categories, programming style will be part of the evaluation (so don't submit horrendous code), but the functionality of your program will be the most important aspect for judging. Please note that you don’t have to specify a category; all entries will be eligible for either prize.


The grand prize in each of the categories will be that we will replace whatever individual score most negatively affects your grade—which may be one assignment or the diagnostic assessment—with a 100% in the computation of the final grade.

Official rules

  1. Only students registered in CS 106A are eligible to submit entries in the contest.
  2. Only one entry per person will be accepted.
  3. All entries must be submitted electronically using the Paperless submission system by the submission deadline. Late entries will not be accepted, and you cannot use late days for the contest. In addition to submitting your code electronically, please also send an email to Juliette (jwoodrow@stanford.edu) informing her of your contest submission so she can make sure to keep an eye out for it.
  4. Contest entries should be sensitive to Stanford’s individual and cultural diversity. Programs or narratives that have the effect of perpetuating negative stereotypes will not be considered for prizes.
  5. Contest entries will be evaluated initially by Chris, Mehran, and Juliette. The best entries will then be judged collectively by the section leaders, who will choose the ultimate winners in each category. Winners will be annouced by Nov 18th.

Starter Project

To get started with your contest entry, you should download the Contest Project (see below). You are free to modify this starter project however you wish, as long as you remain within the rules of the contest. Click on the link below to download the starter code:

Happy coding!