Competitive Programming is a contest usually held over the internet involving participants trying to solve well-defined problems by writing computer programs according to provided specifications. Contestants are referred to as sport programmers.
A competition generally involves the host presenting a set of logical or mathematical problems to the contestants and contestants are required to write computer programs capable of solving each problem.
Usually, judging is based on the number of problems solved and the time spent for writing solutions, but may include other factors such as time complexity, space complexity, program size, etc. In most contests, the judging is done automatically by host machines.
There are 2 types of competition formats:
- Short-term: Each round of short-term competition lasts from 1 to 5 hours.
- Long-term: Long-term competitions can last from a few days to a few months.
Some of the most popular contests are:
- International Collegiate Programming Contest(ICPC)
- International Olympiad in Informatics (IOI)
- American Computer Science League (ACSL)
- ICFP Programming Contest
- Facebook Hacker Cup
- Google Code Jam
Participations in programming contests may increase contestant's enthusiasm for computer science studies. Also, the acquired skills improve career prospects, as they help to pass the technical interviews, which often require candidates to solve complex programming and algorithmic problems on the spot.
One critical point is that fast-paced contests teach competitors bad coding habit like lack of abstractions and comments, use of short variable names, etc. Also, by offering only small algorithmic puzzles, contests don't necessarily teach good software engineering skills ad practices.
Some popular online resources for learning and participating in competitive programming are:
Most competitive programming contests have cash prizes 😉.
Thanks For Reading 🤩
Remove background from multiple images in a single upload straight to your desktop using Bulk Photo Background Remover for Windows.
- ✅ Drag & Drop Multiple Images
- ✅ Optimize Product Images
- ✅ Select Your Background
- ✅ Set Your Output Size
- ✅ Exceptional Results
Visit -> Removal AI