Бакалавриат
2024/2025
Функциональное программирование
Статус:
Курс по выбору (Программная инженерия (очно-заочное обучение))
Направление:
09.03.04. Программная инженерия
Когда читается:
2-й курс, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Маслова Екатерина Александровна
Язык:
русский
Кредиты:
3
Программа дисциплины
Аннотация
Курс позволяет раскрыть основы функционального и логического программирования, структуры языков, его синтаксис и семантические конструкции, основные тенденции развития функционального программирования в рамках проектирования современных автоматизированных систем, решений, выполненных при использовании функциональных и логических языков программирования. Также раскрываются основные принципы формирования проектных решений для решения задач искусственного интеллекта. Для освоения дисциплины студентам необходимы знания основ программирования и алгебры. Курс реализуется с использованием онлайн-курса «Функциональное программирование на языке Haskell» на платформе Stepik.
Цель освоения дисциплины
- Формирование у студентов теоретических знаний и практических навыков программирования на функциональных языках
Планируемые результаты обучения
- Знает понятия и теоретические основы лямбда-исчисления, комбинаторов, чисел Черча, систем типов, монад.
- Умеет использовать лямбда-исчисление как язык программирования, программировать на языке Haskell, кодировать рекурсивные функции на Haskell, использовать аппликативные функторы и свертки, программировать с помощью стандартных монад, производить оптимизации с помощью правил переписывания в GHC.
- Имеет навыки применения различных методов программирования в функциональном стиле и разработки эффективных программ на языке Haskell.
Содержание учебной дисциплины
- Раздел 1. Основы функционального программирования: лямбда-исчисление и комбинаторная логика
- Раздел 2. Язык программирования Haskell: синтаксис, семантика, стандартная библиотека
- Раздел 3. Управление эффектами с помощью аппликативных функторов и монад
- Раздел 4. Системы типов функциональных языков
Промежуточная аттестация
- 2024/2025 2nd module0.2 * Домашнее задание + 0.2 * Экхамен + 0.6 * активность
Список литературы
Рекомендуемая основная литература
- Lipovača, M. (2011). Learn You a Haskell for Great Good! : A Beginner’s Guide. San Francisco, Calif: No Starch Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=440054
- Курт, У. Программируй на Haskell : руководство / У. Курт , перевод с английского Я. О. Касюлевича. — Москва : ДМК Пресс, 2019. — 648 с. — ISBN 978-5-97060-694-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/123706 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Hutton, G. (2007). Programming in Haskell. Cambridge, UK: Cambridge University Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=206716
- Кубенский, А. А. Функциональное программирование : учебник и практикум для вузов / А. А. Кубенский. — Москва : Издательство Юрайт, 2021. — 348 с. — (Высшее образование). — ISBN 978-5-9916-9242-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/469863 (дата обращения: 27.08.2024).