There is a big world of interesting problems out there.

One of the great things about computer science is that you get to make things. You can turn pure mind stuff from your own imagination into reality. Its a field marked by creative inventors and people who solved deep and interesting problems. In celebration of what is truly a foundation of the field we present to you the CS106B contest.

The CS106B Contest is an open-ended program. Your mission is simply to submit a C++ program that uses the concepts covered before Jan 29th to solve a problem that is conceptually interesting. The experience tends to be rewarding in itself (and great practice for say the exams). But in recognition of great work we will be offering prizes. Here is a blank project that you can program your solution in:


Starter Code
Due Date: The contest is due January 29th at 5:00pm. No late days may be used.
Idea: Build any program you want, using the tools covered in class.

Prizes

Prizes will be offered in two categories:

  1. Algorithmic complexity: This prize is based on the difficulty of the underlying programming task and the sophistication of your solution. Please let us know how much of the algorithmic ideas you develop on your own (though implementing a complex algorithm that someone else has previously invented is great too).

  2. Creativity: This prize is based on the quality of the original ideas present in your work. Creativity takes many forms such as coming up with a novel problem to work on or making beautiful aesthetics.

Winning either category of the grand prize entitles you to substitute a 100% for whatever individual score most negatively affects your grade at the end of the term. Thus, if you win this contest and end up bombing an assignment, the midterm, or even the final, we will overlook that misstep and count it as a 100%. The second place prize will be a two grade increase on the maximally benefitial assignment score (eg check-plus becomes plus-plus).


Official Rules

  1. Only students registered in CS 106B are eligible to submit entries.

  2. You may not work in pairs. This is an individual project.

  3. Only one entry per person will be accepted. An entry consists of the source files you have used in your project along with any data files the project requires.

  4. All entries must be submitted electronically by 5:00P.M. on Monday, January 29, using the paperless submission system. Late entries will not be accepted. If you have an especially large submission, please contact us before hand.

  5. To keep things fair you can only use the tools that we learn about in class (up to the due date of the contest) or described in the online documentation. For example, any graphical output must use only the facilities exported by the interfaces described in the online documentation available on the web site. Using more powerful native graphics libraries is not acceptable for this contest.

  6. 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.

  7. Contest entries will be evaluated initially by Chris Piech and Megan Faulk. The best entries will then be judged by the section leaders, Eric Roberts and Jerry Cain. They will choose the winners.


Where to Start

One of the goals of this project is for you to come up with the idea on your own. Feel free to bounce ideas off the staff -- but ultimately the choice is yours. One of the concepts covered in assignment 2 is Breadth First Search. Using this technique you can solve a ton of interesting problems (Bananagrams is one example).

All the best. Enjoy the freedom.