Учебные курсы
Спецсеминар «Корректность программ»
Спецсеминар «Корректность программ» посвящён методам построения сложных программных комплексов.
Верификация программного обеспечения, часть 1
Курс представляет собой введение в методы верификации программного обеспечения. Цель курса - познакомить с предметом верификации ПО, представить широкую палитру существующих методов и подходов, а также осветить преимущества и ограничения, присущие методам верификации.
Компьютерные сети и информационная безопасность
Главная цель курса – дать теоретическое представление о современных сетевых технологиях и основах сетевой информационной безопасности. Основу курса составляет лекционный материал и практикумы, на которых студентам демонстрируются принципы и особенности работы отдельных сетевых протоколов и сервисов. Помимо этого, студентам выдаются практические задания для получения и закрепления навыков в применении наиболее интересных сетевых технологий.
Конструирование ядра операционной системы
Цель курса – знакомство на практике с основными принципами конструирования ядра операционной системы и сопутствующих понятий (планировщик, виртуальная память, прерывания, механизмы синхронизации, системные вызовы, файловые системы и др.).
Курс знакомит слушателей с основными проблемами проверки качества сложных программных систем и современными подходами к их решению на основе тестирования. Рассматриваются классические техники построения тестов на основе разбиения ситуаций на классы эквивалентности, а также техники, использующие конечные автоматы и комбинаторные схемы. Изучаются также интегрированные подходы, более пригодные для систем реальной сложности.
Курс знакомит слушателей с технологическими проблемами разработки крупномасштабных программных систем, отличающими ее от разработки небольших программ, а также с методами решения этих проблем. Кроме того, рассказывается о современных способах организации разработки таких систем на основе компонентных технологий на примере Web-приложений с использованием технологий J2EE и .NET.
Курс посвящен проблемам разработки ответственных программных систем с особым упором на вопросы формализации функциональных свойств систем и методы аналитической верификации. Студенты знакомятся с современными подходами и инструментами для верификации программ на языках системного и объектно-ориентированного программирования.
Курс посвящён поиску эффективных решений алгоритмически трудных задач.
Теоретические основы численного анализа
Цель курса – формирование знаний и навыков работы с основными понятиями и идеями теоретического численного анализа, а также подготовка к самостоятельной работе в этой области.
Сложность комбинаторных алгоритмов
Вводный курс в теорию сложности.
Современные компьютеры и сети передачи данных
Курс посвящён изучению особенностей архитектур современных компьютеров и систем, а также современного состояния и тенденций стандартизации сетевых протоколов.
Анализ кода и информационная безопасность
Курс посвящен главным темам в области анализа кода, в том числе статическому анализу с целью поиска ошибок, фаззингу и символьному выполнению, анализу бинарного кода, статическому дизассемблированию и др. Изучаются также вопросы сетевой безопасности и технологии разработки безопасного ПО. Курс состоит из еженедельных лекций и нескольких практических занятий.
Верификация программного обеспечения, часть 2
Обеспечение качества и тестирование
Курс знакомит слушателей с основными проблемами проверки качества сложных программных систем и современными подходами к их решению на основе тестирования. Рассматриваются как классические техники построения тестов на основе разбиения ситуаций на классы эквивалентности, а также использующие конечные автоматы и комбинаторные схемы, так и более пригодные для систем реальной сложности интегрированные подходы.
Конструирование оптимизирующих компиляторов
Дисциплина «Конструирование оптимизирующих компиляторов» изучает методы и алгоритмы оптимизации процедур и программ в целом (все процедуры и библиотеки, участвующие в сборке программы), а также применение указанных технологий для обнаружения уязвимостей и других дефектов программ как в исходном коде (на языке высокого уровня), так и в машинном коде современных компьютеров.
Научно-исследовательский семинар "Системное программирование"
НИС "Системное программирование" предназначен для студентов ВШЭ (бакалавров 3-4 курсов и магистров 1-2 курсов). Отбор студентов производится с 3 курса и до получения диплома бакалавра (с возможностью дальнейшего обучения в магистратуре). Семинар курирует базовая кафедра ИСП РАН в ВШЭ.
Цель курса – освоение студентами фундаментальных знаний в области визуализации и в связанных с ней разделах компьютерной графики и вычислительной геометрии. Особое внимание в курсе уделяется базовым принципам визуализации, особенностям постановок задач, возникающих в разных предметных областях, а также важнейшим вычислительным методам и алгоритмам, применяемым при их решении.
Алгоритмы и алгоритмические языки
Курс читается в качестве вводного программистского курса на факультетете ВМК МГУ и состоит из трех разделов: введение в теорию алгоритмов, язык программирования Си, и алгоритмы и структуры данных.
Основное назначение курса – изложение математических основ информационной безопасности. Акцент делается на доказуемой стойкости, в отличие от широко распространённого подхода, состоящего в разъяснении изощрённых методов криптографической защиты. Курс не требует никаких предварительных знаний в области криптографии. Необходимо знакомство с основами моделей вычислений и теории сложности вычислений.
Теоретические основы численного анализа.
Целью курса является ознакомление студентов с математическим аппаратом аппроксимации функций. Ознакомившись с этим курсом, студенты станут лучше понимать возможности и ограничения при программировании функций на компьютерах. Предполагается знание основных элементов функционального анализа.
Решётки, алгоритмы, теория чисел и современная криптография.
Цель учебного курса – ознакомление студентов с важнейшими современными инструментами построения криптосистем, использующими методы теории чисел и алгебраической геометрии. Особое внимание уделяется методам, использующим решётки в евклидовом пространстве. Основой для использования такого подхода являются предположения о сложности некоторых задач на решётках.
Архитектура ЭВМ и язык ассемблера
Данный курс имеет своей целью изучение базовых принципов устройства современных ЭВМ, анализ качественных и количественных характеристик различных компонент ЭВМ, анализ влияния этих характеристик на работу прикладных программ. Помимо того, в рамках курса предполагается практическое освоение языка ассемблера архитектуры IA-32, изучение особенностей этой процессорной архитектуры, изучение взаимосвязей между архитектурой набора команд, механизмами реализации языка Си и системой программирования.
Курс знакомит слушателей с основными проблемами компьютерной обработки текстов и современными подходами к их решению. Рассматриваются как фундаментальные понятия и идеи, так и современные исследования в данной области. Особое внимание уделяется применению методов машинного обучения, которые активно развиваются в настоящее время и показывают лучшие результаты.