World Champions of ACM ICPC Vladimir Smykalov, Ivan Belonogov and Ilya Zban On school competitions
While you are still school students, you should consider taking part in different competitions. Winning school competitions in programming, for instance, offers an opportunity to enter IT programs in Russia without taking exams. For instance, Ilya Zban, one of 2017 ACM ICPC’s champions, entered ITMO University like this. Also, the university itself conducts different competitions that can give one considerable advantage during admission. Though final year students might have to concentrate on getting ready for the Unified State Exams, 10th-graders can well focus on participating in the All-Russian student competition.
On interest in programming
t's okay if you didn't start programming when studying at school. For many students, programming has become an important part of their lives only during their university years; as a school student, you can do well by participating in Maths competitions. Still, attending the Summer School of IT can be a good idea for students from 6th to 10th grade; for instance, Ivan Belonogov did that thrice as a school student, and then became a lecturer for it during his university years.
On programming competitions
Many programming competitions are about finding a fast-working solution for a particular task. In this sense, sports programming is different from industrial programming; during competitions, you are to work on the most complex part of a program, while real tasks have to do with lots of different infrastructure issues, and one’s work is mostly about processing numerous requests. In other words, you rarely get to work on tasks that require a serious intellectual approach. According to the champion team, they often write about a hundred strings of code during the competitions, while common programmers write about eight strings on their usual workday.
On job hunting and working at large companies
After victories at competitions and particular achievements, you will surely get job proposals, both from Russian and foreign IT companies. Still, if you’ll try looking for a job yourself, you will probably find something better than what you’ve been offered. There are many big companies, Google or Facebook, for instance, and they are great options, but you don’t get to influence their end product much. If there are some 60,000 people working for a company, your contribution to their work, as great as it might be, would be minimal, and that is a serious disadvantage of working for major companies.
On teams participating in the world championship
The teams’ level grows with each year; many train by solving the tasks from previous competitions, and progress greatly. Still, even if a team consists of very talented members, that doesn’t guarantee its victory. According to the champions, sometimes teams consisting of really skillful members didn’t make it even to top-5.
Life-hacks for entering ITMO University from Svetlana Podkolzina, 3rd year at the Department of Computation Technologies
-
Don’t be afraid to try yourself in new fields.
Surely, it calls for more effort, but you might find something that you’ll be ready to dedicate your whole life to!
-
If you don’t like a subject, try doing it faster.
You don’t like Literature or Physics? Don’t spend too much time doing homework on these subjects. Do it as fast as possible, and spend the remaining time doing things you like.
-
Use the Internet to its fullest.
You are interested in a certain issue? Google it right away. Want to learn a new programming language? Find the best textbooks! Want to listen to university lectures? MOOCs will help you reach out to any of the world’s universities!
-
Use every chance to improve yourself.
Nowadays, there are numerous courses, workshops and other events for school students. If you have an opportunity to attend something like that, do it.
-
Most importantly - participate in competitions!
Participate in any competitions you can, even if the subject is not from your field of focus. This will greatly improve your ability to cope with stress and teach you to process great amounts of information within short timeframes. Also, winning competitions can add additional points to your Unified State Exam scores!
Arina Buzdavola, member of international laboratory Computer Technologies talks evolutionary algorithms
Evolutionary algorithms are most often applied in solving tasks that don’t have fast and precise solution algorithms. For instance, those are tasks that have to do with brute-force search (like the one where you have to place queens on a chessboard in such a way that they don’t check each other). The concept of evolutionary algorithms is based on Darwin’s evolutionary theory. For one, each disposition of queens in this case can be perceived as a species, and such dispositions can be intercrossed (i.e. you can switch the halves of the chessboard) or mutated (i.e. change the position of the queen), and the adjustment is defined by the number of queens that attack each other (the lower the better).
Evolutionary algorithms are applied in various fields of human activity, even in weird ones like the so-called evolutionary art. Algorithms can be used to construct an image with polygons: let’s say we have some reference (Leonardo da Vinci’s Mona Lisa, for instance), and our task is to “grow” this image from scratch - an evolutionary algorithm can do that. In this case, polygons play the role of species, and the adjustment is defined by how close the resulting image is to the original, though usually it is the solution itself that plays the role of a species in an evolutionary algorithm. You can use the online service Pickbreeder to see how it works.
Evolutionary algorithms have serious practical applications, as well, for example, they can be used to calculate the shortest route between two points. Also, there was this case when in the late 20th century engineers couldn’t design the form of an antenna for a space module that would efficiently transmit and receive signals. The specialists made use of an evolutionary algorithm, which proposed an antennae of a weird shape. After the engineers checked its properties, it turned out that its operation was close to optimal.
Also, such algorithms can be used for genetic programming, i.e. they can be used to “grow” new programs, where the “species” is a part of a code or a whole program.
Nikita Alekseev, member of international laboratory Computer Technologies - on a programmer’s tasks in the field of bioinformatics
The genetic code of all living organisms is inscribed in their DNA. By the end of the 20th century, people started to wonder how exactly each person’s genetic code looks like. In 1990, the Human Genome project was launched - an international research that aimed to define the sequence of nucleotides that constitute human genome, and to identify the 20-25 thousand human genes (the project was closed in 2003 when scientists officially announced that they’ve reached their goal). The Moore's law states that the number of transistors in a dense integrated circuit doubles about every two years; in other words, processors become faster by two times every two years. In bioinformatics, everything happens even faster. Today, you can get your genome sequenced for a thousand dollars (by the way, this is the amount that an average American pays for a month’s insurance). The procedure lets you get lots of information about yourself: for instance, learn about liability to different diseases, ethnic background, and many more. When the Human Genome project had only been launched, the price of the procedure was about three billion dollars (which exceeds the yearly budget of a serious research institution). Then, the price dropped to a hundred million dollars, and continued to decrease according to Moore’s law, until 2007 when it started to get cheaper even faster.
Computer Science is a very important part of the modern world. In its turn, what is now happening in biology and bioinformatics indicates where the forefront of modern science currently is. People want to live longer, they want to avoid getting ill or dying of cancer - and, what’s most important, they are ready to pay for it. Bioinformatics focuses on these very issues, but it calls for more novel IT solutions and other competencies (apart from programmers and mathematicians, competencies of biologists, chemists, physicists and the like are very important). Nowadays, more and more new tasks emerge in the field of bioinformatics - so there’s a need for specialists who will develop algorithms for processing new data.