Topcoder: Difference between revisions

Content deleted Content added
TopCoder as a Business: inverted words? corrected
m formatting
Line 1:
'''TopCoder''' is a company which administers contests in [[computer programming]]. TopCoder hosts weekly online algorithm competitions -— known as SRMs or "single round matches" -— as well as weekly competitions in design and development. The work in design and development produces useful software which is licensed for profit by TopCoder. Competitors involved in the creation of these components are paid royalties based on these sales. The software resulting from algorithm competitions -— and the less-frequent marathon matches -— is not usually directly useful, but sponsor companies sometimes provide money to pay the victors. Statistics (including an overall "rating" for each developer) are tracked over time for competitors in each category.
 
==Types of Competitions==
 
*'''Algorithms''' - (competition length: 2 hours): Competitors are given a set of (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 week) : Contestants are given a particularly difficult algorithmic problem. The scoring is done by computer based on criteria specifically suited to the problem.
 
==Algorithm Competitions==
Line 12:
TopCoder has been hosting algorithm competitions since [[2001]]. Each contest consists of four phases:
 
* '''Coding phase''' (75 minutes) -: Coders write programs to solve three short problems using [[C++]], [[Java_programming_language|Java]], [[C_Sharp|C#]], or [[Visual Basic]]. Each problem set consists of an easy, medium, and hard question, the difficulty of which is reflected in each problem's point value. AThe commonproblems' point value distribution is 250-500-1000, though this varies; the values of the problems vary from match to match,; dependenta oncommon thepoint difficultiesvalue ofdistribution eachis problem250-500-1000. Also, the quicker a coder writes 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 problems 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, and loses 25 points for an unsuccessful challenge. If a coder's solution is successfully challenged, that coder receives no points for the problem. Each successful challenge is added to the set of tests to be run during the System-Testingsystem testing phase.
 
* '''System-Testingtesting phase''' -: Each problem that survives through the challenge phase is run on many diverse test cases. CodersIf area awardedcoder's pointssolution forfails problemsthe thatsystem pass all test casestests, basedthat oncoder thereceives speedno andpoints difficultyfor ofthe problems solvedproblem.

At the end of the contest, ratings are updated to incorporate each participating coder's performance.
 
==Component Design and Development Competitions==
Line 30 ⟶ 32:
Larger problems than are asked during a traditional TopCoder algorithm round are posted. They provide a more flexible competition format with an extended timeline.
 
==Annual EventsTournaments==
 
*'''Google Code Jam''' -: Each summer Google sponsors a set of TopCoder competitions with qualifying rounds and a tournament structure. ThereGoogle arehas also held regional Google Code Jams which are restricted to - for example - participants fromEurope, China; theseand occur throughout the yearIndia.
*'''TopCoder Open''' -: An annual event which features algorithm, design, and development competitions in a tournament structure -, culminating in a live finale for the top competitors.
*'''TopCoder Collegiate Challenge''' -: An annual event in which college students compete for money and school glory.
*'''TopCoder Invitational''' -: An annual event in which the highest rated coders get invited to compete. The only way to compete is by invitation.
 
==Prizes==
TopCoder initially awarded money every week to [[coders]] who did well in the weekly competitions, or Single Round Matches (SRMs). SRMs are now sponsored by outside companies such as [[Google]] and [[Yahoo!]], and forFor 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!]].
 
==Competitions, Ratings, and Divisions==
Line 48 ⟶ 50:
==TopCoder as a Business==
 
The [[business plan]] behind [http://www.topcoder.com topcoder.com]TopCoder comprises several objectives. One goal is to be a recruitment center where companies can come to find programmers who are proven to be highly skilled, and where talented programmers can display their skills to a worldwide audience. Large companies sponsor TopCoder events to gain credibility with and exposure to talented developers. TopCoder also sells software licenses to use the growing body of components that have been developed in competition. Finally, TopCoder acts as an [[outsourcing]] center, allowing companies to farm out custom design and development tasks to TopCoder competitors.
 
== See also ==