A List of Programming Contests and Challenges

Are you the best programmer?

Two men holding trophy, close-up
Brand New Images/Stone/Getty Images

Not every programmer wishes to test his programming skills in a contest but occasionally I get a new challenge to stretch me. So here is a list of programming contests. Most are annual but some are continuous and you can enter at any time.

The experience of stepping outside your programming "comfort zone" is entirely beneficial. Even if you don't win a prize, you'll have thought in new ways and be inspired to have another go.

Studying how others solved the problem can also be educational.

There are many more contests than I have listed here but I've winnowed these down to ten that anyone can enter. Most important of all you can use C, C++ or C# in these.

Annual Contests

  • International Conference on Functional Programming (ICFP). This has been running for a decade and happens in June or July each year. Though it's based in Germany, anyone can enter using any programming language, from any location. It's free to enter and your team isn't limited by size. In 2010 it's from June 18-21
  • The BME International is an intense free to enter contest that takes place in Europe once a year for teams of three, and you have to bring your own computers and software. This year, the 7th took place in Budapest. This has had some interesting challenges in the past- how about driving a car over a virtual terrain? Other past tasks included controlling an oil-company, driving an assembly line robot and programming for secret communication. All programs were written in one 24 hour intense period!
  • International Collegiate Programming Contest. One of the longest-running — this started in 1970 at Texas A&M and has been run by the ACM since 1989 and has IBM's involvement since 1997. One of the bigger contests it has thousands of teams from universities and colleges competing locally, regionally and ultimately in a world final. The contest pits teams of three university students against eight or more complex, real-world problems, with a gruelling five-hour deadline.
  • The Obfuscated C contest has been running for nearly 20 years. This is done on the internet, with email submissions. All you have to do is write the most obscure or obfuscated Ansi C program in under 4096 characters length according to the rules. The 19th contest took place back in January/February 2007.
  • The Loebner Prize is not a general programming contest but an AI challenge to enter a computer program that can do the Turing test, ie talk to a human sufficiently well to make the judges believe they are talking to a human. The Judge program, written in Perl will ask questions like "What time is it?", or "What is a hammer?" as well as comparisons and memory. The prize for the best entrant is $2,000 and a Gold Medal.
  • Similar to the Loebner Prize is the Chatterbox Challenge. This is to write the best chatter bot- a web-based (or downloadable) application written in any language that can carry on text conversations. If it has an animated display that syncs with text then that is even better- you get more points!
  • International Problem Solving Contest (IPSC). This is more for fun, with teams of three entering via the web. There are 6 programming problems over a 5 hour period. Any programming language is allowed.
  • The Rad Race - Competitors in teams of two have to complete a working business program using any language over two days. This is another contest where you have to bring along equipment, including a router, computer(s), cables, a printer etc. The next one will be in Hasselt, Belgium in October 2007.
  • The ImagineCup - Students at school or college compete by writing software applicable to the set theme which for 2008 is "Imagine a world where technology enables a sustainable environment." Entries started August 25th, 2007.
  • ORTS Competition. ORTS (open real-time strategy game) is a programming environment for studying real-time AI problems such as path-finding, dealing with imperfect information, scheduling, and planning in the domain of RTS games. These games are fast-paced and very popular. Using the ORTS software once every year there is a series of battles to see whose AI is best.
  • The International Obfuscated C Code Contest (abbreviated IOCCC) is a programming contest for the most creatively obfuscated C code. It started in 1984 and the 20th competition started in 2011. Entries are evaluated anonymously by a panel of judges. The judging process is documented in the competition guidelines and consists of elimination rounds. By tradition, no information is given about the total number of entries for each competition. Winning entries are awarded with a category, such as "Worst Abuse of the C preprocessor" or "Most Erratic Behavior", and then announced on the official IOCCC website. There's no prize except if your program is featured on the site then you won!

  • Google Code Jam. Running since 2008, it's open to anyone aged 13 or other, and you or a close relative don't work for Google or a subsidiary country and you don't live in a banned country: Quebec, Saudi Arabia, Cuba, Syria, Burma (Myanmar). (The contest is prohibited by law). There's a qualification round and three other rounds and the top 25 travel to a Google office for the Grand Final.

Continuous or Ongoing Contests

  • Hutter Prize. If you can improve on the compression of 100 MB of Wikipedia data by 3% or better then you can win cash prizes. Currently, the smallest compression is 15,949,688. For every 1% reduction (minimum 3%) you win €500.
  • Project Euler. This is an ongoing series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. computationally the problems should be solvable in less than a minute. A typical problem is "Find the first ten digits of the sum of one-hundred 50-digit numbers."
  • Sphere Online Judge. Run at Gdansk University of Technology in Poland, they have regular programming contests - with over 125 completed. Solutions are submitted to an automatic online judge that can deal with C, C++ and C# 1.0 and many other languages.
  • Intel's Threading Programming Problems. Running from September 2007 until the end of September 2008 Intel have their own Programming Challenge with 12 programming tasks, one per month that can be solved by threading. You get awarded points for solving a problem, coding elegance, code execution timing, use of the Intel Threading Building Blocks and bonus points for posting in their problem set discussion forum. Any language but C++ is probably the preferred language.
  • Codechef is India's first, non-commercial, multi-platform online coding competition, with monthly contests in more than 35 different programming languages including C, C++ and C#. Winners of each contest get prizes, peer recognition and an invitation to compete at the CodeChef Cup, an annual live event.

Annual Contests

  • Hewlett Packard (HP) Codewars is for high school students and takes place every year on Hewlett-Packard's Houston campus. it's been run every year since 1999. Not only do students get the high-tech HP environment, a wide range of programming challenges, large amounts of good "programmer" food (pizza and caffeine), music, plus loads of giveaways. There are trophies for the top competitors in each of two classifications, plus loads of exciting door prizes like computers, scanners, printers, software, and accessories. This is the ultimate high school computer programming competition.

    Don't forget the About C, C++ and C# Programming challenges. No prizes but you get fame!