Когда на олимпиаду моих учеников берут больше, я не возражаю, но это говорит о том, что из других школ не берут кого-то, кого могли бы взять


Двукратный призер международной олимпиады школьников по информатике Петр Калинин вот уже несколько лет проводит бесплатные курсы по программированию. Мы побеседовали с Петром об олимпиадах по информатике, узнали, чем отличаются олимпиады школьного уровня от областного и всероссийского, на чем сегодня стоит учить детей программировать, почему на олимпиаду проходят одни школьники и не попадают другие?


Обсудить статью
Опубликовать свой материал

— Здравствуйте, Петр! В интернете «ходит» ваше объявление о наборе детей в группу олимпиадного программирования. Вы проводите занятия бесплатно на базе лицея 40, ННГУ им. Н.И. Лобачевского и дистанционно. Верно?

—  Да.

— Расскажите об этих занятиях. Как проходит обучение?

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

— То есть дети занимаются самостоятельно?

— На очных занятиях я регулярно прохожу и смотрю, что делают школьники: если надо, помогу разобраться с тем, где у них ошибка в программе, расскажу новую теорию и т.д. Но сейчас практически все, кроме тех, кто занимается первые недели, работают в достаточно самостоятельном режиме. За счет этого достигается то, что все занимаются в своем темпе, что, ученики могут ходить кто только в лицей, кто в ННГУ, кто и туда, и туда, кто занимается из дома, кто хочет — приходит раз в неделю, кто — раз в месяц, можно пропустить занятие, куда-нибудь уехать, опоздать на занятие или уйти пораньше. Можно заниматься, вообще не проживая в Нижнем Новгороде и даже Нижегородской области. Я во многом рассчитываю на самостоятельность школьников, в конце концов, им должно быть это интересно, если им это не интересно, то зачем это все?

— Кто посещает ваши курсы?

— Мальчишек больше, но среди сильнейших, по крайней мере, в Нижегородской области, большая доля девочек.

— А по возрасту?

— По возрасту в основном ходят 9-11-классники, но есть и младше. Я, конечно, всегда рад видеть восьмиклассников, а если школьник сильный, то и младше. У меня есть ученики, которые с 5-6 класса занимаются.

— Есть ли такой возраст, в котором бы вы рекомендовали всем начать заниматься?

— Я не уверен, что всем нужно заниматься на моем курсе, я не претендую на общеобразовательную роль, я занимаюсь с более сильными школьниками. Я не буду возражать, если слабый ребенок будет ходить ко мне на занятия и при своих способностях заниматься, но особенно его тянуть тоже не буду. Все зависит от школьника: есть дети, которые даже в 11 классе не могут простейшую программу написать, есть школьники, которые с 5-6 класса отлично занимаются. Я знаю школьников, которые в начальных классах начинали заниматься, хотя это единичные случаи. Моя стандартная формулировка такая: для сильных школьников или для тех школьников, которые хотят чего-то добиться в олимпиадном программировании, нужно начинать заниматься не позже 8 класса. В 9 классе поздновато. Хотя я знаю и учеников, которые начали заниматься чуть ли не в 10 классе, а потом чуть ли не поехали на международную олимпиаду, но это тоже единичные случаи.

— Сколько учеников сейчас у вас занимается?

— Сложно оценить, потому есть ребята, которые чаще занимаются, есть которые реже занимаются, есть те, кто просто два раза пришли, а потом через полгода вспоминают и снова приходят. Например, в начале прошлого учебного года было около 20-25 человек в каждой группе, а на конец года — 5-10 человек. Сейчас в сумме на заочный курс и на занятия в ННГУ записалось почти 50 человек, и еще 14 — в лицее 40.

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

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

— Почему они уходят?

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

— Вы говорите, что некоторым сложно учиться, то есть можно предположить, что программирование или олимпиадное программирование — это не для всех?

— Возможно. По крайней мере, я видел ребят, которым это очень тяжело, хотя мы начинаем с совсем простых задач, с простого программирования, а не олимпиадного.

— И это среди тех школьников, которые изначально замотивированы. Немотивированные к вам на курс даже не приходят.

— Насколько у них есть честная, глубокая мотивация программировать, не всегда понятно — мотивация бывает разной: кому-то самому интересно, кого-то приводят родители, кого-то учителя. Я не исключаю, что кто-то ходит за компанию.


Я не возражаю, если школьник две недели что-то паял свое, потом пришел ко мне на занятие. Ну хорошо, значит, ему интереснее развиваться вширь, а не вглубь.


— А кто будет успешен? Нужны какие-то особые черты характера, интеллектуальные данные, склад ума?

— Четко видно, что есть школьники, которые быстро соображают, которым легко заниматься изначально. Это от чего-то зависит, то есть можно предположить,  что есть какая-то предрасположенность.

— И вы эту предрасположенность в дальнейшем развиваете?

— Я могу давать теоретические знания: какие-то алгоритмы, приемы отладки программы, приемы того, как понимать, правильная программа или неправильная, как искать ошибки, как писать код, чтобы было меньше ошибок — то есть я могу рассказать теорию и как ее применять. Но я не знаю, называть ли это развитием предрасположенности…

Петр Андреевич Калинин

— Будучи школьником, в 2002 г. вы заняли второе место во Всероссийской олимпиаде школьников по информатике, в 2001 г. — получили бронзовую медаль на международной олимпиаде IOI в Финляндии и в 2002 г. золотую медаль в Южной Корее. Что вам помогло в свое время выиграть эти олимпиады?

— Очевидно, что хорошая подготовка по программированию и математике. В первую очередь, на занятиях Владимира Денисовича Лелюха. А также других преподавателей, которые занимались со мной — на дополнительных занятиях, в разных летних школах, на летних сборах кандидатов в сборную России и т.д. Конечно, школьная подготовка тоже повлияла. Существенную роль играли летние школы: я класса с седьмого каждый год ездил в летние школы. Это было осмысленно не только с точки зрения знаний, но и с точки зрения атмосферы, понимания того, что есть много ребят, увлекающихся программированием.

— Вы занимались математикой, программированием, ездили в летние школы — вы целенаправленно шли к этим олимпиадам или так сложилось?

— Я не шел целенаправленно именно в программирование, я участвовал в олимпиадах по разным предметам, но когда стало видно, что у меня достаточно хорошо получается, я захотел добиться более высоких результатов.

— Ваш опыт участия в олимпиадах высокого уровня вам что-то дает, вы опираетесь на этот опыт в своих занятиях?

— Конечно, дает. Более того, я считаю, что люди, не имеющие непосредственного опыта участия или организации олимпиад высокого уровня, вряд ли могут готовить школьников высокого уровня.

— Почему?

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

— В чем отличие в организации олимпиад по информатике высшего уровня от олимпиад местного уровня?

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


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


— То есть даже под какую-то конкретную версию компилятора нужно подстраиваться? Заранее можно узнать, какие там будут версии?

— Здесь двоякий параллельный процесс. С одной стороны, на приличных олимпиадах организаторы должны подстраиваться под то, на чем пишут школьники. С другой стороны, и школьники, и преподаватели, которые хотят участвовать в олимпиадах высокого уровня, должны учитывать, что есть на олимпиадах. Например, фактически сейчас на олимпиадах нет языка JavaScript и никто из олимпиадников на JavaScript не пишет. С другой стороны, на олимпиадах появляется язык Python, потому что есть люди, которые хотят на нем учить, и есть люди, которые хотят на нем писать, и это люди с высоким уровнем подготовки. У того же Python есть две версии: вторая и третья, и они серьезно отличаются. Все из известных мне учителей учат на третьей версии, ну и соответственно, в автоматических тестирующих системах третья версия встречается чаще, чем вторая. Есть язык С++, для него есть компилятор Microsoft Visual Studio и есть компилятор GNU C Compiler. Олимпиадник высокого уровня должен понимать, чем они отличаются и должен уметь писать и в том, и в том. Я уж не говорю о том, что есть мелкие различия между последними версиями компиляторов, того же GCC: какая сейчас версия и какая была два года назад. Или, например, по Free Pascal недавно вышла третья версия, в которой есть существенные отличия, и меня даже школьник спрашивал, когда это появится на олимпиадах, потому что он хочет это использовать. Но, конечно, на каждой приличной олимпиаде список допустимых языков и компиляторов должен быть известен заранее. И, конечно, сами задачи на приличных олимпиадах не особенно зависят от языка, их можно успешно решать практически на любом языке.

— Как можно выстроить рейтинг среди российских школьников или нижегородских школьников — на чем у нас предпочитают учить и писать?

— Пожалуй, есть четыре основных языка:  Python, C++, Pascal и Java. В разных регионах своя статистика, что именно более популярно. Если брать участников школьного этапа, то Pascal будет на первом месте, потому что в школах традиционно преподавание идет на Pascal. В продвинутых центрах типа Москвы, Санкт-Петербурга и еще нескольких городов популярен Python. Java специфично популярна в Санкт-Петербурге. C++ — это удел, скорее, либо самоучек, особых случаев, либо удел тех, кто уже пишет на высоком уровне. У меня есть некоторые школьники, которые с самого начала пишут на C++, хотя никому не советую.

— Почему?

— Его очень сложно осваивать с нуля по сравнению со всеми остальными языками.

— То есть учиться программировать нужно на другом языке?

— Я сейчас рекомендую на Python, но я всегда говорю, что это во многом должен решить сам школьник. Если в школе он учится на  Pascal, то, возможно, будет правильнее писать на Pascal. У всех языков есть достоинства и недостатки. Я только с этого года начал рекомендовать Python после того, как два года подряд Python был на областной олимпиаде.

— Что учитель может ответить тем ученикам, которые высказывают недовольство: «Ну вот, Pascal, давайте будем изучать что-то более современное»?

— Давайте будем изучать Python.

— А если, предположим, учитель не знает Python, и у него есть методички, все отработано, все настроено на изучение Pascal?

— Зависит от ребенка, какая у него мотивация. Есть сильные школьники, которым много всего интересно и они готовы заниматься, в любом случае им не следует запрещать изучать. Если школьник сильный, он сам Python изучит, без помощи учителя. И учитель, я думаю, должен идти навстречу и не требовать обязательного знания Pascal — пусть ученик решает те же задачи, но на Python. Но даже если всех учеников устраивает Pascal, если учитель может изучить и Python, то стоит учить и переходить на него.

— В принципе страшной проблемы в том, что они изучают Pascal, нет? Пусть учатся на Pascal?

— Мое мнение и мнение моих знакомых преподавателей информатики, сильнейших преподавателей в России, что Python проще в изучении, чем Pascal и представляет существенно меньше проблем. К тому же если школьник хоть и не собирается связывать свою жизнь с программированием, но будет работать в смежной области, то Python ему будет намного полезнее, чем Pascal: он сможет написать простенькие программы, скрипты. То есть на Python учить, во-первых, проще, во-вторых, осмысленнее, чем на Pascal.

— У Python есть недостатки?

— Он медленно работает, но, с другой стороны, до областного уровня этого обычно достаточно, ну а к тому времени можно уже изучать С++. Так и так на областном уровне и выше уже нужно изучать С++.

— Можете ли дать рекомендации тем учителям, которые хотят начать изучать Python? Книгу, курс или что-то еще?

— Своим школьникам я рекомендую сайт PythonTutor.ru. Я посоветовался со знакомыми преподавателями по поводу книжек и учебников, мне все в один голос заявили, что не нужно рекомендовать книжки, советуйте ресурсы в интернете или просто поиск в интернете. Пожалуй, я даже с ними согласен. Я зашел в «Дирижабль» (один из крупнейших книжных магазинов в Нижнем Новгороде — прим. ЕП), посмотрел: по Python для школьников там ничего подходящего нет. Сегодня все что угодно можно найти в интернете, надо просто задавать правильные вопросы.

— Заодно дети учатся искать ответы.

— Да, конечно.

— Мне кажется, что в рамках школьного урока информатики невозможно подготовить победителя олимпиады. Как быть, если директор говорит, как же так, почему по информатике от нашей школы нет ни участников, ни тем более победителей. Хотя при этом нет специального кружка.

— Претензий в этом случае никаких не должно быть. Довольно странно требовать таких результатов. Какие-то результаты получить можно, но это не означает, что директор может требовать что-то от учителя. Наверняка, на уровне школы есть проблема: два очень сильных школьника, пять средних, несколько еще более слабых, и что с ними делать со всеми — непонятно. Играет роль заинтересованность учителей в том, чтобы были какие-то результаты: если учитель видит, что есть сильный ученик, с которым он сам не занимается, пусть он ему про мой курс расскажет, про курс Алексея Шмелева (он ведет занятия в 165-м лицее), еще какие-то курсы, можно направить и на ресурсы в интернете. В конце концов, пусть его просто отправят на олимпиаду.

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

— Я верю, что есть школьники, которые способны выйти на уровень за полгода. То есть если они пришли ко мне в начале учебного года, то, возможно, через полгода они смогут участвовать в областной олимпиаде. Правда, здесь есть большая проблема в том, что школьные и районные олимпиады достаточно близко к началу учебного года, времени на подготовку мало — ко времени областной, возможно, школьник уже будет иметь нужный уровень, но время отбора на область уже прошло. Мы проводим городскую олимпиаду им. В.Д. Лелюха в январе и мы намеренно выстраиваем систему отбора так, чтобы на нее попали те школьники, которые начали заниматься только в этом году, и даже если плохо выступили на районной олимпиаде. С другой стороны, если школьник, который начнет заниматься с нуля, вдруг попадет на областную олимпиаду в том же году, это очень хороший результат. На следующий год для сильного школьника это будет ожидаемый результат.

— То есть можно ориентироваться на год занятий, и тогда это будет уже ожидаемый результат?

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

— Задачи олимпиады по информатике от уровня к уровню усложняются? Или, может быть, на областном уровне олимпиада примерно такая же, как на школьном этапе?

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

— Люди, которые пишут задачи, «способны оценить красоту и качество олимпиадной задачи», «понимают грань между стандартной школьной и олимпиадной задачей», говоря вашими словами?

— Областные? Да.

— А местные?

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

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

— Да, с 2009 или 2010 г. задачи разрабатываются централизованно в Москве, их разрабатывают люди, которые действительно понимают, что такое олимпиада. В задачах, конечно, бывают определенного рода недостатки и проблемы, но сами задачи стали существенно более высокого качества.

— А что касается организации олимпиад?

— Могу судить по Нижегородской области. Если есть школьники в достаточно большом количестве, которые хотят писать на каком-то языке программирования, я считаю, надо его предоставить. А у нас раньше был Pascal и C++, да и то, если попросите, да с ним тоже были какие-то сложности. Не хотели активно рассматривать апелляции, сообщать результаты проверки. Разбор задач после олимпиады  представлял из себя весьма жалкое зрелище.

— Это было несколько лет назад. Сейчас в области наметилась положительная тенденция?

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

— Правда ли, что на районном уровне вообще детям дают готовые решения, чтобы они их переписали, лишь бы попасть на более высокий уровень?

— Не уверен. Результаты районных и областных олимпиад коррелируют. Я не думаю, что есть откровенные нечестные решения, потому что это будет сразу заметно: все работы, которые набрали более половины баллов, проверяются в области.

— А на школьном этапе есть нарушения?

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

— Но вы говорили, что школьная олимпиада — «проходная».

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

— Проблем с дисциплиной, я надеюсь, на ваших занятиях нет?

— По-разному бывает. Есть, например, один школьник, который ведет себя довольно странно на занятиях.

— Вызывающе?

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


Как я отношусь к школьнику, зависит от того, как он сейчас, последние полгода, занимается в курсе. Если человек ничего не решал, а потом пришел и стал активно заниматься, я буду ему помогать. Если я вижу, что школьник решал-решал, а потом перестал, значит, я махну на него рукой. Но если он потом решит вернуться, то я всегда буду рад его видеть.


— Преподаватель должен иметь право выгнать ученика, если он не занимается? Или, допустим, школа? Может ли школа отчислить ученика?

— Мне сложно судить с точки зрения общеобразовательных школ. Я все-таки позиционирую свои занятия как дополнительные и более того, поскольку я со школьников никаких денег не беру, я считаю, что имею полное право кого-то выгнать с занятия и не пускать. Общеобразовательные школы получают деньги за то, чтобы у них учились дети, учить всех детей — это их основная функция. Я считаю, что должны быть общеобразовательные и школы повышенного статуса — лицеи, гимназии — как хотите называйте. Когда я поступал в лицей 40, были входные тесты и проверки даже в первых классах, сейчас в школу берут всех по прописке. На мой взгляд, что если школьник не тянет в сильной школе, то его можно отправить в общеобразовательную школу, и в той школе надо с таким ребенком работать.

— Как вы относитесь к программированию черепашек в ЛогоМирах и робототехнике?

— Программирование черепашек в ЛогоМирах  достаточно близко к программированию алгоритмическому. А робототехника — существенно другая часть программирования. Есть наука фундаментальная и прикладная, и есть множество промежуточных граней, также и в программировании: есть фундаментальные вещи, есть прикладные вещи. Алгоритмы — это одна из наиболее фундаментальных вещей, и если говорить про программирование в целом как область знаний, то лучше знать фундаментальные вещи, поскольку можно заниматься только прикладными вещами, а о фундаментальных никогда не узнать. Я считаю, что заниматься алгоритмическими вещами в каком-то плане важнее, чем созданием формочек-окошечек. Это все вы потом сами изучите, когда надо будет.

— Стоит этим заниматься? Или каким-то детям стоит изучать алгоритмическое программирование, а кому-то «формочки-окошечки»?

— Это вопрос не про потребности, это вопрос про интерес и способности. Если ребенку это интересно, это хорошо. Я своим школьникам всегда говорю: мы не будем заниматься созданием с красивых приложений с формочками и галочками, не будем заниматься программированием под Android и другими вещами. Я даю теорию, учу программировать. Умение искать ошибки в своих программах и проверять, что они правильно работают, знание приемов таких проверок — этому я тоже учу на своих курсах.

— Желаем удачи вам и побед вашим ученикам!

По теме: 



Комментировать Поделиться Разместить на своем сайте
Вы можете разместить на своём сайте анонс статьи со ссылкой на её полный текст
Ошибка в тексте?
Нашли ошибку в тексте? Выделите её и нажмите Ctrl + Enter

Есть мнение? Оставьте свой комментарий:
avatar

Комментарии: