— Вы поступили в ИТМО в 1998 году, до этого получив диплом первой степени на всероссийской олимпиаде школьников по информатике. А когда вы в принципе заинтересовались информатикой? С чего начался этот интерес?
— Я ходил в школу в начале 1990-х и всё, связанное с техникой, тогда было сложно достать. Первый компьютер у меня появился вообще только 1996 году, когда я учился в девятом классе. Но мне всегда было очень интересно программирование, и, несмотря на то, что у меня не было компьютера, я читал книги по этой теме и ходил на кружок в своем районе. Когда я смог купить себе технику, стал заниматься программированием дома.
Ключевым моментом стало то, что я узнал о кафедре компьютерных технологий ИТМО (сейчас это факультет информационных технологий и программирования — прим. ред.), и понял, что мне нужно поступать именно туда. Я начал ходить на подготовительные занятия ― помню, моим первым учителем был Сергей Ефимович Столяр, который преподавал в том числе на кафедре. После занятий я стал стремительно расти в области информатики, программирования и подготовки к олимпиадам: я хорошо выступил на всероссийской олимпиаде школьников по информатике, а также попал на сборы, на которых со мной занимался Марк Сандлер, он в то время тренировал команды университета на чемпионате мира по программированию. Поэтому еще до поступления я во всех подробностях знал, как устроен ИТМО, и убедился, что именно туда мне и нужно.
— После выпуска вы стали ассистентом на кафедре компьютерных технологий, начали обучать ребят сами. Почему вы решили связать свою жизнь с преподаванием?
— После поступления нас начали привлекать к занятиям со школьниками. К слову, эта система сохраняется и сейчас. Марк Сандлер пригласил меня и несколько моих коллег помогать с проведением олимпиад для учащихся. К тому же, зная о моих успехах, моя учительница по информатике из лицея № 64 с углубленным изучением математики тоже позвала меня вести кружок. Дальше я начал работать с школьникам на базе ИТМО и понял, что на самом деле мне очень нравится преподавать.
После завершения выступлений на чемпионате мира по программированию в 2001 году я перешел на должность тренера университетской команды и продолжал заниматься этим до 2019 года, когда меня сменил Геннадий Короткевич.
Преподавание в некотором смысле даже интереснее, чем программирование. Оно дает мне чувство, ради которого я и работаю более 20 лет: я научил кого-то тому, что знаю сам. Еще в начале карьеры лично мне стало интересно научить что-то делать не только компьютер, но и человека ― объяснить ему, как решить задачу или написать программу. Я понял это еще в первые годы своего обучения, а потом убедился в этом, преподавая школьникам и студентам.
Но также очень важную роль в моей карьере сыграли два человека. Один из них — декан факультета информационных технологий и программирования Владимир Глебович Парфенов. В начале 2000-х он старался создать для преподавателей атмосферу, чтобы они могли заниматься своей работой ― в том числе искал партнеров среди компаний, которые могли помочь с оплатой труда сотрудников. Это сейчас мы больше работаем с компаниям в других направлениях, но тогда финансовый вопрос стоял более остро.
Второй человек — профессор факультета информационных технологий и программирования Анатолий Абрамович Шалыто, который объявил программу «Сохраним в университетах лучших!». С ее помощью он хотел оставить выпускников, добившихся определенных успехов, работать в университете на постоянной основе. С этим должны были помочь IT-компании, которые предлагали дополнительные возможности финансирования и таким образом могли поддержать деятельность сотрудников сферы образования. Благодаря этому преподаватели могли не думать, как параллельно совмещать работу в найме и преподавание, а полностью посвятить себя своему призванию.
— Вы рассказываете на занятиях о дискретной математике, теории игр и теории вычислительной сложности. Как объяснять непростые предметы и суметь заинтересовать студентов?
— Конечно, сложные темы, особенно по математике и теоретической информатике, часто вызывают вопросы у студентов: зачем это изучать и как применять в жизни. Важно, чтобы на них прежде всего ответил сам преподаватель, а потом сумел рассказать это студентам. Когда я читаю теорию сложности, всегда привожу такой пример. Зачем нам знать, что какая-то задача сложная и ее нельзя решить? Если во время работы в компании вы столкнетесь с подобной задачей и не сможете ее решить, вы поймете, что это не вы глупые, а на самом деле справиться с ней не может всё человечество. Зная основные принципы и примеры трудных задач и взаимосвязи между ними, вы сможете понять, к какому классу принадлежит ваша задача и применить к ней приблизительные алгоритмы, ведь точного решения нет. Так что студентам всегда важно показать, зачем нужно то или иное знание.
— Какие принципы в преподавании выработались у вас за много лет работы в университете?
— Принцип у нас ― у меня и моих коллег по образовательной программе ― достаточно простой. Для нас очень важна работа студентов в классе. Домашние задания не оформляются в виде каких-то решенных примеров. Сначала студент говорит, какие задания он смог решить, а потом в формате устного доклада рассказывает одногруппникам решение. Так ребята могут дополнительно потренировать soft skills, выступая с презентацией перед другими учащимися. Остальные могут задать вопрос, если что-то не поняли, и вместе разобраться с трудностями. Это выгодно для всех, потому что дальше на контрольных работах и экзаменах встретятся темы, которые мы в том числе разбираем на практике.
— Вы помогаете студентам и школьникам готовиться к соревнованиям по программированию. Чем отличается классическое преподавание от олимпиадной подготовки?
— В олимпиадном программировании всё устроено, как пирамида: чем шире охват, тем более системно должны быть продуманы методические подходы и способы их масштабирования. Например, если вы учите 200 студентов или школьников, у вас должно быть много наработанного материала и команда поддержки, в которую входят ассистенты и помощники. Если вы работаете с топ-1 командой, которая сейчас пойдет на чемпионат мира, или готовите сборную России по информатике для выступления на международной олимпиаде, здесь уже нужен индивидуальный подход, и это тоже интересно. В свое время я много лет этим занимался.
Преподавание в университете, особенно фундаментальных дисциплин на большую аудиторию, — это скорее системная работа, а не единичные случаи. Когда студенты ИТМО первый раз стали чемпионами мира по программированию в 2004 году или когда команда, в которой не было ни одного призера всероссийской олимпиады школьников, выиграла чемпионат мира в 2008 году, это были очень яркие спортивные достижения. Но результаты образовательной деятельности — это не какие-то конкретные эпизоды, а построение системы или программы, которая предполагает, что нельзя закончить курс и не получить знания. Конечно, всегда приятно, когда какой-либо выпускник рассказывает, что на работе столкнулся с задачей, которую мы разбирали на занятиях, но такие эпизоды все-таки не главные. Главное — составить мощную современную программу и подкрепить ее материалами, а методический успех заключается не в отдельном случае, а в том, чтобы поставить преподавание на поток.
— Чем вы занимаетесь, помимо преподавания?
— У меня два основных вида деятельности. Первое направление — это руководство образовательной программой «Информатика и программирование». Она всегда была одной из лучших программ по информатике в России, но в последнее время повысилась конкуренция, и стало понятно, что какие-то курсы нужно углубить или реформировать и добавить индивидуальные траектории. Это то, чем я занимаюсь последние годы. Также я взаимодействую с исследовательским центром «Сильный искусственный интеллект в промышленности», потому что, начиная со следующего набора, наша программа будет существовать в рамках федерального проекта «Искусственный интеллект». Нам важно понимать, какие актуальные задачи стоят перед нашими коллегами из науки, что они могут предложить и как нам обучать студентов.
Второе направление — это руководство проектом «Центр олимпиад. Работа с талантами», который направлен на развитие работы с абитуриентами: это и проведение школьных и студенческих олимпиад, и создание и поддержание образа университета как центра компетенций в области олимпиадной информатики и программирования. Наш университет организует студенческий чемпионат на территории северной Евразии (Россия, Беларусь, Узбекистан и другие страны), и мы проводим самые крупные всероссийские олимпиады школьников по информатике, которые учащиеся могут использовать при поступлении в университет. Также в рамках центра олимпиад Михаил Мирзаянов разрабатывает проект Codeforces — платформу для общения и участия в соревнованиях по программированию.
— Вы неоднократно становились лауреатом разных премий, например премии Президента РФ в области образования или международной премии ACM-ICPC Founder’s Award, а в прошлом году победили в конкурсе ITMO.EduStars. Как вы относитесь к таким наградам?
— Мне кажется, такие конкурсы более важны и актуальны для молодых преподавателей, потому что они помогают поддержать тех, кто только начал работать в университете. Я очень рад, что у нас есть программа ITMO.Mentors, которая позволяет нам привлекать старшекурсников в качестве помощи педагогам и формирует кадровый резерв. Это особенно важно с учетом роста количества студентов.
— А чем вы предпочитаете заниматься в свободное время?
— Раньше, до пандемии, я любил путешествовать, особенно если можно совмещать приятное с полезным — поездки и олимпиадные мероприятия. Еще я активно участвовал в соревнованиях по городскому ориентированию «Бегущий Город» и увлекался «Что? Где? Когда?». В игре добиться успехов на высоком уровне сложно, потому что она требует большого бэкграунда в гуманитарной области, в «Бегущем Городе» — легче. Общей эрудиции и знания города достаточно, чтобы хорошо выступить. В любом соревновании для меня прежде всего важен именно сам факт соревнования, возможность сравнить свои результаты с другими людьми и выступить как можно лучше.