Лого Сделано у нас
18

Российские студенты заняли пять призовых мест из двенадцати в финале чемпионата мира по программированию

Команда Санкт-Петербургского государственного университета


 Источник фото: sdelanounas.ru



Соревнования по программированию среди студенческих команд проводились в этом году с большим опозданием: в конце мая вместо начала марта. Организаторы, Association for Computing Machinery (ACM) и традиционно поддерживающая соревнования IBM, планировали провести соревнования в Каире, а когда там зимой начались волнения — в Шарм-эш-Шейхе. Финал ACM-ICPC (ICPC — International Collegiate Programming Contest) прошел в Орландо.

В финалах ICPC разыгрываются по четыре первых (золото), вторых (серебро) и третьих (бронза) мест. Нынешний финал в Орландо для российских команд завершился практически так же, как и финал харбинский: пять медалей, одна из которых — золотая. Среди призеров Санкт-Петербургский государственный университет (золото), Нижегородский государственный университет, Саратовский государственный университет (оба — серебро), Московский государственный университет и Уральский государственный университет (оба — бронза).

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

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

В наше время профессия программиста стала менее романтичной. Разработка приложений часто сводится к рисованию, в буквальном смысле, пользовательского интерфейса в и последующей автоматической генерации программного кода. Однако программирование остается увлекательным делом: программист добивается результатов почти исключительно силой воображения, он, в частности, не связан необходимостью изготовления «в металле» опытных образцов проектируемого изделия. Ни одна другая инженерная специальность столь широких возможностей для творчества не предоставляет. В умении применять силу воображения для программирования решения головоломных задач — студенты состязаются на ICPC.

Вот пример турнирного задания («problem», в терминологии ICPC) — «задача выбора столицы». На входе — декартовы координаты нескольких точек на плоскости («городов»). Команда должна разработать программу, которая укажет координаты «столицы» — точки, сумма расстояний от которой до каждого «города» будет минимальной. Решение, т. е. отлаженная программа, проверяется на подготовленном организаторами наборе тестовых данных. Результат фиксирует компьютер, без участия судей. Организаторы следят только за порядком проведения соревнований — например, за тем, чтобы команда во время турнира не общалась с тренером.

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

В командах разделение труда: кто-то алгоритмизирует, кто-то кодирует и отлаживает. Алгоритмист, бывает, ни разу не прикасается к клавиатуре за все пять часов состязания — а команда выигрывает (так было в 2009 году в Стокгольме).

Зрелищности в ICPC немного. Зал, компьютеры, за каждым три студента. Перед компьютером табличка с названием университета. За правильно решенную задачу команде приносят шарик определенного цвета — он зависит от номера решенной задачи. Тому, кто одолел задачу первым, приносят два шара — такое правило впервые применено в 2010 году. И все.

Но для специалистов происходящее во время соревнований наполнено смыслом. Вот наша команда запнулась на несложной задаче, теряют время — вместо того чтобы бросить ее и решать следующую. Вот китайцы «на флажке», за 10 минут до делайна, отправили задание на проверку — значит, могут обойти наших, с которыми пока что равенство по решенным задачам, но худшие дополнительные показатели, надо ждать результатов проверки решения, а эта процедура может затянуться.

Тому, кто не программировал сам, оценить то, что умудряются сделать за пять часов программисты-спортсмены, невозможно. «Нормальному», т. е. с неплохой математической подготовкой и аналитическими способностями, программисту на каждое из 10 заданий нужно в лучшем случае часа два-три. Команды в финале ICPC иногда решают по восемь задач.

«Нет детей»

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

Владимир Парфенов, декан факультета информационных технологий и программирования Санкт-Петербургского государственного университет информационных технологий, механики и оптики, говорит: «Мы уже выбрали все, что можно. Ищем талантливых детей по всей стране, конкурируем за них с другими вузами. Наше положение не сравнить с тем, в котором находятся китайские университеты — у них проблем с детьми нет».

Спортивное программирование — деятельность по сравнению с программированием индустриальным совершенно иная. Но и у индустрии, и у участвующих в ICPC вузов одни и те же проблемы: кадровые. «В этом году в вузы поступают 720 тыс. детей, практически вдвое меньше, чем шесть лет назад. Индустрии просто неоткуда взять специалистов», — говорит директор фирмы «1С» (крупнейший в стране производитель и продавец программного обеспечения) Борис Нуралиев.

Легенда о большом потенциале

Только по этой причине (есть и другие) представление, будто Россия, чьи студенты с неизменным и впечатляющим успехом выигрывают медали в финалах ICPC, может составить полноценную конкуренцию Индии (которая, по самым скромным оценкам, экспортирует софта более чем на 30 млрд долларов ежегодно) на мировом рынке программного обеспечения — глубоко ошибочны. Экспорт программного обеспечения из России едва достиг 3 млрд долларов, и, как признает Валентин Макаров, президент некоммерческого партнерства «Руссофт», объединяющего российских экспортеров программного обеспечения, не имеет шансов приблизится к индийскому.

Но ни индусы, ни китайцы пока что не могут конкурировать с нами на отдельных участках мирового софтверного рынка, и это тоже правда. Там, где требуется экстраординарная способность к решению чрезвычайно сложных, никем прежде не тронутых задач, работают наши специалисты. Центры разработки программного обеспечения в России есть, в частности, у Intel, EMC и других транснациональных IT-компаний. Самый яркий, пожалуй, пример — компания Parallels, поставщик систем виртуализации. Ее президент Биргер Стен (прежде возглавлял Micirosoft в России и был вице-президентом Microsoft) прямо говорит, что центр разработки в России для Parallels — необходимость, нигде больше такого количества программистов уникальной квалификации, способных сделать то, что необходимо компании, нет.

Победы наших студентов на ICPC — ничуть не менее (а скорее — гораздо более) значительный и важный повод для национальной гордости, нежели победы хоккейной или футбольной сборной, от которых будущее страны зависит не слишком сильно. Но и переоценивать значение успехов на ICPC не стоит. Можно привести в пример американские вузы: страна, где сосредоточена мировая софтверная индустрия и находится самый большой в мире рынок программных продуктов, выступает в финалах ICPC хотя и уверенно, но гораздо скромнее, чем российские вузы. Складывается впечатление, что к ICPC в Стэнфорде и MIT относятся как к одной из форм студенческой самодеятельности. Во всяком случае, президент США победителей в Белом доме не принимает. Зато государственная поддержка американской софтверной индустрии оказывается повсеместная и исчерпывающая — с очевидным всему миру результатом.


  • 0
    Нет аватара FataMorgana
    28.06.1121:51:52
    а вот куда лучше эту новость? может тоже в образование?
    • 0
      Нет аватара tumanova
      28.06.1122:21:48
      Наверное да, ведь команды ездят от университетов.
  • 0
    Нет аватара TomskikhAA
    30.06.1119:09:08
    Порадуемся за ребят, рабочие места в IBM он себе заработали, а наше правительство вряд ли проспонсирует трудоустройство этих ребя в то же МЦСТ
    • 0
      Нет аватара FataMorgana
      30.06.1119:11:55
      назовите развитую капиталистическую страну в которой госудраство спонсирует и занимается непосредственным трудоустройством студентов. поподробнее пожалуйста с ссылками и фактами.
      • 0
        Нет аватара TomskikhAA
        30.06.1119:22:32
        Я не совсем точно выразился со спонсорством, но ведь если Россия так заинтересована в разработке своего проца, допустим Эльбрус. Можно создать нормальные условия, для работы в НИИ занимающимся разработками. А потом жалуються на утечку мозгов.
        • 0
          Нет аватара FataMorgana
          30.06.1119:37:09
          уж кому а программистам в России грех сейчас жаловаться. я еще в начале 2000-х способствовал организации одного СП и в частности занимался привлечением молодых спецов. так вот зарплаты у них были немалые уже тогда и повыше среднего. если ты хороший спец по определенным технологиям то работу в этой области всегда найдешь и очень даже неплохо оплачиваемую Отредактировано: FataMorgana~20:05 30.06.2011
          • 0
            Нет аватара TomskikhAA
            01.07.1104:41:59
            Вы меня опять не правильно поняли... эти ребята в 90% будут с работой за границей, я говорю про то, что бы они работали на науку.. а не на частника... ведь такие конкурсы проводят специально - найти лучших.. и заключить контракт.
Написать комментарий
Отмена
Для комментирования вам необходимо зарегистрироваться и войти на сайт,