Институт системного программирования им. В.П. Иванникова РАН


Учебные курсы

Спецсеминар «Корректность программ»

Авторы: д.ф.-м.н. Петренко Александр Константинович, к.ф.-м.н. Хорошилов Алексей Владимирович, к.ф.-м.н. Кулямин Виктор Вячеславович. Тип - осенний полугодовой курс.

Спецсеминар «Корректность программ» состоит из трёх читаемых разными лекторами курсов: «Введение в логическое проектирование аппаратуры», «Введение в формальные спецификации» и «Технологии программирования и свободное программное обеспечение».

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

Авторы: к.ф.-м.н. А.С. Камкин, А.Д. Татарников. Тип - осенний полугодовой курс.

Курс предназначен для студентов 3-6 курсов, специализирующихся в области проектирования и верификации микропроцессоров. Цели курса — познакомить слушателей с методами спецификации микропроцессоров и методами генерации тестовых программ, а также выработать соответствующие практические навыки. Основу курса составляют практичекие занятия, посвященные спецификации инструкций и созданию автоматизированных генераторов тестовых программ для MIPS-совместимого микропроцессора. Практикум основан на языке спецификации nML (Sim-nML) и инструменте создания генераторов тестовых программ MicroTESK.

Верификация программного обеспечения

Автор: к.ф.-м.н. Пакулин Николай Витальевич. Тип - весенний полугодовой курс.

Курс представляет собой введение в методы верификации программного обеспечения. Цель курса - познакомить с предметом верификации ПО, представить широкую палитру существующих методов и подходов, осветить преимущества и ограничения, присущие методам верификации.

Открытые системы и организация безопасности сетевого соединения

Автор: к.ф.-м.н. Пакулин Николай Витальевич. Тип - осенний полугодовой курс.

Курс представляет собой введение в проблему защиты передачи данных в открытых сетях. Его цель - показать студентам многообразие аспектов задачи обеспечения информационной безопасности, дать представление о методах проектирования комплексных систем защиты передачи данных.

Конструирование ядра операционной системы

Автор: к.ф.-м.н. Хорошилов Алексей Владимирович. Тип - полугодовой курс .

Целью курса является знакомство на практике с основными принципами конструирования ядра операционной системы и сопутствующих понятий, таких как планировщик, виртуальная память, прерывания, механизмы синхронизации, системные вызовы, файловые системы и др.

Тестирование на основе моделей

Автор: к.ф.-м.н. Кулямин Виктор. Тип - весенний полугодовой курс.

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

Технологии программирования. Компонентный подход

Автор: к.ф.-м.н. Кулямин Виктор Вячеславович. Тип - осенний полугодовой курс.

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

Формальная спецификация и верификация программ

Авторы: проф., д. ф.-м. н. Петренко Александр Константинович, к.ф.-м.н. Хорошилов Алексей Владимирович, к.ф.-м.н. Корныхин Евгений Валерьевич. Тип - осенний полугодовой курс.

Курс посвящен проблемам разработки ответственных программных систем. Особый упор делается на вопросы формализации функциональных свойств систем и методы аналитической верификации. Студенты знакомятся с современными подходами и инструментами для верификации программ на языках системного и объектно-ориентированного программирования.

Обеспечение качества и тестирование

Автор: Кулямин Виктор Вячеславович, к.ф.-м.н., доцент.

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

Компиляторные технологии и верификация программ

Автор: к.ф.-м.н., доцент, Гайсарян Сергей Суренович.

Дисциплина «Компиляторные технологии» изучает методы и алгоритмы оптимизации процедур и программ в целом (все процедуры и библиотеки, участвующие в сборке программы), а также применение указанных технологий для обнаружения уязвимостей и других дефектов программ как в исходном коде (на языке высокого уровня), так и в машинном коде современных компьютеров.

Научно-исследовательский семинар "Системное программирование"

Автор: проф., д. ф.-м. н. Петренко Александр Константинович. Тип - 3-й курс, 1-3 модуль.

НИС "Системное программирование" - это возможность получать образование в группе, которая ежегодно отбирается Институтом Системного Программирования РАН (ИСП РАН), начиная с 3-курса и до получения диплома бакалавра (с возможность дальнейшего обучения в магистратуре), и курируется новой базовой кафедрой ИСП РАН, организованной при департаменте ПИ  ФКН с 2015-2016 учебного года.

Научная визуализация.

Автор: Профессор Семенов Виталий Адольфович, д.ф.-м.н. Тип - Весенний полугодовой курс.

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

Алгоритмы и алгоритмические языки.

Автор: Белеванцев Андрей Андреевич, к.ф-м.н. Тип - Осенний полугодовой курс для студентов 1 курса.

Курс читается в качестве вводного программистского курса на факультетете ВМК МГУ и состоит из трех разделов: введение в теорию алгоритмов, язык программирования Си, и алгоритмы и структуры данных.

Статический анализ и машинно-независимая оптимизация программ.

Автор: Гайсарян Сергей Суренович, к.ф.-м.н., доцент. Тип - Полугодовой курс.

Машинно-независимые методы оптимизации позволяют существенно оптимизировать поток управления программы, а также исключить из неё все виды избыточных вычислений (общие подвыражения, инвариантные вычисления в цикле, частично-избыточные вычисления), большую часть мертвого и недостижимого кода. Выполнение перечисленных оптимизаций позволяет ускорить программу на один два порядка. Эвристические методы и алгоритмы выполнения перечисленных преобразований и составляют предмет курса.

Теоретическая криптография.

Автор: Варновский Н.П. Тип - Осенний годовой курс.

Основное назначение курса - изложение математических основ информационной безопасности. Акцент делается на доказуемой стойкости, в отличие от широко распространенного подхода, состоящего в разъяснении изощренных методов криптографической защиты. Курс не требует никаких предварительных знаний в области криптографии. Необходимо знакомство с основами моделей вычислений и теории сложности вычислений.

Теоретические основы численного анализа.

Автор: Шокуров А.В. Тип - Весенний полугодовой курс.

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

Решетки, алгоритмы, теория чисел и современная криптография.

Авторы: Д.ф.-м.н. Кузюрин Н.Н., к.ф.-м.н. Шокуров А.В. Тип - Весенний полугодовой курс.

Цель учебного курса - ознакомление студентов с важнейшими современными инструментами построения криптосистем, использующими методы теории чисел и алгебраической геометрии. Особое внимание уделяется методам, использующим решетки в евклидовом пространстве. Основой для использования такого подхода являются предположения о сложности некоторых  задач на решетках.

Архитектура ЭВМ и язык ассемблера

Авторы: Академик Иванников В.П., профессор, заведующий кафедрой СП ВМК МГУ, Падарян В.А., доцент кафедры СП ВМК МГУ. Тип - Весенний полугодовой курс для студентов 1-го курса.

Данный курс имеет своей целью изучение базовых принципов устройства современных ЭВМ, анализ качественных и количественных характеристик различных компонент ЭВМ, анализ влияния этих характеристик на работу прикладных программ. Помимо того, в рамках курса предполагается практическое освоение языка ассемблера архитектуры IA-32, изучение особенностей этой процессорной архитектуры, изучение взаимосвязей между архитектурой набора команд, механизмами реализации языка Си и системой программирования.

Базы данных

Автор: Профессор Кузнецов Сергей Дмитриевич, д.т.н. Тип - Осенний полугодовой курс для студентов 3-го курса.

Основы обработки текстов

Автор: Турдаков Денис Юрьевич, к.ф.-м.н. Тип - Осенний полугодовой курс.

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