Topcoder Contest Review
- Algorithms (competition length about 2 hours): Competitors are given a set (usually three) of algorithmic problems and have 75 minutes to correctly solve as many as they can.
- Design (competition length 1 week): Competitors are given a set of user requirements and attempt to convert them into a usable software design specification. Their efforts are judged on a variety of “real-world” criteria on how correct and practical their design is.
- Development (competition length 1 week): Competitors are given a set of design specification and attempt to write software components that match those specification. These components are judged on their functionality and coding style.
- Marathon Matches (competition length 1 or 2 weeks): Contestants are given a particularly difficult algorithmic problem. The scoring is done by computer based on criteria specifically suited to the problem.
- Studio (competition length varies): Contestants are asked to show off their creative skills in a competitive environment.
TopCoder has been hosting algorithm competitions since 2001. Current SRMs consist of four phases:
- Coding phase (75 minutes): Coders write programs to solve three short problems using a limited selection of languages (currently C++, Java, C#, Visual Basic and Python). Each problem set consists of an easy, medium, and hard question, the difficulty of which is reflected in each problem’s point value. The problems’ point values vary from match to match; a common point value distribution is 250-500-1000. Also, the quicker a coder solves a given problem, the more points that coder gets.
- Intermission (5 minutes): After the coding phase ends, there is a short break before the challenge phase begins. This time can be used to think of challenge cases.
- Challenge phase (15 minutes): Coders can challenge the submitted solutions of other participants in their room by constructing test cases in an attempt to generate erroneous output. The challenger receives 50 points for a successful challenge (the challenged coder loses all his points for that problem), and loses 25 points for an unsuccessful challenge. Each successful challenge is added to the set of tests to be run during the system testing phase.
- System-testing phase: Each problem that survives through the challenge phase is run on many test cases. If a coder’s solution fails the system tests, that coder receives no points for the problem.
At the end of the contest, ratings are updated to incorporate each participating coder’s performance.
Prizes
TopCoder initially awarded money every week to coders who did well in the weekly competitions, or Single Round Matches (SRMs). For a while, prize money was only awarded twice a year to winners and finalists of the TopCoder Collegiate Challenge (TCCC, which is in the spring) and the TopCoder Open (formerly the Invitational, which is in the fall). As of June 2005, some weekly SRMs began to once again award prize money, being sponsored by outside companies such as Google and Yahoo!. However, since August 2008 TopCoder returned to giving money prizes only to winners and finalists of other tournaments.






Interviews
http://www.acmsolver.org/interviews
