ICPC logo

ACM International Collegiate Programming Contest

About the ACM ICPC

The ACM International Collegiate Programming Contest (ICPC) is a multitier, team-based, programming competition. The contest involves a global network of universities hosting regional competitions that advance teams to the ACM ICPC World Finals. Participation has grown to over 40 000 of the finest students and faculty in computing disciplines at almost 2000 universities from over 80 countries on six continents. The contest fosters creativity, teamwork, and innovation in building new software programs, and enables students to test their ability to perform under pressure. Quite simply, it is the oldest, largest, and most prestigious programming contest in the world.

For problems, standings and more information on past regionals: 2005 2006 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018


Regional contest at UCT

UCT won the Southern African regional contest of the ICPC every year from 2002 to 2018, except for 2010 and 2017. For more details of the UCT teams, see the history page. For instance, in 2016, we had 6 official teams from UCT for the Southern Africa regional contest at the UCT site, scooping 1st, 3rd, 4th, 6th, 13th, and 142nd place in the overall classification. Joining us on-site were 6 teams from Stellenbosch and UWC. An overall of 130 teams from Sub-Saharan Africa participated in the Regionals.

The photo on the right shows what the lab looked like during the 2012 Regionals.


The 2019 regional will be held on Saturday TBD October. A draft schedule will become available here (the final version will be similar to it).


Note: the registration deadline is TBD October 2019.

UCT students can register by contacting the Competitions Coordinator (A/Prof. M. Keet), while other students in Southern Africa should visit the regional website for details on how to register. Please note that there are strict eligibility rules (details are on the ICPC rules page).

If you are unsure about your eligibility please email the Competitions Coordinator. Generally, if you have been studying in the field of Computer Science or a similar field (e.g. Mathematics) for less than 5 full years, we are usually able to make a successful petition.


  1. There is an information session introducing the programme on 14 August 2019, at 1pm in LT 302. This will be similar to previous year's information (e.g., slides).
  2. Training sessions for 2019 will be in room LT303 in the Computer Science building, from 10:00-16:00, on the following dates (subject to change):
  3. Announcements used to be made on the contests mailing list, but have been moved to the contest vula that also has some more resources
  4. To contact the UCT organisers, contact the competitions coordinator at UCT (A/Prof. Maria Keet).
Some sample information from earlier training sessions (2014), for illustrative purpose:


You don't just rock up on the day of the ACM and expect to win. Those that have excelled and represented UCT at the international level earned their place through rigorous training. As we gain momentum so there become more and more top students ready to jump at the opportunity of helping others. There is a training program that is run by the coordinator and previous contestants. It consists of teams gathering in the labs to tackle problems together, covering different problem solving paradigms and classes of algorithms adn data structures.

There may also be pizza involved.

To find out when training sessions are happening, subscribe to the communication channels above.

If you want to do additional training on your own (highly recommended if you're serious about winning), then the ICPC live archive and the UVa online judge are very good resources for trying out problems from other regions, or start with codeforces. Note: we will be using previous South African regional problems for the organised training, so it's best if you avoid looking at those problems on your own.