From Wikipedia, the free encyclopedia

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.

<script type="text/javascript">// </script>

Types of competitions

  • Algorithms (competition length 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 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

TopCoder has been hosting algorithm competitions since 2001. Each SRM consists of four phases:

  • Coding phase (75-85 minutes): Coders write programs to solve three short problems using C++, Java, 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. The problems' point values vary from match to match; a common point value distribution is 250-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 (10-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 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.

Component design and development competitions

TopCoder hosts design and development competitions in which coders can compete to create components and applications that are either generally useful, or that third parties have contracted for.

TopCoder design and development competitions are week-long competitions. New components are posted every Thursday, and coders can choose a component from a list of Java and .NET components, and they have a week to design or develop their chosen component. Each week new components are posted. Development components are generally components that have been designed in a previous component design contest.

Marathon matches

Larger problems than are asked during a traditional TopCoder algorithm round are posted. They provide a more flexible competition format with an extended timeline.

Tournaments

  • Google Code Jam: Each summer Google sponsors a set of TopCoder competitions with qualifying rounds and a tournament structure. Google has also held regional Code Jams restricted to Europe, Latin America, China and India.
  • 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 High School: An annual event in which high school students compete for scholarship and school glory. This tournament is started on 2007

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!.

Statistics

Although 100,000 people[3] have registered as members at TopCoder website as of December 14, 2006 - less than 18% of them have participated in at least one algorithm competition with only 5% were active (participated during last 6 months). Even less have participated in component design (0.3%) and development (0.6%)[4].

Competitions, ratings, and divisions

In the early days, the Iron Man system was set up under which coders were grouped into rooms of ten according to skill level (determined by rating, similar to ELO chess rating), in order to encourage newcomers (who would have little hope of beating out the best coders for prize money) to stay and compete. After the contest, the 3 highest scoring coders in each room were paid according to the skill level of the room (winners in the room of contestants with the top 10 ratings were paid more than those in the room with coders 11-20, and so on). This created some paradoxical situations such as the possibility of coming fourth in the whole contest and getting no money, while the 111th placed contestant got paid, and gave rise to ratings diving. Ratings diving, or taking a ratings dive was accomplished simply by doing very poorly on purpose in a particular contest (by opening and not submitting any problems or submitting incorrect challenges). As a result, a contestant would, in their next contest, be placed in a room with 9 coders among whom they had a good chance of winning some money. The idea was that the dramatically increased chance of winning money made up for the fact that the money to be won was a lesser amount given the lower average rating of the room.

Coders have since been divided into two divisions, Division I and Division II. Division I consists of all coders with a rating of at least 1200, and Division II consists of all coders with a rating of 1199 or less. Coders are grouped in rooms with other members of their division, in groups of up to 20 coders in such a way that within each division, the average coder ratings in each of the rooms are roughly equal.

TopCoder as a business

The business plan behind 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

  • ACM International Collegiate Programming Contest (ICPC)
  • ICFP Programming Contest

References

  1. ^ TopCoder management team. Retrieved on 2006-11-27.
  2. ^ Topcoder Jobs and Profile. Yahoo! HotJobs. Retrieved on 2006-11-29.
  3. ^ TopCoder Celebrates 100,000 Members.
  4. ^ Member Search Results at TopCoder.

External links

  • Official TopCoder website.

width="728" scrolling="no" height="90" frameborder="0" align="middle" src="http://download1.csdn.net/down3/20070601/01184120111.htm" marginheight="0" marginwidth="0">

TopCoder介绍相关推荐

  1. TopCoder 介绍

    竞赛背景       TopCoder成立于2001年,它的客户包括Google.MS.YAHOO.Intel. Motorola和SUN等 世界上顶级的IT公司.每年TopCoder都会举办若干个编 ...

  2. TopCoder 入门教程 -- sqybi完善版

    本文根据经典的TC教程完善和改编. TopCoder:http://www.topcoder.com/ 基本规则 TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Mat ...

  3. TopCoder入门教程

    from http://hi.baidu.com/juart/blog/item/e0ef838b705eb9d4fd1f1039.html 基本规则 TopCoder的比赛类型很多,最常见的是周赛S ...

  4. [转载]TopCoder兼职赚钱入门(Part. 1)

    原文地址:[原创]TopCoder兼职赚钱入门(Part. 1)作者:汪昊成 最近找我问TC的朋友越来越多,于是就想写一个入门教程放在这里.对我来说,TC目前是总收入的一个重要组成部分,虽然不如工资多 ...

  5. 常见的数据增强项目和论文介绍

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 121 篇文章,本文大约  1100 字,阅读大约需要  3 分钟 在 ...

  6. topcoder入门

    今天首次参加了topcoder的srm,处女战表现不佳:(下次要努力做好 把在网上找到的一些入门级文章转发到blog里,方便像我一样的新手,如有雷同,算我抄袭. 第一篇是关于topcoder比赛的一些 ...

  7. TopCoder简介

    基本规则 TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Match),另外还有TCHS SRM(TopCoder High School SRM,题目和SRM一样,仅 ...

  8. 开始topcoder

    这里介绍如何下载topcoder的客户端.配置插件,进行algorithm的比赛. 第一步:先下载客户端 下载 TopCoder Arena applet, 即topcoder的客户端. http:/ ...

  9. TopCoder入门教程(转载)

    本文根据经典的TC教程完善和改编. TopCoder:http://www.topcoder.com/ 基本规则 TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Mat ...

最新文章

  1. 自然语言处理深度学习篇-BiLSTM文本挖掘实践 命名实体识别
  2. Golang项目部署
  3. SAP固定资产相关的一些表
  4. 17、java中的集合(4)
  5. 大数据专家手把手教你打造实时数据湖
  6. linux下安装nginx的采坑记录
  7. matplotlib绘制极坐标图像
  8. java回合制武侠手游_‎App Store 上的“群侠传-怀旧开放武侠RPG回合制手游”
  9. node python 后台启动_NodeJS后台
  10. mysql中条件查询加排序和索引的关系
  11. 离地球近的星星,远离情况怎样?
  12. jsp实验报告(一)
  13. 概括计算机程序启动过程,计算机启动过程详解
  14. BP神经网络整定PID
  15. java连接Oracle乱码_如何解决Java连接数据库oracle中文乱码问题
  16. python常用正则表达式大全_最全的常用正则表达式大全
  17. 【基础常识】什么是字符以及字符串的定义
  18. 华为牛人的十年工作感悟
  19. 洛谷P3015 [USACO11FEB] Best Parenthesis
  20. !!破解灯塔线取点与画线的“难点”

热门文章

  1. 老婆离家三周,我写了一个操作系统!
  2. android实时监控屏幕代码,Android 屏幕切换监听的实例代码
  3. 工控电脑触摸显示屏幕监控报警方案-基于WiFi摄像头定时拍照图像识别技术
  4. PB调用http协议接口(WebAPI)
  5. 433芯片的基本原理和对应优缺点理解
  6. WebRTC RTCP XR
  7. 电子杂志+php,phpwind推电子杂志《站长天下》 网罗站长故事
  8. Azure SQL 数据库连接字符串
  9. 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统
  10. Mobius反演总结