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