13. По поводу "потемкинских деревень": как вы думаете, теннис в России или легкая атлетика в Кении имеют ту же материальную базу и охват, как в лучших университетах США? Все знают, что это не так, однако не говорят ни о каких "деревнях", а радуются успехам своих спортсменов. Разве Олимпиады и победы на них никому не нужны?
   14. В области образования и науки мы уже и так отстали от многих университетов мира, неужели кому-то станет лучше, если успехов по олимпиадному программированию у нас тоже не будет? Мне кажется, это тот хвост, за который можно вытащить хотя бы одну область образования и науки. Некоторые из чемпионов стали защищать диссертации (только у меня таких трое), а после окончания университетов - оставаться работать в вузах. Программирование, в отличие от математики, "молодая наука". Кроме того, в России можно получить высокооплачиваемую работу по этой профессии. Поэтому в настоящее время лишь немногие победители олимпиад стали известными учеными (например, Илья Миронов из Microsoft Research и Марк Сандлер из Google). Но хочется надеяться, что состязания программистов приведут в науку ученых масштаба Григория Перельмана, Андрея Суслина и Юрия Матиясевича, успешно выступавших на математических олимпиадах.
   15. Предлагаю срочно организовать в стране движение "Сохраним в университетах лучших". На это и денег-то много не требуется, так как в программировании людей способных и желающих преподавать, тренировать и заниматься наукой крайне мало. Однако они есть, только у нас на кафедре таких двое. Если сохраним в университетах лучших - к ним потянутся новые таланты, и мы продержимся, перешагнув через демографическую яму. Тогда появится шанс на то, что со временем мы сможем опережать ведущие университеты мира не только на чемпионатах по программированию. А иначе никак!
 
Олимпиады программистов
 
   В Ленинграде (Санкт-Петербурге) городские олимпиады школьников по информатике начали проводиться раньше всесоюзных. Первая состоялась в 1986 году (anichkovpalace.spb.ru/olimpus/inform), а городская командная олимпиада школьников по программированию - в 1993 году. Как и у математиков, участие юных программистов в этих соревнованиях существенно влияет на их дальнейшую профессиональную жизнь. Олимпиады по программированию проходят и среди студентов. Ежегодный командный студенческий чемпионат мира по программированию проводится с 1977 года, причем курирует его авторитетная международная организация по вычислительной технике Association for Computing Machinery (ACM). В последние годы генеральным спонсором чемпионата стала корпорация IBM. Его охват глобален, сегодня в чемпионате состязаются около шести тысяч команд из почти тысячи шестисот университетов восьмидесяти с лишним стран. Российские команды программистов участвуют в полуфинальных соревнованиях студенческого чемпионата мира с 1993 года (тогда страну представляла только команда СПбГУ, а в 1994 году - команды уже трех университетов: СПбГУ, МГУ и ИТМО).
   В 1995 году в Санкт-Петербурге по правилам чемпионата ACM был проведен городской командный чемпионат по программированию, который в дальнейшем был преобразован в четвертьфинал чемпионата мира.
   С 1996 года в Санкт-Петербурге ежегодно стали проводиться и полуфинальные соревнования чемпионата мира, которые охватывают Северо-Восточный Европейский регион (по классификации ACM). В рамках этих соревнований проходит и чемпионат России.
 

Программирование как игра?

 
    Автор: Константин Кноп
    Классики (от Дональда Кнута до Дэвида Гриса и Эдсгера Дийкстры) долго спорили о том, чем же является программирование как вид человеческой деятельности - научной дисциплиной, искусством, профессией или чем-то еще. Никому из "отцов-основателей", видимо, не могло прийти в голову, что программирование станет игрой и даже видом "интеллектуального спорта". Однако именно игровое (или, если угодно, спортивное) программирование в последнее время стало одним из путей, приводящих в эту сферу самую талантливую и яркую молодежь. Причем не поодиночке, а целыми командами.
 
Ты помнишь,как все начиналось?..
 
   "Википедия" утверждает, что история командных чемпионатов по программированию уходит корнями в далекий 1970 год, когда в Техасском университете было проведено первое соревнование такого рода. Спустя семь лет в рамках научной конференции ACM (Association for Computer Machinery) состоялся первый международный турнир, и пошло-поехало…
   Все последние годы борьба за чемпионство идет между командами из Китая, Польши и России. Причем борьба нешуточная, и разворачивается она задолго до попадания будущих чемпионов на студенческую скамью. В Китае на поддержку школьных олимпиад по программированию (впрочем, другие предметы школьной программы тоже не забыты) государство ежегодно выделяет огромные деньги. В Китае нет исторической традиции разворовывать дотации, поэтому там эти деньги реально работают.
   Впрочем, и у нас дела обстоят неплохо - иначе откуда бы взяться успехам на международной арене? В 1996 году учрежден Северо-Восточный Европейский регион, проводящий свое (полуфинальное) соревнование среди студентов. На сегодняшний день он является крупнейшим в мире как по охвату территории, так и по количеству команд-участниц. Предварительные отборочные турниры проводятся в четырнадцати городах, от Минска и Еревана до Красноярска и Владивостока. Четыре раза "наши" команды становились чемпионами мира.
   Восьмой год подряд проводятся Открытые Всероссийские командные олимпиады по программированию среди школьников (ВКОПШ). В последней олимпиаде, проходившей в декабре 2007 года в Санкт-Петербурге, участвовали 140 команд. А главный приз - неожиданно для очень и очень многих - уплыл в Гомель, областной центр братской Беларуси.
 
Гомельское Чудо -взгляд снаружи…
 
   Первое место и Кубок чемпионов олимпиады завоевала сборная команда городов Гомеля и Столбцов, третье место - команда города Мозыря. Только на втором месте оказался новый чемпион России - сборная команда Нижнего Новгорода и Сарова. Команды Москвы и Санкт-Петербурга остались на четвертом и пятом местах, безнадежно отстав от первой тройки по времени. Такого разгрома школьников российских столиц не случалось за всю многолетнюю историю этих интеллектуальных соревнований".
   Эти слова сказаны не сторонним наблюдателем, а профессором СПбГУ ИТМО Владимиром Глебовичем Парфеновым - одним из главных организаторов командных программистских соревнований в России. Охарактеризовав успех двух белорусских команд как "ошеломляющий", он особо обратил внимание на бронзовых призеров из Мозыря (районного центра Гомельской области, города со стотысячным населением): "Команда, подготовленная Алексеем Бруновым, руководителем кружка информатики при Клубе юных пожарных (!) Мозыря, одерживает победу над сборными Москвы и Санкт-Петербурга.
   Местонахождение кружка информатики и численность населения Мозыря многократно усиливали шоковый эффект. Впечатление от этого события можно сравнить разве что с эффектом от победы сборной Мозыря по футболу над мадридским "Реалом" или лондонским "Челси".
 
…и изнутри
 
   И все-таки чудеса не только объяснимы, но даже в каком-то смысле закономерны. Об этом мы беседуем с Михаилом Семеновичем Долинским, тренером гомельской чемпионской команды и создателем тренирующей системы обучения программированию DL.
    Как долго вы шли к этой победе?
   - Я занимаюсь подготовкой школьников и студентов к олимпиадам с 1996 года. До тех пор я просто учил их прикладному программированию. Но когда в один год из десятка хороших школьников, с которыми я работал, в институт поступили только двое, я понял, что так нельзя - и мой, и их труд пропадает даром. Надо или целенаправленно натаскивать ребят к поступлению в вузы, или готовить их к диплому на республиканской олимпиаде школьников по информатике, которая дает право поступления без экзаменов. А уж потом заниматься прикладным программированием.
    А как вышло, что вы, вузовский преподаватель, стали заниматься со школьниками?
   - Двадцать лет назад я получил на кафедре хоздоговорную, как тогда говорили, тему, заказчиком которой был Гомельский завод радиотехнологического оснащения. Когда я спросил, с кем же мне работать, мой заведующий кафедрой, профессор И. В. Максимей сказал: "Тебе нужны люди - воспитай их". И я начал активно работать со студентами. Но вскоре понял, что пока я их научу, они закончат вуз и уйдут. Тогда я стал работать со школьниками, сначала с десятого класса, потом с восьмого. Алексей Данченко, когда-то учившийся в этом 8-м классе, взял две серебряные медали на международных олимпиадах по информатике 1999 и 2000 годов, поступил без экзаменов в минский БГУ, а затем пять лет был капитаном первой команды БГУ по программированию, два раза проходившей в финал чемпионата ACM. В 2000 году я решил начать с пятого класса. Прошлой осенью четверо олимпиадников того самого класса поступили в вузы. Один из них - Володя Миняйлов - в 2006 году выиграл "золото" (8-е место в абсолютном зачете) международной олимпиады. С 2005 года я со своими помощниками начал работу в младших классах под девизом "Умеешь читать - научись программировать". В этом году спустились еще на пару лет - теперь мы учим детей программированию с первого класса, а на первой книжке "Учим слова" написан наш новый девиз: "Не умеешь читать - научись программировать". Прошло всего три месяца - и уже тридцать из пятидесяти пяти наших первоклашек начали писать программы. Некоторые еще толком и читать не умеют!
   Да, это впечатляет. Но давайте все-таки вернемся к успехам ваших нынешних воспитанников. Ведь не случайны же они?!
   - Систематические успехи вообще не могут быть случайными. Гомельчане, с которыми я работал и работаю, за десять лет завоевали на международных олимпиадах по информатике для школьников (IOI) 14 медалей - 2 золотые, 8 серебряных и 4 бронзовых. За тот же срок на республиканских олимпиадах Белоруссии ребята получили 104 диплома и 27 похвальных отзывов. Я хотел бы подчеркнуть, что в наградах каждого школьника в первую очередь заслуга его лично - его трудолюбия, самостоятельности и способностей. Во вторую очередь - вклад родителей: и в том, что передано ребенку с генами, и в воспитании, и в создании условий для учебы дома. И только в третью очередь эти успехи являются заслугой системы обучения. (Пользуясь случаем, я хочу поблагодарить за постоянную помощь и поддержку администрацию Гомельского государственного университета имени Ф. Скорины, а также своих друзей, учеников и коллег.)
    Сколько лет занимается программированием команда-чемпион?
   - Секрет успеха этой команды в ее лидере - Гене Короткевиче, ученике 7-го класса гимназии N56 г. Гомеля. Несмотря на свой юный возраст, он уже дважды медалист международных олимпиад! А в этом сезоне Гена в одиночку выиграл почти все командные соревнования школьников: четыре этапа открытого кубка среди школьников, почти все командные тренировочные интернет-олимпиады школьников на сайте neerc.ifmo.ru/school.
   Однако по правилам командного первенства от нас требовалось привезти не чемпиона-одиночку, а команду. Поэтому вместе с Геной выступали одиннадцатиклассник Рома Удовиченко из Столбцов (серебряная медаль на IOI 2007) и девятиклассник Леша Каминский из Гомеля. Мы поставили этой команде задачу завоевать первое место, и ребята с нею справились.
    А как выступили другие ваши команды?
   - Всего мы привезли в Петербург пять команд. Две из них, к сожалению, остались без дипломов, зато мозыряне, заняв третье место, даже "перевыполнили план".
    Можно ли ожидать повторения этого успеха?
   - Если Гена не перестанет заниматься - а сейчас он занимается весьма добросовестно, - то еще лет пять отнять у него Кубок ВКОПШ будет очень трудно. Но и другие наши ребята тоже занимаются и растут, так что теперь у гомельчан всегда будет одна цель - первое место + дипломы у всех выступающих команд.
    А как вообще обстоят дела с обучением программированию в Беларуси?
   - Так же, как и везде, по-моему. Все держится на энтузиазме отдельных преподавателей и самих учеников. Сегодня преподавательский труд оплачивается неизмеримо ниже, чем труд программистов, и потому хорошие программисты не задерживаются на преподавательской работе. С учетом быстрой смены технологий, которым нужно обучать студентов, положение становится просто катастрофическим.
    То есть уровень знаний студентов понемногу падает?
   - Нет. Кто хочет научиться - учится. Просто, как я уже сказал, заслуга в этом не столько системы образования, сколько самих студентов.
   И еще вопрос, о котором нынче не очень принято говорить. Многие наши коллеги в кулуарных беседах признают, что "качество человеческого материала" год от года, мягко говоря, не улучшается.
   - Увы, да. В связи с повальным распространением "идеологии потребления" детей, желающих и способных трудиться (а знания приходят только посредством огромного труда), становится все меньше и меньше. Причем чем старше дети, тем меньше процент желающих трудиться. Поэтому я и пошел "в низы", то есть стараюсь начинать как можно раньше, чтобы не упустить никого из трудолюбивых детей.
   Поработав три месяца с первоклассниками, я понял, что в этом возрасте ребенку еще можно привить трудолюбие.
 
Вместо эпилога
 
   Дети очень любят играть. Еще больше они любят, когда вместе с ними играют взрослые - учителя и тренеры. К сожалению, учителей, которым не безразлична их работа, с каждым годом остается все меньше. Очень не хочется, чтобы мы забывали: за успехами на международных соревнованиях стоит тяжелейший труд и самих победителей, и тех бескорыстных энтузиастов, которые их приводят к победам. Да, Михаил Долинский готовит будущих программистов уже с первого класса. Но сколько таких Долинских на всю Постсовдепию? Десяток? Сотня?.. Сотни, боюсь, не наберется. А нужно - на пару порядков больше, и это уже совсем не игрушечный вопрос.
 

Летний отдых или зимняя шуба?

 
    Автор: Леонид Левкович-Маслюк
    Виталий Арнольд преподает информатику и математику в одной из сильнейших московских школ с уклоном в точные науки (гимназии N1543). Он один из тех, кого обоснованно считают душой просветительского сообщества Москвы. Виталий активно участвует в проведении олимпиад и других соревнований по своим предметам. Кроме того, он с коллегами организует летние выездные школы, где академики и филдсовские лауреаты читают лекции старшеклассникам, ведет огромную работу в Московском центре непрерывного математического образования ( МЦНМО), много занимается издательскими делами
    Виталий, верно ли, что в России олимпиады (по программированию в том числе) превращаются в профессиональный спорт, спонсируемый государством?
 
   - Нет, нет и нет! Ситуация тоньше. Превращаются в спорт - да. Безусловно. Но не в профессиональный - школьники не успевают до этого дорасти. И уж точно не в государственный. Наоборот, на государственном уровне сейчас происходят чудовищные вещи по отношению к олимпиадам. Желающие могут почитать новое Положение об олимпиадах - оно удивительно! Оно игнорирует все сформировавшиеся за десятки лет традиции, по всем предметам.
    Меня смущает другое. Похоже, что олимпиады сегодня - единственный элемент системы образования, который государство понимает и поддерживает.
   - Я как раз пытался сказать, что государство олимпиад не понимает. Точнее - у государства есть властные структуры, которые не понимают, с чем имеют дело в данном случае.
    Но государство даже дает ордена за развитие олимпиадного движения!
   - Правильно делает. Это ордена за работу. За нужное, важное дело.
    Может быть, лучше вручать ордена тем, кто создает математические школы или школы информационных технологий?
   - Вручают и им. Но в целом ситуация такова: у нас в течение нескольких лет единственным мерилом образования в школе всеми силами пытаются сделать ЕГЭ. Это будет национальная катастрофа - если по ЕГЭ, по всяким там PISA’м и тому подобным вещам мы возьмемся судить об уровне образования в школах. Именно поэтому ректор МГУ Виктор Садовничий, ряд других влиятельных и компетентных людей настаивают: "Если нужна объективность, ЕГЭ ее, конечно, не даст. А вот олимпиады - где мы безусловно успешны по мировым меркам, - дают большой объем информации по "одаренным" школьникам".
   То есть олимпиады являются противовесом - минимальным, но хоть каким-то - ЕГЭ на государственном уровне. В этом смысле то, что они поощряются, то, что "вновь-избранный-но-еще-не-вступивший-в-должность-Президент-РФ" за последний год три-четыре раза появился на разных олимпиадах, - очень хорошо для страны.
    Давайте рассмотрим условную "слаборазвитую африканскую страну". Местная молодежь хорошо играет в футбол, и для них очень серьезный шанс в жизни - если их заметят на хорошем турнире и пригласят в европейский клуб. Это важнейший, чуть ли не единственный социальный лифт, это карьера. Ну а наших победителей олимпиад по программированию с восторгом принимают на работу мировые гиганты ИТ. Вы не усматриваете в обеих ситуациях чего-то общего? Заметьте, что африканская страна так и остается слаборазвитой, ни медицина, ни даже физкультура не очень-то выигрывают от такого экспорта.
   - Для людей, которые из голодной, холодной (ну, в Африке, наоборот, жаркой) медицински отсталой страны приехали в цивилизованный мир, начали жить по его цивилизованным правилам и, например, смогли вывезти туда своих больных родственников, - для них это безусловное благо. Для тех, кто в условной глухой деревне в нашей стране начал заниматься программированием (с помощью Интернета, который теперь действительно есть в школах), съездил на летние школы, вышел на уровень международной олимпиады и потом получил работу в очень хорошем с многих точек зрения офисе ведущей компании, - это безусловное благо. Меняет ли это ситуацию с обеспечением лекарствами той деревни, из которой он уехал? Я знаю примеры, когда люди, добившиеся всероссийской известности, неброско и негромко делают много полезного для развития образования в своем районе, городе, деревне.
   А то, что государство поощряет людей, достигших таких успехов, и тех, кто им помогал, - очень хорошо. В свое время Владислав Третьяк и Ирина Роднина получали из рук, если не ошибаюсь, Брежнева государственные награды, и это было очень правильно. То, что меньше шансов получить орден было у человека, который пятьдесят лет в школе учил физкультуре и выучивал множество людей элементарно ходить на лыжах и подтягиваться на перекладине, - наверное, неправильно. Но это два разных вопроса, и я не хочу их противопоставлять. Очень здорово, что есть господдержка работы с "одаренными детьми". Она заведомо не приведет к тому, что будут целенаправленно готовить школьников и студентов к олимпиадам ради призовых мест.
    Почему вы в этом уверены? Если выдвигается критерий качества образования - победы на олимпиадах, то на его обеспечение и будут брошены все силы.
   - Господдержка работы с "одаренными школьниками" практически исключает - просто в силу штучности таких потенциальных чемпионов, - что все сведется только к этому.
 
Трудно научить мыслить эффективно
 
   Андрей Терехов, руководитель академических программ Microsoft по Центральной и Восточной Европе, ответил на несколько вопросов об олимпиадах с точки зрения компании-потребителя программистских кадров высшей квалификации.
   В какой мере успехи на олимпиадах, просто участие в них и подготовка к ним помогают школьнику в дальнейшем профессиональном росте? Важно ли для Microsoft, что студент, который хочет работать у вас, в школе или в вузе участвовал в олимпиадах или побеждал на них?
   - Участие в олимпиадах и соревнованиях по программированию безусловно полезно. Но сам по себе опыт участия или побед в олимпиадах, насколько мне известно, не дает каких-либо преимуществ при приеме на работу в Microsoft. Впрочем, это относится и ко многим другим формальным параметрам - название вуза, средний балл в дипломе или даже ученая степень обычно не играют решающей роли при приеме на работу, так как Microsoft ориентируется на результат собеседований, а не на прежние достижения претендентов.
   Однако навык решения сложных алгоритмических задач действительно ценится очень высоко. Вся методика интервьюирования при приеме на работу в Microsoft основана на проверке этого главного и чуть ли не единственно важного для корпорации умения. Обычно интервьюеры предлагают сложные и, возможно, даже нечетко сформулированные головоломки, как из области программирования, так и заимствованные из повседневной жизни, и смотрят, как кандидаты подходят к их решению. Microsoft была одним из пионеров такого подхода к интервьюированию. Под ее влиянием этот метод получил широкое распространение в ИТ-индустрии и даже в некоторых компаниях столь консервативной области, как финансовая индустрия. Тем, кто интересуется этой темой, рекомендую замечательную книгу Уильяма Паундстоуна "Как сдвинуть гору Фудзи?" (недавно был опубликован ее русский перевод).
   Интересно, что правильность ответа на поставленный вопрос зачастую не столь важна, как правильность подхода к решению задачи. Кандидаты на работу могут не знать новейших технологий или не на сто процентов соответствовать требованиям, нужным для той или иной команды разработчиков, но если они умеют решать сложные задачи, а также умеют учиться, то все остальное можно будет быстро наверстать уже на рабочем месте. А вот научить человека эффективно мыслить - гораздо сложнее, на это требуются годы.
 
    Но бывает же, что критерий успехов школы, особенно школы "с уклоном", такой: сколько учеников получили высокую награду на олимпиадах? И тогда главная задача учителя - найти и подготовить трех-четырех талантливых ребят. Это ведь совсем не то же самое, что поднимать уровень образования, - даже "одаренные" могут остаться без должного внимания, если все силы брошены на успехи в олимпиаде. Вы наблюдаете в школах такой эффект?
   - Много лет работа с "одаренными детьми" находилась вне поля зрения государства. Считалось, что работа с "трудными подростками" - вот это тяжелое дело, за него надо отдельно поощрять. А работа с "одаренными детьми" считалась легкой - они же и так хотят учиться, и могут выучиться, обычно они из благополучных семей. Роль учителя по этой логике минимальна, он только пожинает плоды. И очень хорошо, что сейчас на самом высоком уровне несколько раз в течение нескольких лет было сказано: извините, но работа с "одаренными" - тоже очень тяжелый труд, на который еще и далеко не всякий способен. Перегибы - когда педагоги начинают заниматься только тренировкой к олимпиадам - да, бывают. Но я бы не сказал, что эти случаи социально значимы. Это бывает в сильных школах, бывает редко, и, как правило, руководители таких школ достаточно компетентны, чтобы корректировать ситуацию. Я вспоминаю сцену из фильма "Место встречи изменить нельзя", когда на какой-то милицейский праздник герой Конкина Шарапов приходит в боевой форме с полной грудью орденов. Навстречу ему спускается Жеглов-Высоцкий в штатском пиджаке, на котором виден скромный значок. Шарапова все обступили, он герой войны - а Жеглов говорит: "Вот когда тебе, Шарапов, вторую грудь за работу в МУРе обвешают медалями, тогда поговорим". Кто-то стремится к медалям и наградам - пусть. Профессиональное сообщество достаточно здорово, чтобы это нивелировать.
    Не думаете ли вы, что олимпиады конференционного типа, где школьники выступают с результатами собственных долговременных разработок и исследований, более полезны, чем традиционное решение трудных задач на скорость?
   - С конференциями вот какая опасность: доклад о проделанной работе и сама работа - две разные вещи. Первый вопрос к докладчику: ребенок, а что из этого ты сделал сам? В этом проблема с такими олимпиадами. С другой стороны - вот только что прошла детская математическая конференция в институте им. Стеклова. Дети докладывали о своих работах, серьезных работах по математике (в доступных им областях, конечно). Научные руководители там же присутствовали - и было точно известно, что дети работали сами. В любом случае, не стоит противопоставлять конференции и олимпиады. Это занятия для разных людей, здесь тоже есть свои стайеры и спринтеры.
   На мой взгляд, у школьников-олимпиадников серьезная проблема в другом: получение образования и успехи на этих мероприятиях - совсем не одно и то же.
    Но для успехов на олимпиаде по программированию надо же хорошо знать алгоритмы, некоторые вещи из математики?
   - Да, программистские олимпиады проводятся командой профессионалов высочайшего уровня - и в России, и в мире. Это действительно хороший способ обучения школьников серьезным и глубоким вещам. Но как и любое действо такого уровня - палочка о двух концах. Представьте - можно ли в школе научить литературоведению на уровне академического института? Наверное, можно, - однако бесплатный сыр бывает только в мышеловке. Такие школьники не будут знать чего-то из истории, чего-то из географии, чего-то из математики. То же самое и здесь. Олимпиады по программированию сегодня - индустрия. Есть студенты, которые участвуют в них каждую неделю. Для школьников, слава богу, не так много олимпиад. Но люди, которые по-настоящему много участвуют в олимпиадах, обычно не делают ничего другого. Они просто "забывают" получить нормальное школьное образование.