Магистратура
2023/2024



Функциональное программирование
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный (Системное программирование)
Направление:
09.04.04. Программная инженерия
Где читается:
Факультет компьютерных наук
Когда читается:
2-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Демаков Алексей Васильевич
Прогр. обучения:
Системное программирование
Язык:
русский
Кредиты:
6
Контактные часы:
40
Программа дисциплины
Аннотация
В рамках курса будут исследованы возможности языков программирования,которые облегчают создание надежных программ. Будут рассмотрены основные аспекты языка функционального программирования Idris и его библиотек,в том числе относящиеся к тестированию и формальным доказательствам. Часть рассмотренных тем применима и к языку функционального программирования Haskell.
Цель освоения дисциплины
- Знакомство с основными понятиями функционального программирования
- Знакомство с основными возможностями языка функционального программирования с зависимыми типами Idris
- Знакомство с подходами к повышению качества программного обеспечения в функциональном программировании
Планируемые результаты обучения
- Готовая к использованию на компьютере студента среда разработки программ на языке Idris.
- Понимание мотивации выбора инструментов разработки для решения конкретной задачи.
- Знакомство с формализацией понятий предметной области как типов языка Idris
- Знакомство с основным способом обработки данных в языке Idris.
- Знакомство с обобщенным программированием
- Знакомство с типами стандартной библиотеки языка Idris
- Знакомство со способом задания свойств типа
- Знакомство с интерфейсами стандартной библиотеки языка Idris
- Знакомство с видами эффектов.
- Введение в зависимые типы
- Знакомство с возможностями по созданию тестов
- Знакомство с использованием Idris как системы формальной верификации
Содержание учебной дисциплины
- Введение в функциональное программирование
- Инструменты разработчика Idris
- Алгебраические типы данных
- Функции
- Полиморфизм
- Стандартные типы данных
- Интерфейсы
- Стандартные интерфейсы
- Эффекты
- Зависимые типы
- Тестирование
- Доказательства
Промежуточная аттестация
- 2023/2024 учебный год 2 модульFinal = 0.1*ДЗ_3+0.1*ДЗ_4+0.1*ДЗ_5+0.1*ДЗ_7+0.1*ДЗ_9+0.1*ДЗ_10 +0.2*КР_11+0.3*КР_12+0,15*Экз