Подготовка к поступлению
Теоретический минимум, который понадобится будущему магистру, подробно описан в самой программе вступительного экзамена и включает в себя как базовые знания из биологии, физики и информатики, так и знания математики на уровне бакалавриата.
Кроме того, необходимо уметь писать код хотя бы на одном из известных языков программирования (Python, C++, Java, Kotlin, Rust, Haskell, C) на уровне, достаточном для решения задач по алгоритмам, а также не бояться работать в командной строке.
Несмотря на то, что в программе в первом же семестре предусмотрен блок адаптационных дисциплин, мы все же предполагаем, что основные, базовые курсы как в области математики (математический анализ, алгебра, дискретная математика, теория вероятностей), так и программирования (алгоритмы и структуры данных, языки программирования) студентам известны из бакалавриата. При этом мы понимаем, что у абитуриентов, поступающих к нам на программу, разный бэкграунд, разные бакалаврские программы, разное качество обучения. Поэтому как для поступления на программу, так и для последующего успешного обучения на ней, мы советуем заранее пройти предварительную подготовку, прослушав базовые бесплатные онлайн-курсы по всем основным дисциплинам, которые мы читаем на первом году обучения.
1. Математика
Мы очень советуем пройти следующие курсы, которые помогут как поступить на нашу программу, так и подготовиться к обучению на ней:
Курс «Ликбез по дискретной математике»
Читает А.В. Омельченко, преподаватель, доктор физико-математических наук Санкт-Петербургской школы физико-математических и компьютерных наук. Этот курс представляет собой совершенно базовый набор фактов, которые категорически необходимо знать каждому, кто хочет поступить и успешно учиться на нашей программе.
Излагаемые в данном курсе факты совершенно необходимы любому абитуриенту, желающему поступить на программу. Он также является пререквизитом к курсу "Линейная алгебра в машинном обучении", читаемому в осеннем семестре на первом году обучения.
Курс «Введение в математический анализ»
Преподаватель – А.И. Храбров, кандидат физико-математических наук, доцент департамента информатики и ведущий эксперт Центра довузовских программ, проектов и организации приема в бакалавриат и магистратуру НИУ ВШЭ в Санкт-Петербурге. Данный курс содержит базовые понятия математического анализа, которые должен знать любой абитуриент, желающий поступить к нам на программу. Кроме того, он является важным пререквизитом к курсам "Численные методы", "Методы оптимизации" и др.
Данный курс от А.И. Храброва покрывает все необходимые сведения из теории вероятностей, которые нужно знать как для поступления на программу, так и для обучения на ней. Он является важнейшим пререквизитом к таким важным курсам, как "Математическая статистика", "Численные методы", "Машинное обучение".
2. Программирование
Для всех, кто ранее не сталкивался с программированием, и даже для тех, кто уже программирует, мы настоятельно рекомендуем следующий великолепный курс на платформе Coursera по основам языка Python:
«Основы программирования на Python»
Читает М.С.Густокашин, преподаватель факультета компьютерных наук НИУ ВШЭ. Этот курс является важным пререквизитом к курсу "Введение в Unix и скриптовые языки (Unix + Python)", читаемому в осеннем семестре на первом году обучения.
От этого же преподавателя, но уже на платформе Степик, мы рекомендуем курс
«Python для решения практических задач»
Этот курс позволит понять, как использовать теоретические знания о программировании на Python для решения некоторых задач, полезных для любого человека, желающего в дальнейшем заниматься машинным обучением.
«Программирование на языке C++»
Читает А.С.Смаль, сотрудник лаборатории математической логики ПОМИ РАН, преподаватель Computer Science центра. Данный курс, хоть и не является обязательным пререквизитом к программе, полезен с точки зрения приобретения навыков программирования, а также для освоения еще одного полезного языка программирования, отличного от Python.
Полезно также заранее установить у себя на компьютере операционную систему Linux для того, чтобы у вас формировалась привычка к этой ОС.
3. Алгоритмы
После того, как Вы освоите хотя бы на элементарном уровне хотя бы один из базовых языков программирования (Python, C++), мы настоятельно рекомендуем вам освоить хотя бы элементарные основы базового для любого программиста предмета «Алгоритмы и структуры данных»:
Курс «Алгоритмы: теория и практика. Методы»
Читает А.С.Куликов, Доктор физико-математических наук. Старший научный сотрудник Математического института Стеклова в Санкт-Петербурге (ПОМИ РАН), координатор и преподаватель Computer Science центра и Computer Science клуба при ПОМИ РАН.
Если будет время, можно прослушать продолжение этого курса:
Курс «Алгоритмы: теория и практика. Структуры данных»
Читает А.С.Куликов, Доктор физико-математических наук. Старший научный сотрудник Математического института Стеклова в Санкт-Петербурге (ПОМИ РАН), координатор и преподаватель Computer Science центра и Computer Science клуба при ПОМИ РАН.
4. Статистика
Чтобы восполнить возможные пробелы в статистике, мы рекомендуем курс Анатолия Карпова «Основы статистики», а также его продолжение в виде второй и третьей части.
5. Молекулярная биология
Курс «Молекулярная биология и генетика» Кирилла Григорьева и Павла Добрынина рассказывает об основных понятиях, начиная от организации клетки и заканчивая микро- и макроэволюцией. Курс подойдет слушателям, как незнакомым с биологией, так и знакомым с ней на уровне школьной программы.
За счет повторения или изучения базовой терминологии - незнакомый для многих биологический блок в процессе обучения, будет проще усваиваться.
6. Дополнительные ресурсы для подготовки
Также мы рекомендуем следующие полезные сайты для обучения:
- https://e-maxx.ru/ - Справочник по алгоритмам с готовыми реализациями.
- https://informatics.mccme.ru/ - Дистанционная подготовка по информатике. Есть теория и возможность решать задачи.
- https://codeforces.com/ - Регулярные соревнования и олимпиады, задачи.