В этом году первый набор Факультета Компьютерных Наук заканчивает второй курс, и на этом фундамент, обязательный для всех, почти заканчивается. Что же ждет их дальше, на 3-4 курсе и в магистратуре? Ниже я расскажу об этом, а также об основных новостях ФКН: старт специализаций, новая магистерская программа, открытие двух лабораторий, изменения в базовой программе 1-2 курса по итогам первых двух лет существования ФКН, включая оценки и фидбэк от самих студентов.
На 3-4 курс все студенты выбирают себе специализацию. Это набор курсов в рамках одной широкой темы, некоторые из которых обязательны для всех, кто выбрал специализацию, а из остальных нужно выбрать определенное количество (не все). Всего у нас будет пять специализаций, про две из них я расскажу подробнее ниже. Кроме курсов специализации, есть обязательные для всех курсы и общие курсы по выбору, а также курсовая работа, которая может быть либо научной работой, либо проходить в форме командного проекта.
Специализация по машинному обучению
Одна из самых горячих тем в Computer Science сегодня и, вероятно, на многие годы вперед – Data Science, включающая в себя Big Data и Machine Learning. Она настолько популярна, что в университетах начинают появляться отдельные программы по Data Science не в рамках Computer Science программ, а параллельно с ними. В последнее время многие постановки задач в теории алгоритмов появляются из Data Science. По оценкам McKinsey, только в США к 2018-му году нехватка Data Scientist’ов составит 490000 человек, а Harvard Business Review пишет, что Data Scientist — the sexiest job of the 21st century. Могу добавить, что работа в этой области предполагает и программирование, и алгоритмы, и сложную математику, а знания, полученные в университете, пригождаются ежедневно.
В этом году на ФКН стартует специализация по машинному обучению, создававшаяся таким образом, чтобы отражать взгляд и со стороны науки, и со стороны индустрии. Кураторы специализации — Дмитрий Ветров и Евгений Соколов.
Дмитрий Ветров – профессор Сколтеха — переходит в этом учебном году на полную ставку на ФКН и становится главой новой лаборатории Байесовских методов — это большая удача для ФКН! Дмитрий — один из всего нескольких людей в России, работы которых принимают на две главные в мире конференции по Machine Learning – ICML и NIPS. Еще важнее то, что статьи на эти конференции принимают у учеников Дмитрия – аспирантов и даже магистров: для магистра иметь статью на такой конференции – это прорыв, гарантирующий попадание в аспирантуру в сильнейшие научные группы мира. Дмитрий Ветров будет читать курс по байесовским методам в рамках специализации. В лаборатории Дмитрия будут работать его магистры и аспиранты, а также ученики Антона Конушина – руководителя академической программы ПМИ на ФКН и руководителя одной из ведущих научных групп в России в области Computer Vision. Антон Конушин будет читать у нас курс по компьютерному зрению.
Евгений Соколов – профессиональный data scientist, руководитель группы в Yandex Data Factory. Он будет читать общий для всех студентов курс машинного обучения, а также его продвинутое продолжение для студентов специализации. Евгений совместно с Петром Ромовым, Эмели Драль, Виктором Кантором и Евгением Рябенко недавно запустили на Coursera русскоязычную специализацию по машинному обучению в анализе данных. Практически все они, а также половина остальных data scientist’ов Yandex Data Factory будут преподавать на специализации. Таким образом, студенты смогут перенять опыт людей, ежедневно применяющих машинное обучение для решения задач в областях от банковской индустрии, мобильных операторов и интернет-торговли до космической индустрии, металлургии и физики высокой энергии в ЦЕРНе.
Описание специализации и ее программу можно посмотреть здесь. Думаю, что аналогов этой программы нет ни в одном университете в России. В частности, в рамках специализации будет пройдет новый курс по Deep Learning, который будет отражать последние достижения в области и будет все время обновляться с прогрессом глубинного обучения. Для первых выпускников специализации через два года мы в ШАДе будем готовить и создавать новые продвинутые курсы, чтобы студенты не скучали в магистратуре.
Те из вас, кто был на всероссийской олимпиаде по информатике в этом году, могли видеть выступление Евгения Соколова на тему применения машинного обучения для рисования картин в стиле Ван-Гога, игры в Го и предсказания успеваемости абитуриентов по их успехам в олимпиадах. Для тех, кто не был, если вам интересно послушать про другие применения машинного обучения, есть видеозаписи выступления Евгения на Открытой олимпиаде и выступления Петра Ромова на ЗКШ про предсказание того, кто «затащит катку в доту» :)
Если вам интересно «потрогать», что такое машинное обучение, то записывайтесь в параллель ML летней школы ФКН в августе. Также в июле пройдет параллель A-ML в ЛКШ, которую будут вести Евгений Соколов и Петр Ромов. Набор в ЛКШ уже закрыт, но если вас пригласили в другую параллель ЛКШ, у вас там будет возможность сходить на спецкурс по машинному обучению. Ну а для изучения Machine Learning по полной программе – конечно, поступайте на ФКН.
Специализация по распределенным системам
Второе популярное направление, по которому у нас появилась специализация,- распределенные системы. Это направление связано с работой со сложными большими системами из огромного числа компьютеров, алгоритмами распределенного консенсуса, алгоритмами для работы с внешней памятью, с распределенными базами данных, которые должны обеспечивать быстрое обновление под большой нагрузкой и при этом поддерживать синхронизацию данных между репликами, с оптимизацией передаваемых по сети данных. Наверно сейчас это наиболее алгоритмизированная область разработки.
Куратор специализации – Иван Пузыревский, преподаватель ШАД и руководитель группы в Яндексе. Группа Ивана являются частью отдела Максима Бабенко. Отдел Макса работает над созданием и развитием распределенной системы хранения и обработки данных под названием YT (“Ыть”), использующейся во всем Яндексе. В марте Zlobober, также работающий в этом отделе, делал небольшой рассказ для школьников на тему вычислений над большими данными.
Биоинформатика
С этого учебного года на факультете стартует магистерская программа «Анализ данных в биологии и медицине» под руководством Михаила Гельфанда, одного из главных специалистов в России в области биоинформатики. Биоинформатика — активно развивающаяся область на стыке биологии и информатики, в которой уже достигнуты большие успехи, но есть и множество открытых вопросов, связанных с пониманием функций отдельных частей генома. Ответы на эти вопросы могут привести к методам лечения болезней, которые сегодня неизлечимы, а также возможностям усиливать или ослаблять те или иные стороны и способности организма. Если вы когда-нибудь активно изучали строковые алгоритмы, от Кнута-Морриса-Пратта до суффиксных деревьев, массивов и автоматов, то, вероятно, замечали, что книга Гасфилда написана в первую очередь для биоинформатиков.
На программе математиков (программа-то по направлению "Прикладная математика и информатика", при поступлении экзамен только по математике и английскому языку) научат основам биологии (курсы по молекулярной биологии, молекулярной эволюции и сравнительной геномике), а также компьютерным методам и специальным алгоритмам, необходимым для работы в такой междисциплинарной области, как анализ медико-биологических данных.
Вводные лекции Гельфанда можно посмотреть здесь.
Теоретическая информатика
На ФКН открылась международная лаборатория по теоретической информатике под руководством Николая Константиновича Верещагина. Николай Константинович — д.ф.-м.н., профессор мехмата МГУ с 1999 года, член Европейской Академии (Academia Europaea) по секции информатики, научный руководитель Максима Бабенко, много лет читает в ШАДе курсы по теории информации и теории вычислений, которые очень любят наиболее «математические» студенты ШАД. Несколько лет назад он пришел на матфак ВШЭ, а недавно перешел к нам на ФКН. Николай Константинович ведёт научный семинар “Теоретическая информатика” для студентов 3-4 курсов, читает курсы по математической логике и сложности вычислений.
Сотрудник лаборатории и руководитель специализации по теоретической информатике — Александр Ханиевич Шень, Directeur de Recherche (DR2) du CNRS, наверняка также известный вам как автор книги “Программирование: теоремы и задачи”.
В качестве ведущего зарубежного ученого в лаборатории работает Владимир Александрович Гурвич, профессор университета Ратгерс в США, специалист в области комбинаторной оптимизации и алгоритмической теории игр. Основные научные интересы В.А. Гурвича лежат в областях теории алгоритмов и теории сложности вычислений, алгоритмической теории игр, теории графов.
Есть предварительные договоренности о визитах профессоров из Microsoft Research, UCLA, Institut des Mathématiques de Lille, Université de Montpellier и др.
Лаборатория в целом будет заниматься следующими научными направлениями: сложность вычислений, теория информации, алгоритмическая статистика (один из основателей — Н.К. Верещагин), построение и анализ алгоритмов (один из научных руководителей — М.А. Бабенко), комбинаторная оптимизация и алгоритмическая теория игр.
Теоретическая информатика — не самое массовое направление, но его выбирают некоторые из наших самых сильных студентов, которые параллельно с учёбой имеют возможность работать стажёрами-исследователями в этой лаборатории.
Изменения в базовой программе обычного и пилотного потоков
По результатам первых двух лет мы решили дать студентам больше времени на то, чтобы освоиться и с программированием, и с алгоритмами, и с курсами архитектуры компьютера и операционных систем. Мы выделили дополнительное время на каждый из этих трех курсов в течение первых двух лет обучения, а курсы по сетям и базам данных перенесли на 3-4 курс, где их можно взять по выбору или в рамках специализации.
Что касается пилотников по программированию, то мы столкнулись с неожиданной проблемой: не все пилотники умели программировать на C++ в достаточной степени, чтобы сразу заниматься продвинутыми алгоритмами на этом языке, и поэтому в 2016-2017 году сначала будет один модуль интенсивного курса C++ от любимого лектора всех студентов Алексея Зобнина, а затем уже пилотники попадут к GlebsHP на годовой курс алгоритмов.
Курс архитектуры компьютера и операционных систем будет общим для всех, мы растянули его на 3 модуля, и за счет этого получится лучше синхронизировать лекции и семинары.
11-го мая в Яндексе прошла встреча с победителями олимпиад, на которой рассказывали про программу ФКН в целом, пилотный поток по программированию и по математике, а также рассказывал о своих ощущениях студент пилотной группы Валентин Бирюков. Видеозапись мероприятия можно посмотреть здесь.
Что касается пилотных групп по математике, то у них по всем предметам, кроме одного – курса дифференциальных уравнений – разный подход к изучению, отдельные лекторы и семинаристы. Проще всего объяснить, в чем разница, на примере курса дискретной математики.
Студенты, прошедшие базовую школьную программу, не участвовавшие в олимпиадах по математике и не обучавшиеся в матшколах, должны начать с конкретных объектов – графов, перестановок и др. и теорем вроде того, что вершин нечетной степени в графе четное число. Олимпиадники эти вещи давно прошли, они уже кажутся очевидными, но для первого знакомства с ними требуется ненулевое время — и получается, что если проходить их совместно, то либо олимпиадники/матшкольники будут скучать, либо остальные не успеют вникнуть. Кроме того, студентам основного потока нужно научиться формальным способам рассуждений, строгим доказательствам. Только после этого для них имеет смысл перейти во втором модуле к более абстрактным и более высокоуровневым вещам – теории множеств, отношениям эквивалентности, отношениям порядка – и увидеть, что конкретные объекты являются частными случаями этих общих объектов.
Если бы пилотники тоже начинали с базовых свойств конкретных объектов, они бы заскучали и перестали учиться в первом модуле, после чего, как показывает опыт, крайне тяжело снова начать учиться в нужный момент и не вылететь. Вместо этого они сразу начинают с более абстрактных объектов из 2-го модуля обычного курса, а во втором модуле снова возвращаются к конкретным комбинаторным структурам, но уже с совершенно другой глубиной понимания.
В третьем модуле оба потока приступают к теории вычислений, и относительно этого направления они уже не так сильно отличаются, ибо это уже слишком далеко от всего, чего можно было коснуться в рамках школьных олимпиад.
Отбор на пилотный поток проводится в августе по результатам . Никого не заставляют идти на пилотный поток, это дело сугубо добровольное, причем можно решить отдельно как про математический трек, так и про программистский (можно выбрать сразу оба). Студенты довольно трезво оценивают свои силы, поэтому «конкурс» на пилотный поток небольшой и составляет не более 1.5 человек на место. Конечно, если вы активный участник соревнований на Codeforces, то мы предлагаем вам попробовать свои силы и поступить на пилотный поток, по крайней мере по программированию, тем более что для этого вам понадобится только выразить желание и хорошо написать контест :)
Ну и напоследок, если вам захотелось к нам поступать, то любые вопросы можете задавать прямо в комментариях к посту, личным сообщением Codeforces или ВКонтакте; схема поступления расписана вот здесь, а льготы для олимпиадников мы скоро опубликуем вот тут.