Бакалавриат
2024/2025
Функциональное программирование
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
5
Программа дисциплины
Аннотация
Дисциплина посвящена изучению возможностей языков программирования, которые облегчают создание надежных программ. Будут рассмотрены основные аспекты языков функционального программирования и библиотек, в том числе относящиеся к тестированию и формальным доказательствам.
Цель освоения дисциплины
- 1. Знакомство с основными понятиями функционального программирования. 2. Знакомство с основными возможностями языка функционального программирования с зависимыми типами Idris. 3. Знакомство с подходами к повышению качества программного обеспечения в функциональном программировании.
Планируемые результаты обучения
- Готовая к использованию на компьютере студента среда разработки программ на языке Idris.
- Знакомство с формализацией понятий предметной области как типов языка Idris
- Знакомство с основным способом обработки данных в языке Idris.
- Знакомство с обобщенным программированием
- Знакомство с типами стандартной библиотеки языка Idris
- Знакомство со способом задания свойств типа
- Знакомство с интерфейсами стандартной библиотеки языка Idris
- Знакомство с видами эффектов.
- Введение в зависимые типы
- Знакомство с возможностями по созданию тестов
- Знакомство с использованием Idris как системы формальной верификации
- Понимание мотивации выбора инструментов разработки для решения конкретной задачи
Содержание учебной дисциплины
- Введение
- Инструменты разработчика Idris
- Алгебраические типы данных
- Полиморфизм
- Стандартные типы данных
- Интерфейсы
- Стандартные интерфейсы
- Эффекты
- Зависимые типы
- Доказательства
- Тестирование
- Функции
Промежуточная аттестация
- 2024/2025 4th moduleFinal = 0.125*ДЗ_3+0,125*ДЗ_4+0,125*ДЗ_5+0,125*ДЗ_7+0,125*ДЗ_9+0.125*КР_11+0.125*КР_12+0,125*Экз