COS 301 Programming Languages

Fall 2012 Obfuscated Code Contest

University of Maine Department of Computer Science

2012 Entries and Voting
View 2009 Entries
View 2008 Entries

From the Free Dictionary Online

1. To make so confused or opaque as to be difficult to perceive or understand: "A great effort was made . . . to obscure or obfuscate the truth" Robert Conquest.
2. To render indistinct or dim; darken: The fog obfuscated the shore.

From Merriam-Webster Online 1 a: darken b: to make obscure <obfuscate the issue>2: confuse <obfuscate the reader>

Goal
To produce a program in any language that is almost completely impossible to understand even by an expert in the target language.

Prizes
Prizes are Amazon.com gift cards: 1st Place: $25 ; 2nd Place: $20; 3rd Place $15.
All credible participants will receive credit for one full homework

Submission Date  Submissions must be received by Sunday December 9; online voting will be opened on Monday. Prizes will be awarded Thursday, Dec 13 on the last day of class.   

How to Submit  Email me your code, a description of what the program does, and sample output as described under Rules below.

Judging
  1. Judging will be by student votes. The voting website (courtesy of Tim Wagner) allows you to enter your name and PIN. You can vote for every submission that you think deserves a prize. Each vote is one point.
  2. The top three programs by point rank will be awarded the prizes.
  3. Ties will be broken by secret in-class balloting. If this fails to resolve a tie, we'll flip a coin!
  4. Programs and accompanying material will be displayed without author names until voting is complete.
  5. You may of course vote for your own program(s)
  6. After voting, all programs will be displayed with author names, unless you prefer to keep yours anonymous.   However, anonymous is not an option for winners. You did it and you have to own up it.

Rules

  1. Any language can be used except for languages that are designed to be obfuscated anyway (e.g., WhiteSpace)
  2. Two separate entries will be allowed per person.
  3. The program must compile or be properly handled by an interpreter and run to produce a stated result or computation
  4. You can decide what the program does. Anything from a simple Hello, World program to a complete operating system is fair game. We don't know if computational complexity will be considered as a factor by any voters.
  5. You must provide source code, a written description of what the program does (including expected input if interactive) and complete instructions on how to make the thing work -- what compiler or interpreter or language version on what operating system. Any auxiliary files needed to compile or run should be provided (e.g., make files, data files, etc.)
  6. Programs that accept interactive or other input do not need to be bullet-proof; it's OK to assume correct input.
  7. You must also supply sample output.
  8. At least six entries must be received for the contest to run at all.
  9. Output from automated code obfuscators is not acceptable.
  10. Plagiarism is of course not acceptable.
  11. Winners must be prepared to demonstrate that programs do, in fact, run.



    Home