Лектор: профессор В.А. Захаров
Цель учебного курса – ознакомить студентов, специализирующихся в области программирования, с:
- основными алгоритмическими задачами, возникающими при проектировании распределенных программ (сетевых протоколов, встроенных систем, многопроцессорных вычислительных систем, параллельных программ),
 - наиболее распространенными алгоритмами решения этих задач,
 - математическими моделями и методами, используемыми для анализа распределенных алгоритмов.
 
Основное внимание уделяется вопросам доказательства корректности проектируемых алгоритмов и оценкам их эффективности.
Задачами данного курса являются:
- освоение студентами базовых знаний (понятий, концепций, методов и моделей) в области построения и анализа распределенных алгоритмов;
 - приобретение теоретических знаний и практических умений и навыков решения задач построения и анализа распределенных алгоритмов;
 - оказание консультаций и помощи студентам в проведении собственных теоретических исследований в указанной выше области программирования.
 
Содержание дисциплины:
- Математическая модель распределенных алгоритмов.
 - Коммуникационные протоколы.
 - Алгоритмы маршрутизации.
 - Волновые алгоритмы.
 - Алгоритмы избрание лидера.
 - Алгоритмы обнаружение завершения вычислений.
 - Алгоритмы сохранение моментального состояния.
 - Обеспечение отказоустойчивости.
 - Обнаружение неисправностей в распределенных системах.
 - Стабилизирующиеся алгоритмы.
 
Литература:
- Тель Ж. Введение в распределенные алгоритмы. М. Изд-во МЦНМО, 2009.
 - N.A. Lynch. Distributed Algorithms. Morgan Kaufmann Series in Data Management Systems. 1996.