James Davenport FBCS CITP explains the history, heritage and also the future of the world’s largest programming competition and how he helped to build a UK team.

The ACM International Collegiate Programming Contest (ICPC) has been running since at least 1977. It is the premiere global programming competition and is it conducted by, and for, the world’s leading universities. IBM has sponsored the event for over four decades and, in that time, it has help to raise the aspirations and performance of generations of problem solvers.

About the contest

For the competition’s purposes, the world is divided into thirty regions, and teams from universities from each region compete in a regional contest, with the top few (often three) teams from each region going forward to a World Final competition.

The 2016 World Finals in Phuket had 128 teams which were chosen from the 13,466 teams that started the contest in sub-regional and preliminary contests. The United Kingdom is part of the North-West Europe Region (whose contests are known as NWERC), along with Ireland, Germany, Benelux and the Nordic Countries (Denmark, Sweden, Norway, Finland and Iceland).

A team is defined as three students (who started studying at university in 2012 or later, apart from exceptional cases) from the same university.

Start your engines

At the contest, which lasts five hours, the team members share a single computer and keyboard: hence the contest is an exercise in teamwork and division of labour as much as it is an exercise in virtuoso programming. In the recent past, there have always been at least ten problems at the World Finals and NWERC, and NWERC 2016 had 11.

The solutions are submitted as program source, which is compiled and run against the judges’ automatic tests, for correctness as well as completion within the time and memory limits.

Historically the main supported languages have been C/C++ and Java, but the 2016/17 cycle has admitted Python for the first time, though the judges do not guarantee that all problems can be solved in Python in the time limits.

North West Europe Regional Contests

The NWERC (unlike some other regions) is held as a single-site physical contest, with all the teams converging for a weekend in November. Typically, a site hosts two consecutive NWERCs: recent ones have been at Jacobs University Bremen (2010 and 2011), TU Delft (2012 and 2013) and the University of Linköping (2014 and 2015, the latter having 99 teams competing).

Any university in the region can send up to two teams to NWERC, and possibly more if there is space (and funding) available. NWERC was last in the British Isles in 1993, at Swansea with 25 teams from nine countries.

The Nordic countries (NCPC), Germany (GPC) and Benelux (BAPC) have, for many years, held their own sub-regional contests, open to as many teams as a university likes. This enables universities to decide whether, and which, teams to send forward. These are distributed contests, with teams submitting their solutions over the internet to a judging server. The NCPC is the largest, with 313 teams competing in 2016, from 22 different sites. GPC had 98 teams, from 14 sites (the Benelux structure is more complicated, with internal preliminaries before the sub-regional).

UK and Ireland

Historically there have been very few UK/Ireland teams in NWERC, all entered individually by their universities, often spontaneously by the students. In 2011, the author was approached by two University of Bath students with the idea of attending.

They had already found a local sponsor (Netcraft Limited), and we found a third student and went to NWERC in Bremen. The next year we went to Delft, this time with two Bath teams, and the author met Dr Max L. Wilson of Nottingham, who was there for similar reasons.

We discussed the lack of a UKIE contest comparable to NCPC and the others, and decided to try to start one. This is clearly a major undertaking, requiring judges to get a problem set, judging technology and more besides. Undeterred pressed, we on but realised we couldn’t get there in one go.

The Nordic Countries, led by Roy Andersson, came to our rescue, and agreed that we could hold a UKIE contest in 2013 as a slave of the NCPC contest, using the same problems and a different instance of the same judging technology. In addition, in 2014, the UKIEPC proposed the Chief Judge (one of the students who had started the Bath team, and had moved into industry) joined the NCPC jury to see how questions were formed, set, moderated and the judging tests written.

Seeds begin to germinate

The UKIE team, and notably the Bath-based technical team, grew in competence. In 2015 we ran an independent UKIEPC, with 120 teams participating. Being independent meant that we could run UKIE a few weeks later than NCPC, which was traditionally the first weekend in October: early for most UKIE universities, and certainly too early for Oxbridge.

Although NWERC usually gets three places in the World Finals, it was allocated four places in the May 2016 Finals (apparently partly due to the rate of growth in UKIE in 2015) and Imperial College went to the Finals, achieving an Honorable Mention.

We also bid successfully to run NWERC 2016 and 2017 in Bath, and were fortunate to secure generous sponsorship of this from J.P. Morgan. NWERC had never had more than 100 teams, so the author planned for that, with a 15 per cent safety margin.

Nevertheless, we ended up turning down teams, and eventually 114 teams competed in NWERC 2016: the full details, including the problems are at http://nwerc.eu. The top three, in order, were ‘Omogen Heap’, from KTH Stockholm, ‘Game of Nolife’ from the University of Helsinki, and ‘Catz CS Society (1)’ from the University of Oxford. These three will go through to the 2017 World Finals, in Rapid City (South Dakota).

The future

Things might seem fairly rosy, with five UK teams in the top 12 in NWERC 2016, and UK teams in the World Finals in 2017, 2016 and 2014 (Cambridge). However, as was pointed out by Nick Hu, coach of the St Catherine’s College team, all of his team were educated outside the UK, from countries where such programming competitions were common in schools.

The author observed that the same was true of the ‘UK’ teams in previous finals. Hence the UKIE coaching community would like to see a greater set of practice rounds being run in the UKIE area (which we will be attempting to do in the coming months) and also more outreach into schools.

The author very much welcomes an embryonic initiative by the UK Mathematics Trust, which already reaches 600,000 children, to develop ‘algorithmic thinking’ contests in schools.


NWERC 2016 would not have happened without the contribution of a great many people, both at Bath (current and former staff and students) and elsewhere, and the sponsorship and person-power put in by J.P. Morgan. UKIEPC would not exist without many people, not least the 19 site managers who run the various contest sites at which this distributed contest takes place, and the jury and administration team. UKIEPC could not have started without the generous bootstrapping provided by NCPC.