How to {win|do well in} a
Programming Contest

Written by Jeffrey Sharkey

Well, by now you've probably Googled "how to win a programming contest." If you haven't, then go do that for awhile and come back later. ;) jk

Everyone seems to have different answers and strategies. I've only competed in two contests, so I'm no expert. But there were a few things that stuck out in my mind.

Team

Hopefully you were told that you'll be on a team. (Yay!) If you think you don't need a team, go build a pyramid and come back when you're finished. lol

Spend a lot of time with your team; working out practice problems, eating pizza, memorizing library functions, etc. Find a few evenings and meet in a classroom with chalk and a projector. You don't need to pound out fully coded solutions, but at least walk through the problem solving process together.

Try finding a team of people you've [successfully] worked with before. If that doesn't work out, contest teams are a great way to make new friends. Get over any personality clashes ASAP. ;)

Skills

Swapping out several coders on the same computer isn't a great idea. Find someone who can type fast, and make them your resident coder. They don't need to have the best coding skills, but they have to type accurately and fast.

Two people should code together, watching and talking with the fast typer. That way you'll all know the code, and can help with debugging advice. Let the coder finish mundane output formatting while you start working on the next problem.

Don't waste time writing full pseudo-code on paper. Jot down general ideas like:

split string on periods and count sentences
for each sentence, split on spaces to count words

Only include loop details if important, otherwise keep them as action context like "for each" above. Lightweight pseudo-code will keep your team fast.

For the actual programming, know (yes, in order of importance):

Finally, put special emphasis on practice problems specific to your event. Most contests are fairly uniform, but always know your contest better.

Attitude

Go read up on sportsmanship at Wikipedia. Being a card-carrying geek doesn't exempt you. ;) Never blame your teammates, never throw keyboards, and always have fun.

Oh, and hey, let me know how your team did! I was the coder on the UMD team that won DigiKey DKC3 in 2005, and placed first at our location in the 2005 ACM Regional competition. Go UMD! :)