What is this track about?

The Programming and Information Technologies track is based on math and computer science – key skills for programmers. Despite the common opinion, it’s not enough to simply know a programming language for the development of apps and programs. In order to make software safe and reliable, developers should also understand the working principles of algorithms, know rules, requirements, and standards, as well as be able to work with specialized technologies to integrate them into their solutions.

Is it a promising field?

Even though it seems that software development is a popular career choice, there’s still a lack of such specialists – for example, on the popular Russian recruitment website HeadHunter there are over 5,000 job ads for programmers in St. Petersburg and over 16,000 in Moscow. 

Moreover, this profession offers a wide range of career paths, from web, app, video game and software development to the development of control systems, databases, machine learning algorithms, and AI.

How do they teach programming at ITMO?

ITMO University is the alma mater of many winners of international programming competitions, such as the ICPC (with record-breaking seven wins by the university’s students), Google Code Jam, Facebook Hacker Cup, Yandex.Algorithm, Russian Code Cup, Topcoder Open, etc. There are several ITMO faculties that train prospective developers. At the Information Technologies and Programming Faculty, they learn the fundamentals of programming and development; at the Faculty of Software Engineering and Computer Systems, they work on applied tasks (interface design, web app development, and commercial information services); and at the Faculty of Infocommunication Technologies, they are taught to work with data and develop mobile apps.

Thanks to its level of expertise and reputation, ITMO regularly coordinates the Programming and Information Technologies track at the national competition I Am a Professional.

Gennady Korotkevich, an ITMO graduate, a two-time ICPC champion, and a multiple winner of Google Code Jam and other contests. Credit: ITMO.NEWS

Gennady Korotkevich, an ITMO graduate, a two-time ICPC champion, and a multiple winner of Google Code Jam and other contests. Credit: ITMO.NEWS

How do I take part?

The contest I Am a Professional is open to all Bachelor’s, Master’s, and Specialist’s students of Russian universities. Your first step to join it will be to complete the online registration by November 15 using your Yandex account, and pick the fields you are interested in (in this case, Programming and Information Technologies). You will also need to upload a document confirming that you are a student at a Russian university.

Then, registered participants will take part in the online qualifying round that will take place between November 18 and December 4. Participation in this round isn’t obligatory to winners, prize winners, and medalists of last years’ competition. The organizers can also accept certificates with the “excellent” grade received for courses completed on Coursera and EdX (see the full list here).

What kind of tasks are there in the Programming and IT track?

The track consists of fundamental and practice-oriented tasks. While the former cover the topics of discrete mathematics, algorithms, data structures, and computer architecture, the latter, which make up the majority of the tasks in the track, aim to test students’ expertise and ability to apply certain technological solutions in big data, data storage, computer networks, multithreaded programming, operating systems, and programming technologies. 

Last year, the qualifying round featured 12 tasks for Bachelor’s students and 10 tasks for Master’s students. Some of the Bachelor-level tasks were to find and correct an error in a SQL query to an unnormalized database, create a wildcard mask to specify certain IPv4 addresses, measure the efficiency of cache memory, and solve several programming tasks based on discrete mathematics, algorithms, and data structures with limited use of computing resources. 

In their qualifying round, Master’s students had to find use for more specialized and complex technologies. Participants had to evaluate potential problems associated with the implementation of a particular multithreaded solution, generate a data sample from a data warehouse, develop a spam filter algorithm based on Naive Bayes classifiers, analyze a UML state diagram, and solve a set of programming problems to develop efficient data processing algorithms. 

The final round for both Bachelor’s and Master’s students has a similar structure with topic-based tasks, yet will require students to solve more complex problems. 

The regional stage of ICPC 2019. Credit: ITMO.NEWS

The regional stage of ICPC 2019. Credit: ITMO.NEWS

How can I prepare?

Once you register for the competition, you will gain access to a large library of preparatory materials and literature. You can also study the requirements and webinars from previous years (in Russian), as well as take a demo competition prepared by the contest’s organizers or try your hand at solving the problems. At least, that is what helped Ilya Poduremennykh, an ITMO graduate, become the track’s winner in 2020. 

What do winners get?

All winners will get participation certificates and bonus points when entering Russian universities, as well as receive access to the contest’s career development center, where they will find updates on vacancies and internships at partner companies, online events and tours of various businesses. Additionally, they will get the chance to consult HR experts. 

Moreover, those who take first, second, and third places in each track will receive prize money (between 100,000 and 300,000 rubles depending on their place and level of study) and get to intern at a major Russian company.

Programming and Information Technologies is one of three tracks curated by ITMO in the contest I Am a Professional in partnership with Sberbank. The two other tracks are Information and Cyber Security and Robotics, the latter of which we covered here.