Codeforces (Russian: Кодефорсес) is a website that hosts competitive programming contests.[1] It is maintained by a group of competitive programmers from ITMO University led by Mikhail Mirzayanov.[2] Since 2013, Codeforces claims to surpass Topcoder in terms of active contestants.[3] As of 2019, it has over 600,000 registered users.[4] Codeforces along with other similar websites are used by some sport programmers, like Gennady Korotkevich, Petr Mitrichev, Benjamin Qi and Makoto Soejima, and by other programmers interested in furthering their careers.[5][6][7]
![]() | |
Type of site | Competitive programming |
---|---|
Available in | English, Russian |
Country of origin | Russia |
Owner | Mikhail Mirzayanov |
Created by | Mikhail Mirzayanov |
URL | codeforces |
Users | 600,000 |
Launched | April 10, 2009 |
Current status | Active |
Overview
editThe Codeforces platform is typically used when preparing for competitive programming contests[8][9][10][11] and it offers the following features:
- Short (2-hours) contests, called "Codeforces Rounds", held about once a week[12][13]
- Educational contests (2-2.5 hours, with 12 hours (24 hours before Round 45) hacking period),[14] held 2-3 times per month;
- Challenge/hack other contestants' solutions;
- Solve problems from previous contests for training purposes;
- "Polygon" feature for creating and testing problems;
- Social networking through internal public blogs.[citation needed]
Rating system
editContestants are rated by a system similar to Elo rating system. There are usually no prizes for winners, though several times a year special contests are held, in which top-performing contestants receive T-shirts. Some bigger contests are hosted on Codeforces base, among them "The Lyft Level 5 Challenge 2018", provided by Lyft[15] or "Microsoft Q# Coding Contest — Summer 2018" provided by Microsoft.[16]
Contestants are divided into ranks based on their ratings. Since May 2018, users with ratings between 1900 and 2099 can be rated in both Div. 1 and Div. 2 contests. At the same time, Div. 3 was created for users rated below 1600. There is also a Div. 4, which is for users rated below 1400.[17]
Rating range | Title | Division |
---|---|---|
≥ 4000 | Tourist | 1 |
3000 — 3999 | Legendary Grandmaster | 1 |
2600 — 2999 | International Grandmaster | 1 |
2400 — 2599 | Grandmaster | 1 |
2300 — 2399 | International Master | 1 |
2100 — 2299 | Master | 1 |
1900 — 2099 | Candidate Master | 1/2 |
1600 — 1899 | Expert | 2 |
1400 — 1599 | Specialist | 2/3 |
1200 — 1399 | Pupil | 2/3/4 |
≤ 1199 | Newbie | 2/3/4 |
History
editCodeforces was created by a group of competitive programmers from Saratov State University led by Mike Mirzayanov. It was originally created for those interested in solving tasks and taking part in competitions.[2] The first Codeforces Round was held on February 19, 2010 with 175 participants. As of the end of August 2022, over 800 rounds were held, with over 9000 registered competitors per round on average.[citation needed] Before 2012, Codeforces Rounds were titled "Codeforces Beta Rounds" to indicate that the system was still under development.[citation needed]
Academic use
editCodeforces is recommended by many universities.[18][19] According to Daniel Sleator, professor of Computer Science at Carnegie Mellon University, competitive programming is valuable in computer science education, because competitors learn to adapt classic algorithms to new problems, thereby improving their understanding of algorithmic concepts. He has used Codeforces problems in his class, 15-295: Competition Programming and Problem Solving.[20] At the National University of Singapore, Codeforces rating is also used as an entrance qualifying criterion for registering for a 4-unit course, CS3233 Competitive Programming, as students have to achieve a rating of at least 1559 to be able to register for the course.[21]
See also
editReferences
edit- ^ "North korean college coders beat Stanford University in a 2016". mic.com. Archived from the original on November 9, 2020.
Codeforces — a Russian competitive coding site with contestants from around the world
- ^ a b "Codeforces Founder Will Teach Web Development at ITMO". news.ifmo.ru. 20 September 2018.
- ^ "Codeforces results 2013". codeforces.com.
- ^ "Codeforces results 2017". codeforces.com.
- ^ "The jocks of computer code do it for the job offers". Bloomberg. 25 September 2015.
- ^ "Are programming competitions a good use of time?". wordpress.com. 23 December 2016.
- ^ "Student of CSE Dept. becomes Candidate Master in Codeforces". www.lus.ac.bd. 26 April 2018.
- ^ Difference between HackerRank, LeetCode, Topcoder and Codeforces (Youtube). Event occurs at 1:45.
Difference between HackerRank, LeetCode, Topcoder and Codeforces: "Topcoder and Codeforces is a website that's typically used when preparing for actual competitive programming contests"
- ^ "All-Ireland Programming Olympiad Training". aipo.computing.dcu.ie. Archived from the original on 2019-12-18. Retrieved 2018-10-26.
- ^ "ACM-ICPC training at FIT CTU". turing.cz (in Czech).
- ^ "The 30-minute guide to rocking your next coding interview". medium.freecodecamp.org. 16 February 2022.
CodeForces questions are more similar to questions in competitive programming
- ^ Laaksonen, Antti (2018). Competitive Programmer's Handbook (PDF). p. 16.
At the moment, the most active contest site is Codeforces, which organizes contests about weekly.
- ^ "Algorithms programming competitions". tildeweb.au.dk.
- ^ Erdősné Németh, Ágnes; Zsakó, László (2018). "Grading Systems for Algorithmic Contests" (PDF). Olympiads in Informatics. 18 (1): 159–166. doi:10.15388/ioi.2018.13.
- ^ "Lyft 2018". blog.lyft.com.
- ^ "Microsoft Q# Coding Contest". cloudblogs.microsoft.com. 27 June 2018.
- ^ "About Division 4 Rounds". codeforces.com.
- ^ "Introduction-CS 97SI-Stanford University" (PDF). web.stanford.edu.
- ^ "Introduction,COMP4128 Programming Challenges, School of Computer Science and Engineering, UNSW Australia" (PDF). cse.unsw.edu.au.
- ^ "15-295: Competition Programming and Problem Solving, Fall 2016". cs.cmu.edu.
- ^ "CS3233 - Competitive Programming".