Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Профиль «Математика, информатика, управление и программная инженерия»

С целью овладения профессиональными компетенциями студент в результате освоения профиля должен

знать:

  • базовые результаты элементарной теории множеств;
  • основы логики высказываний и понятие булевой функции;
  • основы исчисления высказываний, полноту и непротиворечивость системы аксиом исчисления высказываний;
  • понятия формального языки первого порядка, интерпретации и модели, понятия полноты, непротиворечивости; теорему Гёделя о полноте и теорему Мальцева о компактности;
  • абстрактные модели алгоритмов (машины Тьюринга, алгорифмы Маркова);
  • доказательство существования невычислимых функций;
  • основные свойства разрешимых и перечислимых множеств, теорему Поста о характеризации разрешимых множеств, теорему Райса-Успенского о неразрешимости нетривиальных свойств вычислимых функций, теорему Клини о рекурсии;
  • понятие вычисления с оракулом, сводимости по Тьюрингу; теорему об арифметической иерархии;
  • понятие лямбда-термов и комбинаторов, алфа-конверсии и бета-редукции, теорему Чёрча-Россера о приведении к нормальной форме;
  • теорему о трансфинитной рекурсии, понятие вполне упорядоченного множества, теорему Цермело;
  • основы комбинаторики и асимптотического комбинаторного анализа;
  • основы теории производящих функций и приложения теории к перечислительным задачам комбинаторики;
  • основы теории обращения Мёбиуса и ее приложения к перечислительным задачам комбинаторики;
  • основы теории графов: планарность, изоморфизм, эйлеровость, гамильтоновость, хроматическое число, хроматический многочлен и многочлен Татта, деревья, мультиграфы, орграфы, турниры, допустимые последовательности степеней вершин, количество связных графов с данным числом вершин и ребер (формула Кэли для числа деревьев и ее обобщения);
  • основы теории гиперграфов: теоремы Эрдеша – Ко – Радо, Франкла – Уилсона и Алсведе – Хачатряна, графы пересечений и реберные графы, хроматические числа Кнезеровских графов;
  • основы теории случайных графов: связность, распределение древесных компонент, эволюция гигантской компоненты, понятие случайного веб-графа;
  • основы комбинаторной геометрии и ее связь с теорией графов и гиперграфов;
  • основы теории кодирования и ее связь с теорией графов и гиперграфов: матрицы Адамара, коды, исправляющие ошибки, коды Хэмминга и Рида – Маллера;
  • основные вероятностные методы в комбинаторике: линейность математического ожидания, метод альтернирования, метод второго момента и оценки больших уклонений;
  • основные линейно-алгебраические методы в комбинаторике: линейная независимость полиномов над конечным полем;
  • основные топологические методы в комбинаторике: применение теоремы Борсука – Улама – Люстерника – Шнирельмана;
  • основы теории Рамсея: числа Рамсея для графов и гиперграфов, двудольные числа Рамсея, конструктивные оценки;
  • основы теории систем представителей для графов и гиперграфов, включая понятие размерности Вапника – Червоненкиса и его приложения к задачам комбинаторной геометрии и математической статистики;
  • основы экстремальной комбинаторики: теорема Турана и ее уточнения для дистанционных графов;
  • связь между языками и грамматиками;
  • классификацию языков и грамматик;
  • регулярные языки;
  • детерминированные и недетерминированные конечные автоматы;
  • машину Тьюринга;
  • контекстно-свободные грамматики;
  • восходящие и нисходящие анализаторы;
  • LL(k)-грамматики и анализаторы;
  • LR(k)-грамматики и анализаторы;
  • контекстно-свободные грамматики;
  • контекстно-зависимые грамматики;
  • применение грамматик в современных компиляторах;
  • основные понятия математической статистики;
  • основные подходы к сравнению оценок параметров неизвестного распределения;
  • асимптотические и неасимптотические свойства оценок параметров неизвестного распределения;
  • основные методы построения оценок с хорошими асимптотическими свойствами: метод моментов, метод максимального правдоподобия, метод выборочных квантилей;
  • понятие эффективных оценок и неравенство информации Рао-Крамера;
  • определение и главные свойства условного математического ожидания случайной величины относительно сигма-алгебры или другой случайной величины;
  • определение общей линейной регрессионной модели и метод наименьших квадратов;
  • многомерное нормальное распределение и его основные свойства;
  • базовые понятия теории проверки статистических гипотез;
  • лемму Неймана-Пирсона и теорему о монотонном отношении правдоподобия;
  • критерий хи-квадрат Пирсона для проверки простых гипотез в схеме Бернулли;
  • основные понятия теории случайных процессов;
  • определение простейшего случайного блуждания на прямой, основные теоремы о случайном блуждании на прямой: теорема о вероятности возвращения в нуль, теорема об асимптотике времени, проведенного в нуле, теорема о распределении первого момента возвращения в нуль для симметричного случайного блуждания;
  • основы теории ветвящихся процессов, процессы Гальтона-Ватсона и теорема о вероятности вырождения;
  • теорему Колмогорова о существовании случайного процесса с заданными конечномерными распределениями;
  • основы теории пуассоновских процессов и полей, определение, основные свойства и явную конструкцию пуассоновского процесса постоянной интенсивности;
  • определение и главные свойства винеровского процесса: непрерывность траекторий, закон повторного логарифма, строго марковское свойство и принцип отражения;
  • основы теории марковских цепей с дискретным временем: основные определения, уравнения Колмогорова-Чепмена, эргодическая теорема;
  • основы теории марковских цепей с непрерывным временем: теорема о существовании, эргодическая теорема, прямые и обратные дифференциальные уравнения Коломогорова;
  • основы теории марковских процессов;
  • основы теории мартингалов: разложение Дуба, теорема об остановке;
  • основы теории стационарных процессов;
  • линейные преобразования случайных процессов;
  • основные понятия математической статистики, используемые в прикладных исследованиях;
  • понятия статистической парадигмы, выборки, статистики, оценки;
  • понятия несмещенной, состоятельной, асимптотически нормальной оценки;
  • методы проверки статистических гипотез, понятия ошибок первого и второго родов,  p-значения, мощности критерия;
  • понятия корреляции, корреляционной матрицы, частичной корреляции;
  • корреляционные коэффициенты Пирсона, Спирмена и Кендалла;
  • факторный анализ, метод главных компонент;
  • методы непараметрической оценки, понятие ядерных оценок плотности;
  • регрессионный анализ, линейные регрессии, подбор полинома, многомерные линейные регрессии;
  • понятия стохастических дифференциальных уравнений;
  • постановки задач классификации, кластеризации, прогнозирования;
  • основные классы алгоритмов для решения задач классификации и кластеризации;
  • основные функции потерь и функционалы качества;
  • вероятностные методы: непараметрического оценивания плотности распределения, оптимальный байесовский классификатор, линейный дискриминант Фишера, EM-алгоритм, стохастический EM-алгоритм;
  • сеть радиальных базисных функций;
  • метод опорных векторов (SVM);
  •  многослойные нейронные сети и алгоритм обратного распространения ошибок;
  • логические алгоритмы: решающий список, алгоритм ID3, решающий лес;
  • алгоритм K-средних;
  • сети Кохонена;
  • методы агломеративной кластеризации, дендрограммы;
  • методы многомерного шкалирования;
  • непараметрическую регрессию, многомерную линейную регрессию, нелинейную параметрическую регрессию;
  • критерии выбора модели: скользящий контроль, критерий на основе оценки Вапника-Червоненкиса, критерий Акаике, байесовский информационный критерий, статистические критерии;
  • методы отбора признаков: добавления и удаления признаков, поиск в глубину, шаговая регрессия, МГУА, случайный поиск с адаптацией, генетические алгоритмы;
  • бустинг, бэггинг;
  • алгоритмы вычисления оценок;
  • алгоритмы с частичным обучением (semi-supervised learning);
  • необходимые и достаточные условия локального экстремума дифференцируемой вещественной функции по множеству в конечномерном пространстве;
  • определение и свойства касательного конуса Булигана и его сопряжённого к множеству в конечномерном пространстве;
  • технику применения касательного конуса Булигана и его сопряжённого для получения необходимых и достаточных условий локального экстремума дифференцируемой функции по различным множествам в конечномерном пространстве;
  • численные методы поиска локальных безусловных и условных экстремумов дифференцируемой вещественной функции в конечномерном пространстве;
  • теорию линейного программирования, двойственную задачу линейного программирования и симплекс-метод;
  • понятия выпуклого множества, выпуклой оболочки множества в банаховом пространстве, выпуклой функции, выпуклой оболочки функции и задачи выпуклого программирования;
  • понятия опорной функции, функции Минковского, индикаторной функции множества и их свойства;
  • основные свойства выпуклых множеств,  выпуклых функций и полунепрерывных снизу функций;
  • понятие сопряженной функции, ее свойства, понятие поляры множества, ее свойства, понятия касательных конусов к множествам (нижний, верхний, Кларка), понятие нормального конуса;
  • условия отделимости выпуклых множеств в банаховых пространствах;
  • понятие производной по направлению и субдифференциала выпуклой функции, вычисление субдифференциала суммы и максимума нескольких функций, понятие инфимальной конволюции и ее свойства;
  • метод множителей Лагранжа для решения задач выпуклого программирования с функциями, заданными на банаховом пространстве;
  • базовые понятия и вопросы теории экстремума, основные типы оптимизационных задач и основные теоремы об условиях экстремума;
  • основные факты из линейного и нелинейного функционального анализа, используемые в теории оптимизации;
  • постановку общей задачи на экстремум с гладкими ограничениями равенства и неравенства и правило множителей Лагранжа в ней;
  • понятие о методе вариаций для вывода условий экстремума;
  • понятие конуса критических вариаций в гладкой задаче и его роль в условиях экстремума;
  • необходимые и достаточные условия второго порядка для локального минимума в гладкой задаче;
  • постановку задачи Лагранжа классического вариационного исчисления и условия экстремума в ней, понятие сильного и слабого минимума, экстремали;
  • уравнение Эйлера и его первые интегралы (законы сохранения) для задач классического вариационного исчисления;
  • условия Лежандра и Якоби для знакоопределенности второй вариации в задаче Лагранжа,  понятие и роль сопряженной точки;
  • постановку задачи оптимального управления понтрягинского типа и формулировку принципа максимума Понтрягина;
  • понятие фазовой, управляющей и сопряженной переменной, условий трансверсальности и условия максимума функции Понтрягина;
  • понятия особых и неособых режимов, краевой задачи принципа максимума, синтеза оптимального управления, игольчатых вариаций управления;
  • формулировку принципа максимума для задач оптимального управления со смешанными ограничениями;
  • понятие о методе динамического программирования и его связи с принципом максимума;
  • общую теорему Вейерштрасса о существовании решения в задачах на экстремум;
  • теорему существования в задаче оптимального управления, выпуклой по управлению;
  • классические примеры задач вариационного исчисления  и  оптимального управления и их решения;
  • классы, основные принципы ООП и их применение;
  • виртуальные методы, перегрузку методов и стандартных операторов;
  • исключения;
  • шаблоны;
  • контейнеры STL: их устройство, основные операции и их стоимость, особенности использования;
  • алгоритмы STL;
  • бинарные деревья поиска;
  • красно-черные деревья;
  • B-деревья и связь 2-3-4 деревьев с красно-черными деревьями;
  • декартовы деревья;
  • в каких случаях на практике применяются указанные структуры данных;
  • задачу кодирования и жадный алгоритм построения кода Хаффмана.
  • основные понятия языка C/С++ (без ООП);
  • скалярные типы данных, операции над ними, арифметические выражения, стандартные функции, арифметику с плавающей точкой, приведение типов;
  • операторы структурного программирования;
  • рекурсию и метод итераций;
  • ссылочный тип данных, передача аргументов и возвращение результата по ссылке;
  • файлы и потоки, стандартные функции ввода/вывода;
  • АТД-стек, очередь, куча, очередь с приоритетом;
  • сортировки: пузырьком, быстрая, пирамидальная, слиянием, вставками, Шелла;
  • задачу о рюкзаке в разных постановках;
  • переводить выражения из инфиксной нотации в постфиксную и обратно, вычислять выражения.
  • алгоритмы обхода графа;
  • что такое минимальное остовное дерево;
  • алгоритмы Прима и Крускала построения минимального остовного дерево;
  • алгоритм топологической сортировки;
  • алгоритмы Флойда и Дейкстры поиска кратчайших путей на графе;
  • алгоритмы построения суффиксного дерева;
  • алгоритмы построения суффиксного массива;
  • алгоритмы Рабина-Карпа и Кнута-Морриса-Пратта для поиска подстрок в тексте;
  • алгоритм построения дерева отрезков;
  • основы реляционной алгебры;
  • принципы проектирования баз данных;
  • определения нормальных форм;
  • общее устройство БД;
  • основы SQL;
  • основные принципы работы оптимизатора запросов;
  • алгоритмы обеспечения отказоустойчивости;
  • уровни изоляции;
  • принципы работы блокировочного и многоверсионного планировщика;
  • как представляются вещественные и целые числа в компьютере;
  • какие основные архитектуры используются при построении компьютера;
  • из каких частей состоит компьютер, как взаимодействуют его части между собой;
  • как обрабатываются исключительные ситуации в компьютере;
  • какие и как архитектурные решения служат ускорению работы компьютера;
  • что такое операционная система (ОС) и зачем она нужна;
  • из каких частей состоит ОС;
  • какие задачи выполняет ядро ОС, какие виды ядер бывают, достоинства и недостатки;
  • какие виды ОС бывают, в чем между ними разница;
  •  какие виды процессов бывают, в чем отличие каждого вида;
  • как ОС управляет ресурсами и процессами;
  • как на аппаратном уровне поддерживаются защита одного процесса от другого;
  • какие есть архитектурные решения для реализации быстрого переключения между процессами;
  • как процессы получают доступ к физической памяти компьютера;
  • какие способы организации памяти существуют в компьютере, как расширяется физическая память за счет жесткого диска;
  • каким способом реализуется механизм динамических библиотек;
  • по каким алгоритмам происходит выбор страниц памяти для выгрузки на жесткий диск;
  • по каким алгоритмам происходит запись на жесткий диск;
  • как устроены файловые системы и понятие файла;
  • какие виды файловых систем бывают, достоинства и недостатки каждого из видов;
  • какие механизмы взаимодействия существуют для родственных, локальных и сетевых (глобальных) процессов;
  • как должно быть устроено взаимодействие процессов, чтобы разделять ресурс между ними;
  • как должно быть устроено взаимодействие, чтобы избежать ситуаций взаимных блокировок и гонок выполнения между процессами;
  • каким образом происходит отладка и трассировка процесса;
  • каким образом происходит преобразование аппаратных прерываний в сообщения (сигналы) для процесса;
  • для чего еще используются сигналы, как происходит обработка сигналов процессом;
  • как теоретически и практически устроена сеть, как происходит передача данных по сети;
  • каким образом происходит взаимодействие процессов по сети;
  • каким образом организуются многопроцессорные и многомашинные системы;
  • как организуются дисковые хранилища, какие достоинства и недостатки есть у каждого варианта;
  • многоуровневые модели сетевого взаимодействия DOI и OSI/ISO и соответствующие сетевые технологии;
  • место и этапы эволюции технологий распределенных вычислений в контексте развития информационных технологий и языков программирования;
  • классификация распределенных вычислительных систем с точки зрения типов вычислительных задач (возможностей декомпозиции на подзадачи и информационных зависимостей между этапами вычислений);
  • понятия вычислительного сценария в терминах информационных зависимостей между отдельными этапами алгоритма и характеристики эффективности его выполнения в распределенной вычислительной среде;
  • примеры вычислительных сценариев для некоторых алгоритмов вычислительной математики (линейная алгебра, оптимизация) и их свойства;
  • типы программных архитектур распределенных вычислительных систем;
  • основные разновидности объектно-ориентированного промежуточного программного обеспечения, его типовую структуру и этапы разработки приложений на этой основе;
  • принципы организации сервис-ориентированных вычислений и Грид-систем;
  • области применения и классы грид-систем, современные технологии их построения (Globus Toolkit, gLite, UNICORE) и обеспечения информационной безопасности в грид;
  • системы добровольных вычислений (volunteer computing) в технологиях Condor и BOINC создания гридов из персональных компьютеров (desktop grid);
  • протокол HTTP с точки зрения его использования в распределенных вычислительных системах Web 2.0 (на принципах RESTful);
  • архитектурные различия систем с общей и распределенной памятью, различия в средствах и подходах к разработке программ для таких систем;
  • основы технологии MPI (основные составляющие части и структуру MPI-программы, функции попарного и коллективного взаимодействия в MPI, основы работы с коммуникаторами MPI);
  • основы технологии OpenMP (составные части OpenMP, инструкции инициализации параллельного выполнения и синхронизации, директивы OpenMP, управляющие распределением работы между потоками);
  • диаграммы классов, виды отношений;
  • механизмы расширения UML, стереотипы, профили;
  • структурированный классификатор, композит и часть, диаграммы внутренней структуры;
  • представление взаимодействия, диаграммы взаимодействия и коммуникации;
  • семантика взаимодействия в UML, последовательность сообщений;
  • кооперация, описание сценариев вариантов использования;
  • сети Петри;
  • жизненный цикл ПО, проект и процесс, фазы разработки;
  • процедуры моделирования и проектирования, нотация DFD, открытая и закрытая модели;
  • виды требований к ПО, методы построения модели предметной области, метод Аббота;
  • объектно-ориентированный анализ, понятие об обязанностях, метод CRC;
  • представление конечных автоматов, диаграммы схем состояний;
  • виды декомпозиции: процедурная/алгоритмическая, по данным, по сценариям/функциям;
  • критерии и эвристики декомпозиции: anticipate change, information hiding, separation of concerns;
  • метод постепенного уточнения (stepwise refinement);
  • метод структурного проектирования Джексона (JSP);
  • принципы проектирования, OCP, LSP, DIP, ISP, SRP;
  • паттерны проектирования, Template method, Visitor, Builder, Fa?ade;
  • виды моделирования требований;
  • диаграммы переходов состояний;
  • как проводить моделирование предметной области (domain modelling);
  • как проводить функциональное моделирование;
  • как проводить моделирование поведения;
  • как проводить моделирование ограничений;
  • как интегрировать модели;
  • стратегии идентификации требований, анализ «цены-пользы»;
  • типы нефункциональных требований и способы их выявления;
  • типы и свойства детальных требований;
  • формальные методы и метрики для анализа спецификации требований;
  • новые возможности, предоставляемые стандартом C++0х;
  • управление конфигурациями;
  • современные системы контроля версий (SVN, Git, Mercurial);
  • возможности, предоставляемые библиотекой Boost;
  • CAS, ABA problem, RWLock, Read-Copy-Update механизмы;
  • виды тестирования;
  • тестирование «черного ящика», «белого ящика» и «серого ящика»;
  • планирование модульных тестов;
  • интегральное тестирование, тестирование интерфейсов, системное тестирование, юзабилити-тестирование, регрессионное тестирование;
  • документирование интеграции и тестирования;
  • итерации перехода, альфа- и бета- версии;
  • жизненный цикл дефектов;
  • методологию разработки через тестирование;
  • практику непрерывной интеграции, метрики интегрального и системного тестирования;
  • модели жизненного цикла проекта;
  • методологии XP, Agile, TDD,  Kanban, основы стандарта PMI;
  • основы венчурного инвестирования.

уметь:

  • задавать булеву функцию таблицей истинности и формулой;
  • проверять выполнимость и тавтологичность булевой формулы;
  • доказывать изоморфность или неизоморфность теорий первого порядка;
  • исследовать множество на разрешимость/неразрешимость, оценивать положение множества в арифметической иерархии;
  • приводить лямбда-термы к нормальной форме;
  • применять метод неподвижной точки для представления лямбда-комбинаторами вычислимых функции натуральных аргументов;
  • применять метод доказательства по трансфинитной индукции;
  • вычислять количества различных комбинаторных объектов: сочетаний, размещений, перестановок, циклических последовательностей;
  • доказывать комбинаторные тождества;
  • вычислять приближенные значения (асимптотики) комбинаторных выражений;
  • составлять и решать рекуррентные соотношения;
  • доказывать различные свойства графов и гипеграфов;
  • решать экстремальные задачи комбинаторики;
  • строить системы представителей для графов и гиперграфов;
  • решать рамсеевские задачи;
  • оценивать хроматические числа графов, строить многочлены Татта и хроматические многочлены;
  • строить коды, исправляющие ошибки;
  • делать правильные выводы из сопоставления результатов теории и эксперимента;
  • определять достаточный для решения задачи класс грамматик;
  • строить грамматику для языка;
  • находить язык, порождаемый грамматикой;
  • строить таблицы LL(k)- и LR(k)-анализаторов;
  • использовать генераторы парсеров для построения анализаторов для грамматики;
  • обосновывать асимптотические свойства оценок с помощью применения предельных теорем теории вероятностей;
  • строить оценки с хорошими асимптотическими свойствами для параметров неизвестного распределения по заданной выборке из него;
  • находить байесовские оценки по заданному априорному распределению;
  • вычислять условные математические ожидания с помощью условных распределений;
  • находить оптимальные оценки с помощью полных достаточных статистик;

  • строить точные и асимптотические доверительные интервалы и области для параметров неизвестного распределения;
  • находить оптимальные оценки и доверительные области в гауссовской линейной модели;
  • строить равномерно наиболее мощные критерии в случае параметрического семейства с монотонным отношением правдоподобия;
  • строить F-критерий для проверки линейных гипотез в линейной гауссовской модели;
  • находить вероятности вырождения для ветвящихся процессов Гальтона-Ватсона;
  • исследовать асимптотическое поведение марковской цепи с дискретным временем с помощью эргодической теоремы;
  • находить распределение марковской цепи с непрерывным временем с помощью дифференциальных уравнений Колмогорова;
  • находить марковские и мартингальные свойства у случайных процессов;
  • вычислять ковариационные характеристики стационарных случайных процессов с помощью спектральной плотности;
  • вычислять ковариационные и корреляционные функции линейных преобразований от случайных процессов;
  • формализовать задачи бизнес-анализа в форму статистических задач;
  • анализировать и обрабатывать массивы данных при помощи языка статистического анализа R;
  • применять базы данных для статистического анализа;
  • производить базовый описательный анализ случайных выборок;
  • строить критерии проверки гипотез в простых дискретных моделях;
  • строить вероятностные и статистические модели реальных ситуаций с максимальной вычислительной эффективностью;
  • пользоваться простейшими моделями финансовой математики, стохастическими дифференциальными уравнениями;
  • делать правильные выводы из сопоставления результатов теории и эксперимента;
  • выделять из практических задач их постановку для машинного обучения;
  • работать с современными программными комплексами для решения задач машинного обучения;
  • планировать оптимальное проведение вычислительного эксперимента;
  • правильно оценить степень достоверности найденного решения;
  • пользоваться справочной литературой по машинному обучению для быстрого поиска необходимых алгоритмов;
  • проводить обучение алгоритмов, избегая переобучения;
  • выбирать алгоритмы, исходя из особенностей данных задачи;
  • преподнести и объяснить «заказчику» полученные результаты;
  • исследовать необходимые и достаточные условия первого и второго порядка для поиска локальных экстремумов дифференцируемой функции в задаче математического программирования;
  • решать задачу поиска локальных безусловных экстремумов дифференцируемой функции с помощью градиентного метода наискорейшего спуска и метода Ньютона;
  • решать задачу математического программирования с помощью методов внешних штрафных функций, модифицированных функций Лагранжа, внутренних штрафных функций;
  • решать задачу линейного программирования с помощью симплекс-метода;
  • решать задачи выпуклого программирования методом множителей Лагранжа;
  • вычислять опорные функции множеств, поляры множеств, субдифференциалы выпуклых функций, применять формулы субдифференциала суммы и масимума функций к решению задач выпуклого программирования;
  • давать формальную математическую постановку оптимизационных задач геометрического, технического, экономического и т.п. содержания;
  • применять теоретические результаты для исследования конкретных задач;
  • анализировать полученные условия оптимальности и находить с их помощью решение задачи;
  • находить экстремали в задачах оптимального управления и проводить дальнейшее их исследование на наличие минимума;
  • исследовать зависимость решения от параметров задачи;
  • находить производные нелинейных отображений нормированных пространств;
  • проверять выполнение условия регулярности оператора равенств;
  • делать переформулировки новых задач с целью приведения их к наиболее удобному для изучения виду;
  • выписывать вторую вариацию функции Лагранжа и выяснять ее знакоопределённость;
  • находить сопряженные точки квадратичных функционалов;
  • делать оценки различных членов разложений, встречающихся в теории экстремума;
  • строго доказывать основные утверждения теории экстремума;
  • использовать бинарный поиск для нахождения элемента в массиве;
  • оптимизировать быструю сортировку для случая длинных похожих ключей или большого количества совпадающих, применять оптимизации для уменьшения числа рекурсивных вызовов и избежания деградации;
  • применять динамическое программирование для решения задач LCS, нахождения расстояния Левенштейна;
  • выделять память в куче и на стеке;
  • решать задачу о выборе заявок в разных вариациях условия;
  • применять отладку и макросы для нахождения ошибок;
  • оценивать сложность алгоритма;
  • создавать программы из нескольких файлов.
  • использовать на практике принципы ООП;
  • реализовывать отложенные вычисления в декартовых деревьях;
  • реализовывать в виде шаблонов деревья поиска и хеш-таблицы;
  • реализовывать интерфейс StringPool, работающий за асимптотическую константу;
  • решать задачи, требующие комбинации нескольких контейнеров.
  • реализовывать следующие алгоритмы и структуры данных: обхода графа, построения минимального остовного дерева (алгоритмы Прима и Крускала), топологической сортировки, поиска кратчайших путей на графе (алгоритмы Флойда и Дейкстры), построения суффиксного дерева; построения суффиксного массива, поиска подстрок в тексте (алгоритмы Рабина-Карпа и Кнута-Морриса-Пратта), алгоритм построения дерева отрезков;
  • сводить задачи к использованию вышеперечисленных алгоритмов;
  • находить наибольшую подстроку двух текстов;
  • находить подстроки в очень большом тексте;
  • тестировать написанные классы (элементы юнит-тестирования);
  • строить индекс текста;
  • применять суффиксные деревья и массивы для решения практических задач;
  • применять динамическое программирование и дерево отрезков для нахождения минимума на отрезке;
  • сводить задачу нахождения минимума на отрезке к задаче наименьшего общего предка, и наоборот;
  • решать задачу выдачи подсказок при поиске (suggest);
  • использовать разные виды куч (пирамид) для очереди с приоритетами;
  • использовать отложенные вычисления в декартовом дереве;
  • проектировать БД с посредством ER диаграмм;
  • писать эффективные SQL-запросы;
  • создавать транзакции с учетом параллельного выполнения;
  • определять и устранять причины «мертвых» блокировок (deadlock);
  • создавать все виды процессов;
  • организовывать синхронное выполнение процессов;
  • организовывать все виды взаимодействия между процессами (включая сетевое взаимодействие);
  • создавать программы, способные заменить собой стандартные утилиты POSIX-операционной системы;
  • создавать программы, эффективно использующие многопроцессорные и многоядерные компьютеры;
  • выбирать технологии распределенных вычислений, адекватные решаемой задаче;
  • оценивать трудоемкость проектирования, программной реализации и сопровождения распределенных программных приложений, созданных на основе различных технологий;
  • определять класс вычислительной задачи с точки зрения применимости той или иной технологии распределенных и/или параллельных вычислений;
  • проектировать интерфейсы удаленных сервисов на декларативных языках;
  • анализировать потенциал распараллеливания вычислительного алгоритма (программы), выделять наиболее трудоемкие участки, подлежащие параллельной реализации, выбирать адекватные инструменты распараллеливания;
  • преобразовывать существующие программные приложения в сервисы и объединять их в вычислительные сценарии;
  • создавать многопоточные программы на OpenMP, организовывать синхронизацию при доступе к общим данным;
  • создавать программы на MPI, организовывать взаимодействие процессов с помощью передачи сообщений;
  • моделировать жизненный цикл классификатора с помощью конечных автоматов;
  • самостоятельно разрабатывать согласованную модель программной системы, удовлетворяющую функциональным требованиям;
  • обосновать принятые программные решения.
  • выявлять заинтересованных лиц (stakeholders);
  • проводить опрос заинтересованных лиц;
  • выделять требования;
  • моделировать требования в различных парадигмах моделирования;
  • выявлять и документировать нефункциональные требования таким образом, чтобы можно было объективно протестировать разрабатываемое ПО на предмет их удовлетворения;
  • выделять сценарии использования;
  • строить диаграммы последовательностей;
  • проводить анализ рисков;
  • оценивать стоимость;
  • обнаруживать и разрешать пересечения требований;
  • проверять, что спецификации удовлетворяют требованиям;
  • использовать разные компиляторы для разных модулей;
  • использовать для решения задачи популярные сторонние библиотеки;
  • разрабатывать многопоточные приложения;
  • разрабатывать неблокирующие алгоритмы;
  • писать высокопроизводительный код;
  • учитывать при разработке приложения особенности архитектуры ЭВМ;
  • находить медленные участки кода;
  • оптимизировать приложение с учетом кэширования процессора;
  • составлять планы тестирования;
  • выполнять интеграцию системы;
  • проводить инспекцию кода;
  • использовать статистический подход для оценки плотности ошибок и вероятности возникновения отказа;
  • оценивать покрытие кода тестами;
  • использовать инструментальные средства для автоматизации тестирования и интеграции программной системы;
  • управлять коммуникациями проекта;
  • управлять персоналом проекта;
  • планировать и управлять сроками;
  • выявлять и уменьшать риски;
  • управлять ожиданиями заинтересованных лиц;
  • оценивать расходы на ФОТ в разработке проекта;
  • оценивать затраты на оборудование и ПО, необходимые для разработки и эксплуатации проекта;
  • оценивать сложность поддержки проекта и связанные с этим изменения его стоимости;
  • оценивать экономический эффект от аутсорсинга и использования оффшоров;
  • находить  баланс между квалификацией персонала, затратами на его обучение, качеством продукта и соблюдением сроков;
  • разрабатывать бизнес-план;
  • искать финансирование и привлекать инвестиции;
  • презентовать проект перед потенциальным заказчиком или инвестором.

владеть:

  • методом автоморфизма интерпретации и методом элиминации кванторов;
  • выводом тавтологии в исчислении высказываний;
  • методом Клини построения рекурсивных алгоритмов;
  • методом определения функции по трансфинитной рекурсии;
  • основами формально-аксиоматического метода;
  • культурой постановки и моделирования комбинаторных задач;
  • вероятностным методом в комбинаторике;
  • линейно-алгебраическим методом в комбинаторике;
  • топологическим методом в комбинаторике;
  • методом производящих функций;
  • методом обращения Мёбиуса;
  • навыками использования генераторов синтаксических анализаторов;
  • основными методами математической статистики построения точечных и доверительных оценок: методом моментов, выборочных квантилей, максимального правдоподобия, методом наименьших квадратов, методом центральной статистики.
  • навыками асимптотического анализа статистических критериев;
  • навыками применения теорем математической статистики в прикладных задачах физики и экономики;
  • основными аналитическими методами теории случайных процессов: комбинаторными, дифференциальными, спектральными, методами функционального анализа;
  • навыками асимптотического анализа различных классов случайных процессов: ветвящихся процессов, марковских цепей, гауссовских процессов;
  • навыками применения теорем теории случайных процессов в прикладных задачах физики и экономики;
  • методами статистического анализа как формализованных так и не полностью факторизованных данных;
  • методами дисперсионного анализа;
  • методами корреляционного анализа;
  • методами факторного анализа;
  • навыками применения теорем теории случайных процессов в прикладных задачах физики и экономики;
  • навыками программирования для решения задач анализа данных;
  • средствами визуализации для демонстрации полученных результатов;
  • навыками использования методов математического и выпуклого анализа для получения необходимых и достаточных условий локальных экстремумов функций в различных задачах конечномерной оптимизации;
  • навыками применения и оценки сходимости численных методов поиска локальных безусловных и условных экстремумов функций;
  • логическим мышлением, методами доказательств математических утверждений;
  • навыками решения и исследования простейших типов задач выпуклого программирования в математических и физических приложениях;
  • навыками вычисления субдифференциалов при исследовании минимума выпуклых функций, заданных  на выпуклых множествах из банахова пространства, умением пользоваться необходимой литературой для решения задач;
  • культурой постановки и формализации прикладных задач оптимизации;
  • основными понятиями и результатами теории экстремума и связанными с ними понятиями функционального анализа и дифференциальных уравнений;
  • средствами разработки программ на языке C;
  • средствами разработки программ на языке C++;
  • макросами препроцессора.
  • навыками отладки сложных программ.
  • средствами анализа производительности языка C++;
  • начальными навыками тестирования программ;
  • средствами автоматического тестирования модулей;
  • инструментарием для работы с БД;
  • инструментарием для проектирования БД;
  • начальными навыками тестирования сложных многопроцессных программ;
  • навыками создания/компиляции/отладки программ в Unix-подобных системах;
  • культурой выбора технологий распределенных вычислений, адекватных той или иной прикладной вычислительной задаче;
  • навыками проектирования сценариев распределенных вычислительных алгоритмов;
  • начальными навыками создания вычислительных сервисов на основе объектно-ориентированного и сервис-ориентированного программных инструментариев;
  • начальными навыками анализа вычислительной сложности распределенных алгоритмов;
  • понятиями о разработке многопоточных программ для многоядерных систем с общей и распределенной памятью;
  • пониманием техник для валидации и верификации требований;
  • методологиями и инструментальными средствами для анализа и документирования требований заказчика;
  • программными средствами для генерации документации проекта;
  • программными средствами для организации юнит-тестирования;
  • программными средствами для создания низкоуровневого дизайна;
  • программными средствами для автоматической верификации низкоуровневого дизайна;
  • программными средствами для профилирования кода;
  • программными средствами для оптимизации кода;
  • программными средствами для генерации кода на основе низкоуровневого дизайна;
  • культурой использования распределенных систем контроля версий;
  • инструментальными средствами для проведения модельного тестирования;
  • инструментальными средствами для проведения интегрального и системного тестирования;
  • навыками самостоятельной работы в современных программных комплексах;
  • навыками освоения большого объёма информации;
  • навыками самостоятельной работы с учебной и научной литературой;
  • навыками строгих математических рассуждений;
  • культурой проведения эксперимента;
  • культурой постановки задач.

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика