Back to main page




C/C++ Programming Competitions, Contests and Challenge












Google Codejam


This tournament is a timed contest where all participants compete online to solve the same problems under the same time constraints. The competition is available in five programming languages - Java, C++, C#, VB.NET and Python. Learn how to participate by reading the instructions.





ACM Student Research Competition (SRC)


This competition sponsored by Microsoft Research, the ACM Student Research Competition is an internationally recognized venue for undergraduate and graduate researchers to:

  1. Share research results.

  2. Exchange ideas and gain new insights.

  3. Meet & talk with academic and industry luminaries.

  4. Understand the possible practical applications of their research.

  5. Perfect their communications skills.

  6. Receive Rewards & Recognition – the top three undergraduate and graduate winners at each SIG-conference-hosted SRC receive prizes for $500, $300, and $200, respectively; award certificates; a chance to compete in the SRC Grand Finals where those winners are recognized at the Annual ACM Awards Banquet. Through Microsoft Research sponsorship, ACM is able to provide more opportunities for students to present their research by increasing the number of SRC’s hosted by ACM Special Interest Group Conferences.




ACM International Collegiate Programming Contest sponsored by IBM

The ACM International Collegiate Programming Contest (ICPC) traces its roots to a competition held at Texas A&M in 1970 hosted by the Alpha Chapter of the UPE Computer Science Honor Society. The idea quickly gained popularity within the Unites States and Canada as an innovative to challenge the top students in the emerging field of science computer. More... (in pdf)







TopCoder is fast becoming the major league for programming competitions. TopCoder brings members together once a week to compete online (Single Round Match) and twice a year both online and on location (Tournaments).

Competitions provide an understanding of a person's capabilities through a demonstration of skill. What was lacking in the world of programming competitions was a format that offered immediate and objective scoring. The solution was the creation of a "Single Round Match".

In addition to regular Single Round Matches, TopCoder holds two major multiple-round, elimination tournaments each year. These tournaments span many weeks and include significant prize purses along three independent tracks of competition: algorithm, component design, and component development. The members can get the benefit from:

  1. Competition - Each Single Round Match offers a fun, time-based, and challenging set of problems that put a developer's skills to the test. This, coupled with Divisions, offer a more level field of competition for newer members in order to build ratings and move into potential Tournament opportunities.

  2. Design and Development - Rated TopCoder members are eligible to participate in TopCoder Component Development. Members submit design and development solutions for these challenging and potentially lucrative projects. Winning solutions are rewarded with cash payouts and royalties. For every commercial sale, TopCoder will pay the members who designed and developed the component a percentage of the sale.




C++/AI Programming Contest


ACM@UIUC's Annual C++/AI Programming Contest. The general Overview:

  1. 3 people per team.

  2. 2 computers per team.

  3. C++ AI programming.

  4. Contest details and API released Friday night at the mandatory Kick-off Session.

  5. Competition is Sunday morning. If you need to leave early, you can still compete, but be sure to let us know.

  6. Lots of food and soda provided by us to keep you going. But NO eating in the labs.




The Journal of Instruction-Level Parallelism (JILP) Championship Branch Prediction (CBP)


The Championship Branch Prediction workshop brings together researchers in a competition to find the best ideas in branch prediction. Competitors will submit papers accompanied with simulation code giving detailed descriptions of branch predictors. The best predictors will be chosen to be presented at the workshop. Read the contest rules. The competition will have two tracks:

  1. Realistic Track. Predictors submitted to the realistic track will have a small, 32 kilobyte + 256 bit hardware budget and should be reasonably implementable as part of a modern microprocessor. The goal here is to find the state of the art in branch prediction and give direction to industry for future microprocessor designs. Predictors will be selected by the program committee based on simulated accuracy on a distributed set of traces as well as a more subjective judgment of efficiency and implementability.

  2. Idealistic Track. Predictors submitted to the idealistic track will have fewer restrictions. The simulation code will have a generous upper limit on the amount of time and space it may take. The goal here is to determine an idealistic bound on the accuracy of branch prediction to give the community a goal to strive for, or perhaps a reason to give up. Predictors will be selected based solely on accuracy on the distributed set of traces (modulo adherence to the rules described later e.g. readability of the write-up).

Submissions are subject to a set of rules available on the CBP2 website. Simulator code for submitted predictors will be evaluated in a C++ simulation infrastructure. This infrastructure contains the distributed traces as well as C++ code to drive a branch predictor simulator on these traces. A detailed set of rules will be posted soon. Information on how to submit the entries will be provided in the weeks preceding the submission deadline. The simulation infrastructure can be downloaded as an 8MB tar file from the CBP website. Update: The simulation infrastructure has been updated to remove extraneous traces and provide additional software.





Intel’s TopCoder Multi-Threading Competition Series


Developers, Challenge your Threading skills. Intel® Software Network and TopCoder are hosting a 12-month series of world-wide competitions for multi-threading on multi-core microprocessors. Access the Intel Software Network for all the latest on threading principles, and then put your knowledge to the ultimate test solving coding problems. Mark your calendars! A new competition will be held every month.

  1. Enter the competition: Multi-Threading Competition Series and read How to Compete.

  2. This unique contest is designed to help teach threading principles to the software developer community. Competitors will face threading challenges based on real-world customer situations. Each competitor’s solution will be evaluated against a set of criteria for the best threading practices.




Annual Unnamed UD Internet Contest


The Annual Unnamed UD Internet Contest done as a preparation for the ACM contest. On October 12th University of Delaware Programming Team will host its annual Internet Programming Contest. This contest will differ from the traditional programming contest, so make sure you read the Rules section.

The idea of an internet contest is that you write solutions using whatever environment is available at your school. You then send the submissions to the judges to have them look at it. Works like a regular programming contest, but you don't have to leave your school.

Submission and clarification scripts can be found here. They're perl scripts, so you'll need perl installed. The scripts have changed slightly from last year, so you may want to update. The changes are minor, so it's not a big deal if you don't want to upgrade. If the machines you're using can not receive mail locally, then you should definitely upgrade.

After the contest is over, all data the judges use, and all judge's solution programs will be made available. If, for some reason, you still have a question about something, you'll be able to email the judges.






IOCCC Contest


The classic International Obfuscated C Code Contest.





Al Zimmermann's Programming Contests


This is the new version of Al Zimmermann's Programming Contests.

These contests are intended for people who like to compete on programming challenges, and spend much of CPU and/or brain power on them.

Each contest specifies a problem that you must solve.

Generally, it's easy to find a solution but not so easy to find a good solution.

Although these are called "programming contests", technically you don't need to write a computer program to enter. You can enter whether you use a computer, manual calculations, or tea leaves to solve the problem. These contests have an associated discussion group. If you think you might enter the contests, you should join the discussion group. To enter a contest, you just need to register. Once registered, you may submit your solutions whenever you like, they will be automatically scored and the results page will be updated accordingly.





International 24-hour programming Contest


Participated by teams, each consists of three people. However, it's allowed to do all the tasks alone, nobody will check the performance of singles. Meanwhile, it is highly recommended to bring two more competitors with you, because of the complexity of the task. The competition is about teamwork besides problem solving.

Any kind of development tools can be used. We accept teams using Windows, Linux or any other operating system. We don't have requirements concerning programming language, so everyone can use whatever they want. There are no restrictions on the development environment either; you can bring your own favorite, as different parts of the problem may require different tools.

Entering the competition is absolutely free, but you have to hand over your CV. Participating means, that you agree with the fact that we hand over your CV to our sponsors. However you may have some expenses on the accommodation. We cover the food and drink during the competition.





INFOMATRIX project competition


INFOMATRIX is an international informatics project competition organized by Lumina Educational Institutions, the Ministry of National Education, Research and Youth, and ISMB. InfoMatrix is designed for students aged 12-18 from all over the world and particularly for the Romanian secondary schools and high schools. The rules regarding the proceeding of the contest are laid down as follows:


  1. The official web page of the competition is infomatrix.

  2. Any project related to the categories written below can be registered.

  3. Official language of INFOMATRIX is English. Projects should be prepared and presented in English language.


The projects will be evaluated in a three-step procedure.




International Olympiad in Informatics (IOI)


Briefly, IOI are:

  1. The IOI is the premier world-wide high school informatics (computer science) competition. Students write programs to solve challenging problems.

  2. The first IOI was held in Bulgaria in 1989.  It was proposed by the United Nations Educational, Scientific and Cultural Organization (UNESCO) and is one of five academic Olympiads for high school students throughout the world.

  3. The goals of the IOI are to bring together, challenge, and give recognition to young students from around the world who are the most talented in informatics (computer science), and to foster friendship among these students from diverse cultures.




Internet Problem Solving Contest


The Internet Problem Solving Contest (IPSC) is an online contest for teams consisting of up to three people. Several problems will be published at the beginning of the competition. Each problem consists of a problem description and two input data sets. To solve a problem you will have to compute correct output data for the given input data sets. Usually this means that you will write a program that solves the problem, but you may produce the output by hand or in any other way.

This file describes technical details concerning the Internet Problem Solving Contest. Please, read this file carefully, because it contains a lot of important information not mentioned elsewhere. Before reading this file we advise you to read the IPSC rules that give general rules of the contest (teams, divisions, ranking, programming languages etc.).


  1. The contest duration.

  2. How to download problem descriptions and data sets.

  3. How to submit solutions.

  4. How to browse the on-line standings.

  5. How to submit questions.

  6. Response from judges.

  7. What to do, if ...?





Loebner Prize in Artificial Intelligence


The Loebner Prize for artificial intelligence (AI) is the first formal instantiation of a Turing Test. The test is named after Alan Turing the brilliant British mathematician. Among his many accomplishments was basic research in computing science. In 1950, in the article Computing Machinery and Intelligence which appeared in the philosophy journal Mind, Alan Turing asked the question "Can a Machine Think?" He answered in the affirmative, but a central question was: "If a computer could think, how could we tell?" Turing's suggestion was, that if the responses from the computer were indistinguishable from that of a human, the computer could be said to be thinking. This field is generally known as natural language processing.

In 1990 Hugh Loebner agreed with The Cambridge Center for Behavioral Studies to underwrite a contest designed to implement the Turing Test. Dr. Loebner pledged a Grand Prize of $100,000 and a Gold Medal for the first computer whose responses were indistinguishable from a human's. Such a computer can be said "to think." Each year an annual prize of $2000 and a bronze medal is awarded to the most human-like computer. The winner of the annual contest is the best entry relative to other entries that year, irrespective of how good it is in an absolute sense.

Further information on the development of the Loebner Prize and the reasons for its existence is available in Loebner's article In Response to the article Lessons from a Restricted Turing Test by Stuart Shieber.







Do you have an idea or concept which you would like to transfer from your head into code? Or maybe you are in need of some software - like a device driver for your favorite device and operating system. Publish your idea or need here for open source developers. Someone out there might implement it and publish the results under an open source license - to your and everyone else's benefit. Here is a list of current ideas - implement one if you are in need of project. Quarterly, the best idea/concept and implementation are awarded with honors and a prize (a cool gadget, a nerd toy or something else of geeky flavor). A press release about the winners is sent to selected news sources. Here are the winners of previous challenges. is a catalyst for creativity and for developing open source potential into tackling real world problems and doing public good. By delivering periodic awards to selected contributors we hope to encourage individuals and organizations to publish the results of their creativity under an open source license and spirit. Openchallenge is a catalyst for materializing creativity and for channeling open source potential into tackling real world problems.

By delivering quarterly awards to two selected contributors we wish to encourage individuals, organizations and companies into publishing and materializing the results of their creativity under an open source license and spirit. You can participate in the openchallenge by releasing the results of your brain activity under open source: think, do or do both.


















Project Euler


Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems. Please be warned that the problems are challenging and you are unlikely to make much progress if you have no knowledge of programming. Having said that, this is both the perfect environment and opportunity to learn new techniques and refine your programming skills.

In order to track your progress it is necessary to setup an account and have Cookies enabled. If you already have an account and would like to login, click here. To setup a new account click here.

As the problems are challenging, you may wish to view them before registering by clicking here.

When new problems are added to the database they are initially worth 20 points. However, each time a problem is solved by a registered user, it reduces slightly in value. As a result, easy problems, which will be solved by most users, quickly become low scoring problems. Conversely, truly difficult problem will remain high scoring.

Your overall score is not fixed and will change if any of the problems that you have already solved change in value.

It is hoped that this entirely dynamic and original scoring system will, on the one hand, add an extra dimension of interest to solving problems, but on the other hand, will lend itself to users of all abilities. That is, it should allow beginners to identify the easier problems to get started with, and advanced users to target the more difficult and challenging problems.

Please note that each problem is designed according to a "one-minute rule", which means that although it may take several hours to design a successful algorithm with more difficult problems, an efficient implementation will allow a solution to be obtained on a modestly powered computer in less than one minute (see note). Of course solving a problem is the ultimate goal, but if you consider yourself a skilled programmer/problem solver you may like to retry some of the challenges that took longer to solve on your first attempt.

A forum is available as an opportunity for users to discuss strategies used in solving the problems, with each problem designated its own thread. However, you will only be able to gain access to the thread once you have solved the problem.





PHP Contest


It is a PHP coding contest. This is your chance to show off your skills to the whole world. A new contest every month or so. This contest is to prove you can do it. You will get recognition on the front page of, and if you have a web site it will be listed also. Your winning code will also be posted on in a special section of their code gallery.

All you have to do is check out the current contest and then code it. All submissions must be PHP only however the HTML is allowed and any extension commonly available to PHP is allowed. Disallowed is any other type of scripting language (server-side or client-side).

Simply send it to contestsubmit[at] Please make sure you place a comment at the top of your code with your name and email address. All submissions are subject to being posted here on and on You, the author, will retain all copyrights to your code. Nobody but you will have the right to claim it as their code.





The Rapid Application Development Race - RAD Race


The RAD Race is a (registered) concept that took a lot of effort to develop and refine during the years. It is mostly intellectual work; each public assignment is completely original and therefore very copy sensitive (see further).

The "Original" also stands for real, tangible facts and essentials. That is: a working program; instead of talk or and endless list of product features. Simply the best program wins, period.

We therefore disclose all in-depth information as soon as we receive a signed and dated Non Disclosure Agreement ("NDA") from you. Please excuse us for the inconvenience this may cause. The Original RAD Race is an independent programming competition focused on:

  1. Delivering a working business program.

  2. In controlled and verifiable conditions.

 It is open to any kind of software development tool, toolset and/or language and any team of 2 persons.







RoboCom is a game for programmers. With your program, you determine how your robots will move, communicate with others or even build more robots. Your goal is to put the other robots out of action. But not with weapons! There are much more intelligent ways to do that - write a virus and infect them. Or re-program them to work for you.

Before the game starts, each player writes an assembler-like program which has to decide for itself later on, in order to win the game. The pieces on the chess-like field are robots, which have the abilities to move, multiply, exchange program code etc. The goal is to put the other players' robots out of action while staying functional yourself.

RoboCom is not a military game. There is nothing like weapons: the only way to influence another robot is to transfer program code. And that makes it particularly interesting. The programming language is easy to learn, however it provides an amazingly wide spectrum of different strategies, which are all successful in another way...





The Sphere Online Judge


The Sphere Online Judge:


  1. An online judge accepting solutions in C, C++, Pascal, JAVA, C#, Perl, Python, Ada, Smalltalk, Fortran, Assembler, Icon, Ruby, Pike, Haskell, Ocaml, Prolog, CLIPS, Whitespace, Intercal...

  2. The system is developed at the Gdańsk University of Technology, ETI Faculty and draws on a prototype created by Jacek Dąbrowski, MSc. Thesis (2003).

  3. See: online judge site, the system opened on 01.06.2004.



  1. Creating a huge problem set.

  2. Hosting numerous on-line contests.

  3. Enabling the testing of interactive programs & games.


The SPOJ Project is developed by the Sphere Interest Group at the Faculty of ETI, Gdansk University of Technology, under the auspices of the Department of Algorithms and System Modeling. The core of the system is composed of:

  1. A (hopefully) exploit-secure online judge program for checking the correctness of algorithmic programs written in different programming languages (authors of Whitespace and Intercal programs know what we are talking about.

  2. An intuitive content management system for problem setters and administrators.

  3. A network user interface for the judge, featuring a PHP frontend and databases with information on users, problems, submitted solutions, etc.

  4. A subsystem for organizing leagues and contests (currently in preparation).

It is also worth noting the informative value of the Sphere Online Judge, which makes use of (and - to a significant extent - grants users access to) the following resources:

  1. An extensive problem set, which contains not only select problems from national and international programming contests, but also original tasks carefully prepared in collaboration with the team of expert problem setters associated with the project.

  2. An online status display system, complete with statistics and rank lists of the best, most active and most prolific programmers and countries, and many many more...

You are welcome to visit project page (hosted as part of the official Sphere Interest Group website), which contains up-to-date information on the development team and the progress of the project. See a problem list: problem list.





LiveCoda: Real time programming competition


This programming competition is open to anyone. Teams that register will be allocated a specific time. So you only need to make sure you are around for that time. However, the venue is very comfortable and the bands playing are well worth staying around for.

LiveCoda is intended to be a C programming competition. However, if you don't know C or would prefer to use a different programming/scripting language just state your preference on the registration page and we'll do our best to provide it.

The solution will have the form of reading in a stream of numbers from standard input (a list of red, green, blue values). This image will be broken in predefined ways which you need to fix. The output of the program should then be a list of red, green, blue values. All problems will take this form, so as the night progresses there will be and opportunity to learn from other teams tactics...





The Imagine Cup


It is by Microsoft which create the Imagine Cup in searching and budding the future software breakthrough, a future career, or a flourishing new industry. The Imagine Cup encourages young people to apply their imagination, their passion and their creativity to technology innovations that can make a difference in the world. The Imagine Cup has grown to be a truly global competition focused on finding solutions to real world issues.

It is open to students around the world, the Imagine Cup is a serious challenge that draws serious talent, and the competition is intense. The contest spans a year, beginning with local, regional and online contests whose winners go on to attend the global finals held in a different location every year. The intensity of the work brings students together, and motivates the competitors to give it their all. The bonds formed here often last well beyond the competition itself...




College Puzzle Challenge


"...Alumni from each of the participating schools who are now employed by Microsoft organize the College Puzzle Challenge out of a love for fun and competitive ways to challenge technology-minded students. We’ve provided the prizes, food, and all the fun puzzles we know you’ll enjoy. While this is not quite a recruiting event, we will be accepting résumés, so feel free to bring one along! And of course, we’ll be happy to answer any questions you may have about working at Microsoft..."








Back to main page