Александр Хижа: «Решить 13 задач за 42 минуты вполне реально»

28 грудня 2018
Александр Хижа: «Решить 13 задач за 42 минуты вполне реально»
В декабре прошла открытая олимпиада DataArt Proggy-Buggy. Около 50 команд синхронно собрались в пяти наших центрах разработки: в Днепре, Львове, Одессе, Санкт-Петербурге и Херсоне, чтобы очень быстро решить стандартное количество олимпиадных задач. Александр Хижа — президент DataArt Dnipro, доцент ДНУ и идеолог Proggy-Buggy — рассказал, что это были за задачи, вспомнил историю олимпиады и объяснил ее правила.

История

В 2013 году в днепровский центр разработки приезжали Завы (Михаил и Юлия Завилейские). С момента открытия прошел год, и мы решили запустить в Днепре интересный внутренний проект. Поскольку у меня большой опыт подготовки команд к олимпиадам и я глубоко погружен в тему, предложил придумать что-то оригинальное в направлении спортивного программирования. Надо сказать, что Миша Завилейский относится к олимпиадам довольно скептически, и, чтобы убедить его, нужны были необычные идеи. Это оказалось неплохой проверкой и стимулом, в итоге  их с Юлей приезд оказался судьбоносным — тогда же в 2013-м мы провели Proggy-Buggy в первый раз. Кстати, тогда же DataArt начал делать сайт всеукраинских студенческих олимпиад.

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

Декабрь 2015 года. Александр Хижа на третьей олимпиаде Proggy-Buggy в центре разработки DataArt в Днепре

Для этого мы сократили время на решение, оставив традиционное для подобных соревнований количество задач — 13. Говоря о подобных соревнованиях, я ссылаюсь на международную ACM-олимпиаду (где на протяжении полутора десятилетий блещет, в том числе, команда ИТМО, с которым дружит центр разработки DataArt в Петербурге). Там на решение всегда отводится 5 часов, а результат проверяет автоматическая система. Мы остановились на 42 минутах, поскольку 42, как известно из «Путеводителя для путешествующих по галактике автостопом», универсальный ответ на вопросы «жизни, вселенной и всего остального». В тот момент у нас уже работали некоторые мои ученики-олимпиадники, вместе мы составляли задачи, а сама идея начала обрастать фольклорными элементами. Первую легенду о трудолюбивом Прогги и его антогонисте и угнетателе Багги придумал я, потом творчество стало коллективным, и понять, кто принадлежит та или иная идея, стало очень сложно.

Одним из новых элементов — я раньше нигде такого не встречал — стало включение задач, не имеющих решения. Формулировка задачи должна быть корректной, но ее условие может, например, содержать информацию о явлении, которого не существует. В 2013 году у нас была задача «Зоо-Ферма», отсылающая к теореме Ферма. В качестве ответа требовалось написать программу, но само название намекало, что решить задачу невозможно — любому, кто с 1993 года успел прочитать, что эта теорема в принципе  решения не имеет. Потом мы всегда старались включать в программу по паре таких задач. Это потребовало страховки от попыток проверить задания на наличие решения простым подбором. Поэтому тех, кто пробует для начала прогнать через систему вариант его отсутствия для всех задач, мы штрафуем.

Участники «Proggy-Buggy»-2015 в одесском центре разработки DataArt

Организаторы и участники

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

Команда «Jackals»: Данило Мочернюк, Максим Щерба и Богдан Пастущак — победители «Proggy-Buggy»-2018 во Львове

В этом году организацией олимпиады занималась Оля Денисенко — PR Manager из Львова — т. ч. теперь и управляем Proggy-Buggy мы из разных городов. В 2019-м опять рассчитываем привлечь наших коллег из нескольких офисов, есть еще и мысль в будущем перенести олимпиаду на более раннее время, приурочив ко дню программиста.

Интересно, что когда я начал готовить к IT-сообщество в Днепре к проведению масштабных соревнований, тут же провести свою олимпиаду захотела и другая компания. Я считаю, что это отлично, — значит, идея востребованная. Правда, мой опыт говорит, что реализовать ее очень сложно, а еще сложнее оказаться заметным на фоне соревнований, которые проводят мировые гиганты вроде Google или Facebook. Думаю, мы нашли свою нишу, решив проводить олимпиаду с не слишком серьезным лицом.

«Proggy-Buggy»-2018 в Херсоне

Участвовать в конкурсе могут все желающие, неважно, работают они в DataArt или нет. В этом году присутствовали фактически корпоративные команды из других компаний: они это не особенно афишировали, названия у всех были нейтральными. Но некоторых из тех, кто пришел на олимпиаду в Днепре, я просто знаю — здесь среди олимпиадников много моих бывших студентов. Для нас это подтверждение доверия: никто не сомневается в справедливости судейства. К тому же, некоторые компании потом сделали публикации о своих командах — и это тоже здорово, значит, призовыми местами Proggy-Buggy гордятся.

Правила и задачи

Как я уже говорил, участникам мы предлагаем за 42 минуты решить 13 задач. Рабочий язык заданий и их последующих разборов —  английский. На всякий случай есть и неофициальные версии на украинском и русском.

Если в олимпиадах ACM правила очень строгие — три участника и один компьютер — у нас все значительно либеральнее: команда может состоять из одного, двух или трех человек. Единственное, о чем мы просим, — регистрироваться заранее. Просто потому что Proggy-Buggy сейчас проходит в офисах DataArt, где вместимость конференц-залов ограничена. Например, в этом году, соревнования проходили в субботу, а регистрацию мы закрыли уже в начале недели, иначе людям было бы негде сесть.

«Proggy-Buggy»-2018 в центре разработки DataArt во Львове

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

Надо сказать, что при этом успеть решить все или большую часть, вполне реально. Все-таки в команде три человека, к тому же, задачи простые и, по возможности, веселые. Как правило, достаточно угадать идею — дальше справится первокурсник, а уж второкурсник с набитой рукой — тем более. В этом году одна из питерских команд решила 11 задач, а во Львове сразу две команды справились со всеми 13-ю.  Но, конечно, так ловко справляются, прежде всего, опытные олимпиадники. Так что думаем о возможности ввести в Proggy-Buggy категории «спортсмен» и «любитель».

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