Курс позволяет раскрыть основы функционального и логического программирования, структуры языков, его синтаксис и семантические конструкции, основные тенденции развития функционального программирования в рамках проектирования современных автоматизированных систем, решений, выполненных при использовании функциональных и логических языков программирования. Также раскрываются основные принципы формирования проектных решений для решения задач искусственного интеллекта. Для освоения дисциплины студентам необходимы знания основ программирования и алгебры. Курс реализуется с использованием онлайн-курса «Функциональное программирование на языке Haskell» на платформе Stepik.
Цель освоения дисциплины
Формирование у студентов теоретических знаний и практических навыков программирования на функциональных языках
Планируемые результаты обучения
Знает понятия и теоретические основы лямбда-исчисления, комбинаторов, чисел Черча, систем типов, монад.
Умеет использовать лямбда-исчисление как язык программирования, программировать на языке Haskell, кодировать рекурсивные функции на Haskell, использовать аппликативные функторы и свертки, программировать с помощью стандартных монад, производить оптимизации с помощью правил переписывания в GHC.
Имеет навыки применения различных методов программирования в функциональном стиле и разработки эффективных программ на языке Haskell.
Содержание учебной дисциплины
Раздел 1. Основы функционального программирования: лямбда-исчисление и комбинаторная логика
Раздел 2. Язык программирования Haskell: синтаксис, семантика, стандартная библиотека
Раздел 3. Управление эффектами с помощью аппликативных функторов и монад
Раздел 4. Системы типов функциональных языков
Элементы контроля
Домашние задания на платформе Stepik
Домашние задания представляет собой приватный курс на платформе Stepik. Решения задач обучающиеся представляют в виде кода на языке Haskell. Сроки предоставления решений составляют неделю с момента выдачи заданий.
Экзамен
Теоретическая часть формируется по одному вопросу из первой (теория) и второй (язык Haskell) части перечня вопросов к экзамену. На подготовку ответа выделяется 2,5 часа.
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 - Курт У. - Издательство "ДМК Пресс" - 978-5-97060-694-0 - 2019 - русский - https://e.lanbook.com/book/123706 - ЛАНЬ - 123706
Рекомендуемая дополнительная литература
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 (дата обращения: 04.07.2025).
Instructors
Доморацкий Эридан Алексеевич
Moskvin, Denis
Программа дисциплины
Аннотация
Цель освоения дисциплины
Планируемые результаты обучения
Содержание учебной дисциплины
Элементы контроля
Промежуточная аттестация
Список литературы
Рекомендуемая основная литература
Рекомендуемая дополнительная литература
Авторы