Are you up for a challenge?
- You and your team are assumed to already be excellent programmers.
- You have a very limited amount of time (a few hours) to solve as many different problems as you can.
- The problems range in difficulty from merely vexing to practically impossible.
- Since you are under extreme time pressure, while some of your programs may work, they will not likely be "good" software. They won't be well documented, easy to maintain / extend / change, easy for others to understand, and so on.
- Your programs are evaluated only on their results in a few test cases. Nobody looks at your design, your style, or your development process.
- Your program should not do anything more than is required.
- You may not use any online resources for reference, but you can use any printed materials your brought with you to the contest.
- Your team receives a final ranking (1st, 2nd, 3rd, etc.) based on how many problems you solve and how fast you solved them.
The Doane College Programming Challenge is different because...
- We don't assume you already know how to write computer programs. In fact, the challenge and the free online programming course are designed to teach you how to write programs.
- On the other hand, if you already know how to code, there are different contest levels that will still challenge you.
- You have several months to learn the basics of programming and to complete the challenge.
- The levels of the challenge each become more difficult. You can start with level one and work your way up as your skills grow! Or, if you just complete level one, that's OK too.
- Since the time pressure is lessoned, you have plenty of time to do the software "right:" design it, document it, test it, make the code itself easy to read and understand, and so on.
- Your program will be evaluated on how well it solves the problem, but also on how you wrote the program. Things like: Did you follow good software engineering principles? What was your design process? Are you following good coding style? And so on.
- You can improve your evaluation by adding something of your own conception -- something creative -- to your program. You should add something that will surprise and delight the judges!
- You may use any resources you want to solve the problem (books, Web sites, other programmers, etc.), but you have to fully acknowledge all the resources you use. It's hopefully obvious that you can't use any copyrighted or patented ideas or code without permission. You also have to be able to fully explain everything in your program.
- Your team will receive a rating more along the lines of a music contest: Superior, Excellent, Good, Fair or Poor. Once again, your evaluation will be based not only on your program, but on the other aspects of a good software engineering process. Also, the rating is based on your mastery of the level you complete -- you can do just level one and still receive a superior rating!
Programs for the challenge will be written in the Processing programming language. Processing is an offshoot of the popular Java programming language, designed to make things like graphics, sound, and interaction approachable for novice programmers. Processing is freely available from www.processing.org, in Windows, Mac, and Linux versions. Processing is also the programming language we use for our introductory programming course at Doane College.
Phases / dates
- On or after Monday, September 9th, 2013:
- Form teams, register for the challenge, join the free online course for the challenge.
- Construct a development plan, with milestones for development of your program.
- Get started! Learn Processing using the online course, and start designing your application.
- September 2013 - March 2013:
- Work on the challenge.
- Check-in, virtually, with a Doane Information Science and Technology professor via Skype or Google Hangout once a month. This is your opportunity to ask questions, seek guidance, and even show off!
- Saturday, April 5th, 2014: Final presentations, judging, celebration and awards (prizes!) on the Doane College campus in Crete, Nebraska.
How To Start