A Complete Breakdown of the 2002 Invitational Championship Round

Anyone who’s been with TopCoder for long enough should be used to the troubles that occasionally come up during Single Round Matches. Whether it’s due to an error in the problem statement, system testing or some other part of the process, sometimes there is an issue that compromises the fairness or feasibility of counting the results of a contest. Some coders get mad about having their 75 minutes of hard work thrown out, but most of them accept that accidents do happen.

When there’s a similiar problem at a $150,000 tournament, though, people tend to be less accepting.

(full article)

The Challenge Phase throws off a lot of newcomers to the TopCoder competition arena. While the Coding and System Testing phases replicate real world situations that most coders are familiar with, debugging someone else’s code in the Challenge Phase is a task that may be unfamiliar to many new coders.

By making you look at other people’s code and evaluate the best way to break it, the Challenge Phase forces you to flex your brain in new and different ways from normal coding. Some coders just don’t have a knack for challenges, and they rely on quick, accurate coding to get them through the contest. Others, however, are masters of finding those little bugs in a person’s code that invalidate their entire solution and make their 75 minutes of hard work meaningless.

These coders make up TopCoder’s list of the 25 best challengers. I talked with two coders on this list — and one who is almost on it — about what the Challenge Phase means to them, their memories of challenges past, and how they got to be so good at breaking people’s code.

(full article)

You probably haven’t put much thought into the problem creation process before, have you? You probably just take it for granted that every week there will be new and well-written problems waiting for you in the TopCoder Arena, don’t you? Well, someone has to write those problems before you can code them. Someone has to test the solutions to those problems before you can challenge them. These often-neglected members code feverishly just so that you can have the privilege of competing in TopCoder every week! I went into the administrator’s lobby during one match to de-mystify the process of how a problem gets from the writer’s imagination on to your screen.

(full article)

“If you take it slow you’ll move up.”

If you ask most coders about their strategy for TopCoder matches, they’ll probably answer with something like “score a lot of points” or “code the problems correctly.” This isn’t chess after all; it’s computer programming. No need for deep strategy here, just code quickly and accurately. As cintamani puts it “this is about trying not to make a mistake, that’s all there is to it.”

Dig a little deeper, though, and you’ll find that little differences in style and approach can be all that separates a top-tier coder from a low-level gray-name. The decisions a coder makes about match preparation, coding, and challenging can affect the final outcome of a tight match. I did a post-match interview with the members of two different rooms – one in each division — to get some idea of how these various strategies play out in the coding arena.

(full article)

Case studies and the TopCoder view point

It’s the challenge phase. At first glance the code you’re looking at seems horribly flawed. A crucial if-statement is missing at the beginning of a loop, making this coder’s solution useless. “How could they have made such an obvious mistake,” you think, as you run through the code one final time to make sure you didn’t miss anything. It’s then that you see it: a slider at the bottom of the viewing window indicating that there is more to this code than meets the eye. As you move the slider to the right, you see the crucial if-statement, indented past the edge of the viewing window.

Was this an act of deception, intended to trick coders into making unsuccessful challenges, or was it an innocent mistake by a coder having trouble indenting correctly? The answer to this question determines whether or not cases like these are punishable under TopCoder’s obfuscation rule.

(full article)