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.
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
6; voting will be opened on Monday. Prizes will be awarded Thursday, Dec 8 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
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.
The top three programs by point rank will be awarded the prizes.
Ties will be broken by secret in-class balloting. If this fails to resolve a tie,
we'll flip a coin!
Programs and accompanying material will be displayed without author names until
after voting.
You may of course vote for your own program(s)
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
Any language can be used except for languages that are designed to be obfuscated
anyway (e.g., WhiteSpace)
Two separate entries will be allowed per person.
The program must compile or be properly handled by an interpreter and run to produce
a stated result or computation
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.
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.)
You must also supply sample output.
At least six entries must be received for the contest to run at all.
Output from automated code obfuscators is not acceptable.
Plagiarism is of course not acceptable.
Winners must be prepared to demonstrate that programs do, in fact, run.