ДонНТУ   Портал магистров

Участие в олимпиадах и соревнованиях по программированию

Школьные годы

Впервые я познакомился с программированием в 8 классе. В школьном курсе такого предмета тогда не было, и что собой представляло программирование – я не знал. Просто в какой-то момент к нам в класс пришли и позвали учеников с лучшими показателями по математике. Сначала я не писал программы: я должен был научиться придумывать логические решения поставленных задач. Вскоре меня обучили моему первому языку программирования Pascal, на котором я и написал свою первую программу.

Много времени на подготовку не было. Очень скоро подошла первая олимпиада – районный этап. Прошла она достаточно гладко и спокойно, задачи были очень простые, которые не требовали каких-то глубоких знаний. Нужно было знать язык программирования и логически мыслить. Стать победителем не составило труда.

После районного этапа нужно было готовиться к областному. Во время подготовки я сосредоточился на решении большого количества задач, не уделяя внимания новым алгоритмам, что вскоре дало о себе знать. Придя на областной этап, я сильно нервничал: это была моя первая олимпиада такого уровня, да и знакомых там не было. Среди задач были те, что требовали не только логического мышления, но и знания базовых алгоритмов. Кроме того, в задачах были требования к памяти и времени, на которые я не обращал внимания. Как следствие, с олимпиады я вернулся ни с чем. Предстояла работа над ошибками, времени до следующего года было много.

Районная олимпиада в 9 классе была ничуть не сложнее. К областной я был готов уже лучше: к этому моменту я научился использовать некоторые базовые алгоритмы, оценивать используемую память и время. И чувствовал я себя уже спокойнее. В этом году я уже получил третий диплом. Но этого было недостаточно, чтобы пройти дальше.

Со следующего года все кардинально изменилось. В 10 классе я поступил в лицей Эрудит на специальность «Информатика». Лицей славился своим участием в олимпиадном движении вплоть до международного уровня. Здесь я познакомился со множеством единомышленников. За время обучения в лицее мы все время соперничали, но и обменивались знаниями. В таких условиях, участие в олимпиадах стало невероятно интересным. В первом году обучения я узнал массу нового: библиотеки, позволяющие сэкономить время на олимпиаде, множество сложных алгоритмов, процедуры и функции, о которых я ранее не знал. Проводилось множество дополнительных занятий, каждое из которых было по-своему интересно. После такой подготовки, областной этап прошел на ура. Все задачи решались на раз. Кроме того, здесь уже было много знакомых и я чувствовал себя как дома.

Рисунок 1 - Лицей «Эрудит»
Рисунок 1 - Лицей Эрудит

Победив на областном этапе, наступило время сборов на республиканский – промежуточный этап, определяющий, кто из призеров областного этапа будет представлять команду Донецкой области на республиканском. Этот этап был достаточно напряженным, так как количество мест было строго ограничено, но в целом это не сильно отличалось от областного этапа. Все попавшие сюда участники были сильными. К счастью, сборы для меня прошли успешно и я вошел в состав команды Донецкой области. Большую часть команды составляли ученики нашего лицея.

В рамках подготовки к следующему этапу, вся команда начала принимать участие в студенческих олимпиадах. Конечно же, мы в них не побеждали, но само участие в них дало нам полезный опыт. Иногда мы ездили в другие города, например, в Винницу, для участия в сторонних соревнованиях.

Позже мы отправились в Харьков на Зимнюю школу по программированию. Это было десятидневное командное соревнование. Каждый день был насыщенным и состоял из пяти частей: утренняя лекция, соревнование, разбор задач, дорешивание и подведение итогов. Лекторами выступали известные представители спортивного программирования, приехавшие из самых разных ВУЗов России и Украины. Лекции были рассчитаны на студентов, углубленно занимающихся спортивным программированием, а потому для нас они были очень сложными. Но из того что для нас было понятно, мы узнали массу полезного. На соревновании были задачи по тематике прочитанной лекции. После соревнования мы снова собирались в наклонном зале и лектор рассказывал, как какая задача должна была решаться. После разбора задач участники отправлялись дорешивать задачи. Конечно же, задачи, решенные на основном этапе, и задачи, которые были решены после разбора, шли в разный зачет. И наконец наступал этап, который все ждали на протяжении всего дня: подведение итогов. Тут не только определялись победители. Тут обсуждались абсолютно все события, прошедшие в течении дня. Отмечался самый красивый код, отмечалось самое нестандартное решение, пусть даже не соответствующее ограничениям. И самое главное, проводился фотоотчет: от того как участники решали задачи до того, как они спали на лекциях.

Подготовка шла полным ходом, но времени всегда не хватает. Наступил республиканский этап. В том году он проходил в Киеве. Хоть меня тогда и окружали знакомые, я невероятно нервничал. Все-таки, этот этап был очень важным. И все пошло наперекос. Ночью выспаться не удалось, задачи были невероятно сложными. Результат был ужасным, вернулся с олимпиады я без диплома.

Весь следующий год проходил практически по тому же сценарию, за исключением Зимней школы по программированию. Тогда кроме участия в олимпиадах нужно было еще уделять время подготовке к поступлению. В 11 классе республиканский этап проходил уже в Черкассах. Особое внимание заслуживает место, куда нас тогда поселили. Это было учебное заведение с общежитием, в котором на дверях не было замков, а в комнатах не было розеток, когда практически каждый участник имел при себе телефон и ноутбук. На самой олимпиаде задачи были ничуть не легче, чем в прошлом году, но накопленных знаний хватило, чтобы получить третий диплом. Это была моя последняя олимпиада за время обучения в лицее.

Студенческие годы

Студенческие олимпиады носят преимущественно командный характер, поэтому, первым делом нужна была команда. Команда должна была состоять из трех человек, и в нее вошли я, Тодер Святослав и Гранковский Владимир, все трое – выпускники лицея Эрудит разных лет. На первый год моего обучения, наша команда приняла участие только в Зимней школе по программированию. Начало было не самым удачным: в доме, где мы снимали квартиру, в первую же ночь был пожар, я глубоко порезал палец и подхватил простуду. Тем не менее, сама школа прошла хорошо. В сравнении с участием два года назад, на этот раз лекции были намного понятнее и мы узнали много полезного. Да и в юниорской лиге мы тогда заняли 1 место.

В начале второго курса я и Янушкевич Вадим приняли участие в Хакатоне в Донецке, который проводился в офисе Binary Studio. Суть этого мероприятия заключалась в том, чтобы реализовать какой-либо проект в течении 24 часов и продемонстрировать его работу. Мы тогда разработали прокси-сервер, который с помощью регулярных выражений подменял HTTP-трафик. По результатам голосования участников, наш проект занял тогда 5 место. В этом же году наша команда по спортивному программированию приняла участие в ACM-ICPC. 1/8 этого чемпионата была проведена в рамках командного этапа Открытого кубка ДонНУ по программированию. Точных результатов командного этапа я не помню, но они были достаточно высоки, чтобы пройти на следующий этап. Во время личного этапа Открытого кубка ДонНУ по программированию первое и второе место тогда заняли члены нашей команды, Тодер Святослав и я соответственно. 1/4 чемпионата проходила в Луганске, результаты я тоже вспомнить не могу, но они снова были проходными. На полуфинал мы отправились в Винницу, в этом этапе участвовала вся Юго-Восточная Европа. На этом этапе мы уже призовое место взять не смогли. Это была последняя олимпиада, в которой мы учавствовали.

Подведя итог

Участие в олимпиадах и соревнованиях было самым насыщенным этапом в моей жизни. Участвуя в них, я получил много опыта в программировании, научился работать в команде. Дух соперничества усиливал интерес. Кроме этого, я побывал во многих городах, где раньше не был и попробовал много нового. Так, я впервые катался на сноуборде в Харькове, гулял по Крещатику, побывал на резиденции Богдана Хмельницкого. Благодаря олимпиадам, я завел много знакомых, с которыми проводил следующие годы своей жизни.

Обзор аналогичных разделов

Просматривая аналогичные разделы, особо любопытно было увидеть себя на фотографии с Дерксен Евгением Александровичем, который участвовал тогда в номинации, отличной от моей. Также, я ознакомился с индивидуальным разделом Чирки Дмитрия Сергеевича, который рассказывал про Зимнюю школу по программированию, в которой я также принимал участие. Не менее интересными были рассказы о поездках на олимпиады Чабанного Артема Александровича и Абраменко Алексея Александровича.

Полезные ссылки

erudit.donetskedu.com - cайт лицея Эрудит

icpc.baylor.edu - cайт Международной студенческой олимпиады по программироанию