College students have a unique opportunity - to be able to try out different things with a relatively little cost to pay.
They have the time and energy to find their passion, go to student clubs and compete in various championships.
And one of the most prestigious and 'cool' competitions for programming related students is ACM ICPC.
So what is it?
'ACM' stands for Association for Computing Machinery, which is considered to be one of the biggest scientific computing societies in the world.
And 'ICPC' is International Collegiate Programming Contest. The competition has a headquarter at Baylor University and is directed by
Baylor Professor William B. Poucher.
History
It goes back to 1970, when Texas A&M University held the "First Annual Texas Collegiate Programming Championship".
Each participating university was represented by a team of 5 members.
In 1977, the contest got it's present multi-stage form, but for another decade it was popular only in North America.
Later in 1989, Baylor University became the new headquarter, regionals were established, ACM started to auspice the competition and industry gave it's support.
There've been many changes since then, like reducing participant team's size to 3 members.
Nowadays, several thousand university teams worldwide enter the qualification stages, but only around a hundred of them make it to the world finals.
For example, the total number of participants in 1997 was - 840 teams from 560 universities, and in 2015 numbers grew up to
46,381 contestants from 2,948 universities in 103 countries in 2016. There is a 20x increase in 20 years!
Rules
It's a team competition. Each team can consist of three students who have not studied more than 5 years of university education before the contest.
There are several stages: Quarter-Finals (Subregional Contest), Semi-Finals (Regional Contest) and the World Finals.
While each qualification stage is usually held at the same place for each geographical area, the location of the World Finals is changed every year.
There is also a limit of 5 participations to Regionals and 2 participations to World Finals for any student.
During the contest, typically around 12 problems are given to be solved in 5 hours, using such programming languages as C, C++, Java or Python.
Also, there is only one computer for each team, so some kind of tactics and teamwork-hacks are very important.
Results of KZ teams
The first season when a team from Kazakhstan made it to the World Finals was 2005-2006.
It was a Kazakh-British Technical University team (Nurzhan Bakibayev, Dilyara Issamadiyeva and Khairosh Yerzhan).
Since then, 8 more teams in 6 more seasons from 4 different universities have been competing in the World Finals.
Here's the results table with all Kazakhstani contestants (clickable):
Some observations and facts:
- 4 - different universities that made it to the World Finals from Kazakhstan
- 4 - is the record for the MOST teams sent to the World Finals from one university in total (KBTU).
- 13th place overall - is the highest for Kazakhstan (bronze starts from 12th) belongs to KBTU team (Aitbaev, Almakhan, Satylkhanov).
- 2014-2015 - is the last season when our teams advanced to the finals, with the last team representing Nazarbayev University (Dikhanov, Kanapin, Zhaxybay).
- Ali-Amir Aldan - was the first Kazakhstani citizen to win a World Finals medal, and he represented MIT.
So for the last couple of years, the ACM ICPC movement has started to slow down in Kazakhstan. Many strong candidates leave the country to pursue higher education somewhere else.
There are actually many Kazakhstani students, participating to the competition, but representing abroad colleges. And this article was only focused on universities which are located in Kazakhstan.
Is it worth preparing for the ACM ICPC?
Yes it is. It can improve your coding skills, generally. It will broaden your knowledge of algorithms and data structures. It will prepare you to technical interviews. It will give you an ability to find solutions to complex problems in limited time. It will develop your debugging skills, teamwork and patience. There are actually also drawbacks, like in any other sport, but let's omit them.
This is why country should invest in young generations. We need strong programmers, developers and engineers. Author of this blog really hopes that better performances are coming soon.