29 июля, Чт, день  40...42 Чт, вечер  27...29 Чт, вечер  27...29 Пт, ночь  24...26
Киностудия СГУ СГУ Гарантия качества Отдел по работе с иностранными студентами Радиопрограмма "СГУ представляет"
Пресса Саратова и России о СГУ » ПРОГРАММИРОВАНИЕ КАК СПОРТ

"Профиль", № 11 (520), март 2007

ПРОГРАММИРОВАНИЕ КАК СПОРТ

Разница между Samsung, Microsoft и IBM лучше всего видна по тому, какие соревнования они проводят. Корейцы - по компьютерным играм. Microsoft - на лучшее применение своих технологий. А IBM спонсирует чемпионат мира по программированию. Самсунговские World Cyber Games - явление маргинальное, оно лежит между взрослым IT-миром, где разрабатывают игровой софт, и песочницей, в которой с этим софтом возятся разновозрастные "геймеры". Кто-то выигрывает, кто-то проигрывает, и потому компьютерные игры считают спортом. Однако воспитанию личности (в чем состоит прямая обязанность всякого спорта) Warcraft или Counter Strike способствуют, мягко говоря, несколько хуже преферанса.

Майкрософтовский конкурс Imagine Cup похож на фигурное катание. Студенческие команды демонстрируют проекты, сделанные при помощи технологий "софтверного гиганта", а жюри эти проекты оценивает. Участие в Imagine Cup - полноценная инженерная работа, которая к тому же дает студенту возможность проявить фантазию. Пару лет назад, например, команда Физтеха выиграла Imagine Cup с проектом, позволяющим музыкантам играть вместе онлайн, даже если они находятся на разных континентах.

Но ни Imagine Cup, ни тем более WCG не выдерживают сравнения с International Collegiate Programming Contest (ICPC, он же чемпионат мира по программированию среди студенческих команд). Если Imagine Cup - конкурс на предмет того, кто лучше выкрасит забор, то ICPC - состязание на звание лучшего Тома Сойера. Что до WCG, то тут можно ограничиться вошедшей в IT-фольклор цитатой из старого учебника программирования: "Настоящий программист никогда не играет с компьютером - он знает, как у него выиграть".

Об ICPC и его правилах

Еще одна цитата: "Программист, как поэт, работает почти исключительно головой. Он строит свои замки в воздухе и из воздуха только силой своего воображения. Очень редко материал для творчества допускает такую гибкость, такую возможность столь частых улучшений и переделок и такими простыми средствами позволяет осуществлять громадные замыслы". Это написал в 1974-м Фредерик П. Брукс (младший) - человек, возглавлявший в свое время разработку сложнейшей, куда там Windows, операционной системы OS/360 для вычислительных машин IBM.

В наше время профессия программиста стала существенно менее романтичной. Разработка приложений часто сводится к рисованию (в буквальном смысле) пользовательского интерфейса в среде Windows и последующей автоматической генерации программного кода. Однако программирование, о котором писал П. Брукс, по-прежнему живо там, где приходится иметь дело с нестандартными задачами. Именно в этом искусстве студенты и состязаются на ICPC.

Михаил Мирзаянов, тренер команды Саратовского университета (чемпион мира прошлого года), приводит в качестве примера турнирного задания "выбор столицы". На входе - декартовы координаты нескольких точек на плоскости ("городов"). Команда должна разработать программу, которая укажет координаты "столицы" - точки, сумма расстояний от которой до каждого "города" будет минимальной. Решение, то есть отлаженная программа, проверяется на подготовленном организаторами наборе тестовых данных. Результат фиксируется компьютером без участия судей и потому объективен. Организаторы следят лишь за порядком проведения соревнований - например, за тем, чтобы команда во время турнира не общалась с тренером.

Соревнования происходят так. Команда, состоящая из трех человек, получает конверт с головоломными заданиями (от восьми до 12, в этом году было 10), компьютер (на котором ничего, кроме трансляторов и элементарных средств отладки для языков программирования С, С++ и Java, не установлено) и пять часов времени. Цель состоит в том, чтобы, во-первых, решить как можно больше задач. При равенстве числа решенных задач в зачет идет время решения и количество неудачных попыток сдать задание. Это - в самом общем виде. Подробные правила довольно сложны, их описание занимает несколько страниц.

Как правило, для решения турнирных заданий используется свободно распространяемое программное обеспечение - то, что сообща разрабатывается мировым программистским сообществом. Соревнования ICPC, сделаем еще одно важное замечание, проводятся под эгидой ACM (Association for Computing Machinery). Эта веселая организация несет ответственность также за проведение матча Каспарова против Deep Blue в 1996 году.

ICPC-2007

На нынешнем чемпионате обильнее всех были представлены США - 20 университетов. Китайских команд, если считать с Гонконгом, было 11. Индия, страна с репутацией программистской сверхдержавы, смогла привезти на ICPC представителей только четырех вузов. Поляки, будущие обладатели абсолютного первого места, оказались представлены двумя командами из Варшавы и Вроцлава. Наших было десять: Московский, Новосибирский, Орловский технический, Петрозаводский, Саратовский, Санкт-Петербургский, Ставропольский и Уральский университеты, Санкт-Петербургский университет IT, механики и оптики, а также Вологодский государственный педагогический университет.

Количество команд, попавших в финал ICPC, показательно само по себе. Прежде чем добраться до Токио, университеты прошли несколько этапов отбора на региональных соревнованиях. В неписаной табели о рангах высоко котируются китайцы, наши и, несмотря на малочисленность, поляки. Стабильно сильны, и не только числом, американцы - от них можно ждать победы, но не провала. Индийцев претендентами на медали не считал никто из тех участников финала, с кем удалось поговорить корреспонденту "Профиля". Правильность чего, кстати, подтвердила итоговая таблица.

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

Глазами болельщика

Третий час на исходе. Над питерским университетом только три шара, а над командой MIT - четыре. Тревожно. Вот кто-то из обслуживающего соревнования персонала отвязывает бирюзовый шар. Он соответствует заданию "Е", которое никто еще не решил. Куда понесет - нашим? Полякам? Заканчивается четвертый час, журналисты сидят на итоговой пресс-конференции и слушают организаторов, но главное внимание - не к ним, а к постоянно обновляемой турнирной таблице на мониторе. За час с небольшим до финиша ИТМО второй после Массачусетского технологического института с пятью решенными задачами, столько же у китайцев и Варшавы, но они работают медленнее. Кажется, наши дожмут - вверху таблицы Новосибирск, МГУ, Петрозаводск. Но нет, почти "на флажке" (этот шахматный термин в ходу и на ICPC) варшавяне и пекинский университет Цинхуа уходят на первые два места. Лучшие из наших - ИТМО - остаются четвертыми после MIT. Очень сильная команда Вроцлава, которой многие опасались, необъяснимо провалилась. Так бывает, ничего не поделаешь.

Вечером, на церемонии награждения, выяснится, что при равном числе решенных задач ИТМО все же обошел MIT - за счет того, что американцы сделали больше неудачных попыток сдать задание. Третье место означает золото чемпионата. ИТМО, Новосибирский университет, Саратовский университет и МГУ взяли четыре из двенадцати призовых мест. Это больше, чем у США (три места) и Китая (два). Безусловная победа России.

Зачем это нам и IBM надо

Программирование - куда более важный для страны спорт, нежели футбол. Футбол - зрелище, и только. От него будущее не зависит. Другое дело IT-индустрия. От нашей способности ее развить будущее зависит всецело. Люди, способные решать нетривиальные программистские задачи, представляют собой основной - и чрезвычайно дефицитный - ресурс такого развития.

Иван Романов, член команды Саратовского университета (выигравшей ICPC в прошлом году), с недавнего времени работает в цюрихской лаборатории IBM. Считает, что здесь наилучшие возможности для профессионального роста - не в смысле движения по внутрифирменной иерархической лестнице, а для роста квалификации. Наших соотечественников, работающих на IBM в Швейцарии, единицы. В России программисты, квалификация которых позволяет участвовать в ICPC - предмет серьезнейшей конкуренции между IT-компаниями.

Перспективы России на будущих чемпионатах, считает Иван, осложнят китайцы - у них в одном университете одновременно тренируется сотня команд, а у нас - хорошо, если десяток. Тренер Романова, Михаил Мирзаянов, полагает, что российская система подготовки программистов-спортсменов все же обеспечит нашим превосходство: "Да, избытка потенциально способных людей у нас нет, но школа подготовки достаточно эффективна. Бывает даже так, что сильный студент, который мог бы успешно выступать, в некоторых университетах, где сильна внутренняя конкуренция, теряется на фоне еще более сильных".

Андрей Анненков

http://www.profile.ru


Прочитано 4286 раз