О программе

Магистерская программа МФТИ "Научное программное обеспечение" (старое название: "Разработка и применение программного обеспечения в физических исследованиях") создана при поддержке двух школ МФТИ: Физтех-школы физики и исследований им. Ландау (ЛФИ), Физтех-школы прикладной математики и информатики (ФПМИ) а также ряда академических и промышленных партнеров. В ее основе лежит взаимодействие студента и научного руководителя.

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

Студенты магистерской программы в рамках научной работы и выполнения проектов работают над актуальными задачами:

  • обработка и анализ данных физических и биологических экспериментов;
  • нахождение оптимальной траектории для задач в георазведке;
  • разработка инструментов анализа данных для нефтяных компаний и количество прикладных учебных задач от реальных заказчиков постоянно растет.

Почему же это направление так актуально?

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

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


Зачем для этого нужны ученые?

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


Зачем все это программистам?

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

Научные руководители

Максим Сергеевич Долгоносов

Максим Сергеевич Долгоносов

Старший научный сотрудник ИКИ РАН. Научный руководитель космического эксперимента "Микроспутник Чибис-АИ" на борту МКС. Исследование УКВ излучения грозовых разрядов. Ключевые слова: Научное ПО, Python, грозовые разряды

Андрей Александрович Ефанов

Андрей Александрович Ефанов

Руководитель разработкой бэкенда Helicopter в Tinkoff

Разработка сервиса автодополнения SQL-кода.

Ключевые слова: SQL, DSL, распределенная разработка, Kotlin, Java, Python, C++

Константин Викторович Герценбергер

Константин Викторович Герценбергер

Начальник группы математического и программного обеспечения НЭОФСТИ на комплексе NICA ЛФВЭ ОИЯИ

Разработка программного обеспечения для обработки данных эксперимента на фиксированной мишени BM@N проекта NICA

Ключевые слова: Научное ПО, C++, Linux, CERN ROOT, базы данных, моделирование, обработка данных

Roland Grinis

Roland Grinis

Научный сотрудник лаборатории методов ядерно-физического эксперимента, сооснователь компании GrinisRIT и экс-квант Morgan Stanley Ключевые слова: Научное ПО, C++, вычислительная физика, методы Монте-Карло, нелинейное программирование

Олег Евгеньевич Калашев

Олег Евгеньевич Калашев

Сотрудник Института ядерных исследований РАН. Действующий член международной коллаборации Telescope Array Разработка методов, основанных на алгоритмах машинного обучения, для анализа экспериментальных данных, а также для теоретических задач астрофизики частиц. Моделирование распространения космических лучей. Ключевые слова: Научное ПО, машинное обучение, анализ данных, физика частиц

Иван Харук

Иван Харук

Научный сотрудник ИЯИ РАН, лаборатория обработки больших данных в физике частиц и астрофизике

Применение методов машинного обучения для анализа данных (различные области). Участник международных экспериментов Байкал-GVD и Telescope Array.

Ключевые слова: машинное обучение, нейронные сети, анализ данных, астрофизика

Igor Khokhriakov

Igor Khokhriakov

Компания Helmholtz-Zentrum Geesthacht/IK (Solutions Architect/CTO) Ключевые слова: SCADA, DCS, IoT, архитектура микросервисов, проектирование реактивных систем

Петр Климай

Петр Климай

ИЯИ РАН, JetBrains Research

Разработка научного программного обеспечения и построение IT-инфраструктуры для физических экспериментов

Ключевые слова: Научное ПО, Kotlin, Python, базы данных

Виталий Кондратов

Виталий Кондратов

Архитектор в отделе базовых технологий Тинькофф

Технологии масштабирования реляционных баз данных и управляемые базы данных

Ключевые слова: C++, Go, базы данных, Distributed SQL, Managed Databases

Ирина Геннадьевна Низовцева

Ирина Геннадьевна Низовцева

ФИЦ Биотехнологии РАН

Исследования в области математического моделирования и биотехнологий

Ключевые слова: Научное ПО, моделирование, биотехнологии, системы управления

Александр Нозик

Александр Нозик

Директор центра научного программирования GDE по Kotlin Ключевые слова: Научное ПО, Kotlin, анализ данных, физика нейтрино

Владислав Сергеевич Пантуев

Владислав Сергеевич Пантуев

Ведущий научный сотрудник ИЯИ РАН Поиск новой физики за пределами Стандартной Модели частиц Ключевые слова: Экспериментальная физика, анализ сигналов

Игорь Анатольевич Пшеничнов

Игорь Анатольевич Пшеничнов

Ведущий научный сотрудник ИЯИ РАН, участник коллаборации ALICE в CERN Моделирование адронных и электромагнитных взаимодействий релятивистских ядер Ключевые слова: Научное ПО, метод Монте-Карло, анализ данных, С++, Geant4, численные методы

Лев Михайлович Шагалов

Лев Михайлович Шагалов

Ведущий специалист "Разумные электрические сети" Разработка информационных систем, SCADA платформ Ключевые слова: Kotlin, Java, Linux, frontend, SCADA

Айно Константиновна Скасырская

Айно Константиновна Скасырская

Научный сотрудник ИЯИ РАН Инженерно-физические расчеты с помощью программных комплексов ANSYS и COMSOL Ключевые слова: Научное ПО, механические расчеты, гидродинамика, термодинамика

Александр Светличный

Александр Светличный

ИЯИ РАН

Моделирование спектаторной материи в столкновениях релятивистских ядер и физика ядерной фрагментации

Ключевые слова: Научное ПО, методы Монте Карло, Geant4, C++, ядерная физика

Ильмир Усманов

Ильмир Усманов

Сотрудник JetBrains в команде Kotlin Language Research Team

Дизайн и реализация языков программирования, компиляторные оптимизации, гетерогенные вычисления, символьное исполнение

Ключевые слова: Kotlin, компиляторы, архитектура

Алексей Викторович Зиновьев

Алексей Викторович Зиновьев

Руководитель исследовательской группы в области машинного обучения AproximaLabs Алгоритмы распределеного машинного обучения, Kotlin для Data Science Ключевые слова: Kotlin, Java, Python, C++, задачи оптимизации, машинное обучение, эволюционные алгоритмы, компьютерное зрение

Учебная программа

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

  • Вычислительные методы (годовой курс).
  • Статистические методы и анализ данных (годовой курс).
  • Научная этика и подготовка научных публикаций (семестровый курс).
  • Научный семинар (двухгодовой курс). Для выбора дополнительных курсов можно воспользоваться списком рекомендованных курсов или выбрать любой другой курс, который читается в МФТИ (и, возможно, в партнерских вузах).

Как поступить?

Чтобы принять участие в программе, необходимо:

  • заполнить анкету. В анкете надо указать одного или нескольких научных руководителей, с которыми вы бы хотели работать;
  • до 30 июня пройти собеседование с научными руководителями и согласовать предполагаемый план обучения;
  • подать документы в магистратуру МФТИ согласно правилам поступления (направление ЛФИ "Прикладная математика и физика", ЛФИ "Ядерная физика и технологии" или ФПМИ "Информатика и вычислительная техника"). Если есть соглашение с научным руководителем, но не удалось пройти по конкурсу, то обучение с большой вероятностью будет оплачено нашими партнерами. ВАЖНО: предварительное согласование с научным руководителем является обязательным для обучения в вузе.