kids encyclopedia robot

Competitive programming facts for kids

Kids Encyclopedia Facts
ЯндексАлгоритм
Petr Mitrichev (left) and Gennady Korotkevich (right), two famous competitive programmers during the 2013 Yandex algorithm cup

Competitive programming, also called sport programming, is like a mental sport! It's where people use their computer skills to solve puzzles and challenges. These contests often happen online or on special computer networks. Big companies like Google and Meta support competitive programming because it helps people learn important tech skills.

In these competitions, you get a set of logical or math problems. Your job is to write computer programs that can solve them. Judges look at how many problems you solve and how quickly you do it. They also check how well your program works, how fast it runs, and how much computer memory it uses.

A Look Back: History of Programming Contests

Competitive programming has a cool history! One of the very first big contests was the International Collegiate Programming Contest (ICPC). It started way back in the 1970s. By 2011, students from 88 countries were taking part!

Later, from 1990 to 1994, some smart people like Owen Astrachan helped create early online programming contests. These were inspired by the ICPC.

Since the year 2000, competitive programming has become super popular. Thousands of people now join in! This growth happened because the internet made it easy to hold contests online. Now, anyone can compete from almost anywhere in the world.

How Do Programming Contests Work?

The main goal in competitive programming is to write computer programs that solve specific problems. Most of these problems are based on math or logic. They often involve topics like:

You might also find challenges related to artificial intelligence in some contests.

To solve a problem, you usually do two main things:

  1. Create a smart plan, called an algorithm, for solving it.
  2. Write your plan as code using a programming language. Different contests allow different languages.

These two skills are super important in programming competitions!

How Solutions Are Judged

In most contests, special computers called "judges" automatically check your solutions. When you submit your program, the judge runs it with many hidden test cases.

Usually, your solution must work perfectly for all test cases to be "Accepted." If it fails even one, it's rejected. However, some contests give you partial points if your program solves some parts of the problem. Sometimes, you just need to submit the correct answer, and the judge checks that.

Many websites have "online judges." These are places where you can practice and see how well you're doing. They often show leaderboards with top programmers!

Big Competitions to Know About

There are many exciting competitive programming events around the world! Here are some of the most famous ones:

Algorithm Challenges

Famous Algorithm Contests
Name Who Organizes It Who Can Join What It's About How Many Joined (2022)
Google Code Jam (GCJ) Google Open to everyone This yearly contest was run by Google from 2003 until it ended in 2023. 32,702
International Collegiate Programming Contest (ICPC) ICPC Foundation University students A team contest for university students. Teams of three from the same university use one computer. It has regional rounds and a world final each year. Over 50,000
International Olympiad in Informatics (IOI) IOI High school students This is a global contest for high schoolers, held every year since 1989. Each country can send up to four students. 349 from 88 countries
Meta Hacker Cup Meta Open to everyone This yearly contest has been held since 2011. It's organized by Meta (formerly Facebook). 27,604
Topcoder Open (TCO) Topcoder Open to everyone This yearly algorithm contest ran from 2001 until it ended in 2023.

Many of these contests have several stages. They often start with online rounds, leading to a final competition in person. Top winners at IOI and ICPC get gold, silver, and bronze medals. Other contests offer cash prizes. These competitions are also a great way for companies to find talented programmers!

AI and Machine Learning Contests

Some contests focus on artificial intelligence (AI) and machine learning. These are about teaching computers to learn and make smart decisions.

AI and Machine Learning Challenges
Name Organizers What It's About Status
Kaggle Google A platform for data science, machine learning, and math challenges. It's also a big online community. Active
AI Challenge University of Waterloo This was an international AI programming contest that ran from 2009 to 2011. Inactive
Halite AI Programming Competition Two Sigma, Cornell Tech Contestants build computer programs (bots) to battle on a 2D game board. Unknown
Russian AI Cup Mail.Ru Group, My.com This is a yearly programming contest focused on artificial intelligence. Unknown

Open-Source Project Contests

Some contests help students get involved with "open-source" projects. Open-source means the code is free for anyone to use, change, and share.

Open-Source Programming Contests
Contest Name Main Sponsor What It's About Started In Status
Multi-Agent Programming Contest Clausthal University of Technology A yearly international contest to encourage new ideas in multi-agent systems and programming. 2005 Active
Google Summer of Code Google Inc. Google gives money (stipends) to students who work on free software projects during the summer. This program has been running every year since 2005. 2005 Active
Google Highly Open Participation Contest Google Inc. This contest ran in 2007–2008 for high school students. It aimed to get young people involved in open-source projects. 2007 Inactive

Where to Practice Online

The internet has many great places to practice competitive programming! These websites often host contests and let you solve past problems. You can usually get a rating based on how well you do. Here are some popular online platforms:

Name Description
Advent of Code A fun yearly challenge in December. A new pair of puzzles comes out each day until Christmas. You solve the first part to unlock the second. There are leaderboards to see who solves problems fastest!
CodeChef This platform hosts a long contest and a couple of shorter ones every month. The top winners of the long contest can win cash prizes.
Codeforces A Russian platform that hosts frequent 2–3 hour contests. You can also try problems from other users, challenge other people's solutions, and share tips on blogs.
CodinGame Offers puzzles of increasing difficulty and "code golf" challenges (where you try to solve a problem with the shortest code). They also host regular online competitions.
Codewars A community site where users solve small coding challenges called "kata" in many languages. You earn ranks as you complete challenges and create new ones. It's great for learning from others.
HackerEarth An Indian company that provides an online contest environment. It's also used by companies to assess job candidates.
HackerRank Offers programming problems in many computer science areas. They also host yearly "Codesprints" that connect coders with tech companies.
LeetCode LeetCode has over 2,300 questions on different programming topics. They host weekly and bi-weekly contests. Problems are available in English and Chinese.
Project Euler A large collection of math problems that often need programming skills to solve. You just submit a numerical answer, so you can use any method or language you like.
SPOJ A Polish online judge system with many problems for practice. It also lets other groups host their programming contests.
Topcoder A US company that organizes contests and offers freelance coding jobs. They have many short contests and some longer "marathons" each year. You can even check other contestants' solutions before final testing!
UVa Online Judge One of the oldest programming websites, started in 1995. It has over 4,500 problems for you to practice with and hosts regular online competitions.

Learn More

  • AlphaCode — A Google Deepmind project that uses AI to help write software.
  • Algorithmic Puzzles
  • Category:Computer science competitions
  • Code golf
  • Game jam
  • Hackathon
  • Datathon
kids search engine
Competitive programming Facts for Kids. Kiddle Encyclopedia.