The first HashCode took place in France in 2014 and brought together only 200 participants. In just four years, the event became extremely popular, and in 2017, about 26 thousand programmers from Europe, the Middle East and Africa participated in it. This year, some 5,000 teams of two to four members took part in the qualifying round.

For each round, the teams have to solve a single task on optimization similar to those that Google specialists have to deal with on a regular basis. For instance, during the first HashCode, the participants had to come up with an optimal route for a camera-equipped car used for Google Maps' StreetView feature; the route had to cover the largest possible area in a limited time span.

Google HashCode-2017
Google HashCode-2017

Last year, the teams had to develop the best algorithm for posting videos on YouTube (streaming videos included) during the qualifying round, and the final round’s task was about distributing wi-fi routers and cable connections in a building in such a way that the signal would cover the designated area, and the solution would be as cheap as possible.   

“During the 2018 qualifying round, the task was phrased quite simply: there are several taxi cabs, and several pre-booked rides for them - to take a passenger from point A to point B in a particular time range. We had to maximize the aggregate distance for these orders. Surely, the task is a lot simpler that those from the real projects; which is why, many teams got similar results. For instance, the results of the first 50 teams differed by 1%, and the results of the first two teams - by 0.03%. Still, the results were quite objective,” says Pavel Mavrin, participant of ITMO lecturer team and tutor at the Computer Technology Department.

Google HashCode. Credit: hashcode.withgoogle.com
Google HashCode. Credit: hashcode.withgoogle.com

Apart from Mr. Mavrin, the team also included associate professor Andrei Stankevich and graduates of Moscow State University and St. Petersburg State University Egor Kulikov and Pavel Kunyavsky.

As opposed to ACM ICPC, tasks of Google HashCode don’t have a clear-cut answer. The results are to be uploaded to a special system that counts points automatically, so the teams have to make their solutions as precise and comprehensible as possible. The competition is supervised by a jury of Google’s engineers; the participants can use any programming language, and are given four hours to develop their solutions.

“On one hand, the task for the qualifying round was simplified, as it took only four hours to solve. On the other, scheduling theory and optimal distribution of resources for such tasks are relevant topics, indeed, as there are more and more taxi aggregators now, and lots of research is conducted in the field of driverless cars, where automation of order handling is an important component of the system,” comments Andrei Stankevich.

 Andrei Stankevich (on the left)
Andrei Stankevich (on the left)

He added that participation in the competition allows participants to learn which IT solutions major companies see as relevant. Participants of Google HashCode can try themselves in different fields by solving simplified tasks that still allow them to understand whether a particular field is interesting to them or not. This can also help students with making their career choice.

“None of us trains for these particular tasks: we just have some general skills that help us solve them. Also, we regularly participate in different competitions and train to be in good shape. This is why we don’t see such competitions as serious challenges, but more as a fun pastime, an opportunity to try ourselves at interesting tasks and meet our acquaintances. And surely, going to Dublin will also be great!” comments Ilya Zban, member of ITMO’s student team that also includes Ivan Beonogov, Mikhail Putilin and Adam Bardashevich.