Курс позволяет раскрыть основы функционального и логического программирования, структуры языков, его синтаксис и семантические конструкции, основные тенденции развития функционального программирования в рамках проектирования современных автоматизированных систем, решений, выполненных при использовании функциональных и логических языков программирования. Также раскрываются основные принципы формирования проектных решений для решения задач искусственного интеллекта. Для освоения дисциплины студентам необходимы знания основ программирования и алгебры. Курс реализуется с использованием онлайн-курса «Функциональное программирование на языке Haskell» на платформе Stepik.
Цель освоения дисциплины
Формирование у студентов теоретических знаний и практических навыков программирования на функциональных языках
Планируемые результаты обучения
Знает основы функционального программирования.
Знает теоретические основы функционального программирования (лямбда-исчисление, начала теории категорий и проч.).
Студент решает задачи на программирование на языке Haskell.
Владеть возможностями языка Kotlin для программирования в функциональном стиле.
Понимать устройство строк в Kotlin. Уметь работать со строками.
Знает базовые (объектно- ориентированные) возможности языка Scala. владеет понятием “синтаксического сахара” в языке программирования и примеры его использования в Scala. Знает функциональные возможности Scala.
Знает основы программирования на языках программирования Scala и Kotlin. Понимает теоретические концепции и корректно использовать парадигмы данных языков.
Знает особенности совместного использования Scala и Java. Владеет навыком программирования на системе типов Scala.
Знает основные алгоритмы применяемые в области типов в языках программирования. Реализует алгоритмы на языке Haskell. Владеет навыками реализации алгоритмов вывода типов для различных систем.
Знает ключевые особенности языка Kotlin
Понимание базовых принципов функционального программирования, умение применять их на практике с использованием языка программирования Java.
Умеет использовать лямбда-исчисление как язык программирования, программировать на языке Haskell, кодировать рекурсивные функции на Haskell, использовать аппликативные функторы и свертки, программировать с помощью стандартных монад, производить оптимизации с помощью правил переписывания в GHC.
Знает современные идиомы, инструменты и библиотеки, используемые для разработки программного обеспечения на языке Haskell.
Head First. Программирование для Android на Kotlin. 3-е изд. - 978-5-4461-2016-1 - Гриффитс Дэвид, Гриффитс Дон - 2023 - Санкт-Петербург: Питер - https://ibooks.ru/products/391722 - 391722 - iBOOKS
Kotlin : программирование для профессионалов, Скин, Дж., 2023
Kotlin. Паттерны проектирования и лучшие практики, 3-е изд. - 978-601-09-9694-6 - Сошин Алексей - 2025 - Астана: Спринт Бук - https://ibooks.ru/products/399814 - 399814 - iBOOKS
Кубенский, А. А. Функциональное программирование : учебник и практикум для вузов / А. А. Кубенский. — Москва : Издательство Юрайт, 2024. — 348 с. — (Высшее образование). — ISBN 978-5-9916-9242-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/536996 (дата обращения: 04.07.2025).
Курт, У. Программируй на Haskell : руководство / У. Курт , перевод с английского Я. О. Касюлевича. — Москва : ДМК Пресс, 2019. — 648 с. — ISBN 978-5-97060-694-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/123706 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Мартишин С.А., Симонов В.Л., Храпченко М.В. - Базы данных: Работа с распределенными базами данных и файловыми системами на примере MongoDB и HDFS с использованием Node.js, Express.js, Apache Spark и Scala - 978-5-16-019845-3 - ИНФРА-М - 2024 - https://znanium.ru/catalog/product/2139860 - 2139860 - ZNANIUM
Петросян, Л. Э. Разработка мобильных приложений на Kotlin : учебное пособие / Л. Э. Петросян, Н. А. Приходько. — Москва : РТУ МИРЭА, 2024. — 101 с. — ISBN 978-5-7339-2215-7. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/421091 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Петросян, Л. Э. Разработка мобильных приложений на языке Kotlin : учебное пособие для вузов / Л. Э. Петросян, К. В. Гусев. — 2-е изд., стер. — Санкт-Петербург : Лань, 2025. — 104 с. — ISBN 978-5-507-52328-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/448577 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Программирование на Kotlin для Android: Пер. с англ. - 978-5-9775-0944-2 - Шалин Павел, руковод. проекта - 2024 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/products/396448 - 396448 - iBOOKS
Функциональное программирование. Теоретические и практические основы для разных языков : учебник для вузов / под общей редакцией А. Ю. Анисимова, А. Е. Трубина, Ф. А. Мастяева. — Москва : Издательство Юрайт, 2025. — 135 с. — (Высшее образование). — ISBN 978-5-534-20518-3. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/558300 (дата обращения: 14.01.2026).
Рекомендуемая дополнительная литература
Kotlin в действии, Жемеров, Д. Б., 2018
Scala для нетерпеливых, Хорстманн, К. С., 2017
Душкин, Р. В. 14 занимательных эссе о языке Haskell и функциональном программировании / Р. В. Душкин. — Москва : ДМК Пресс, 2011. — 288 с. — ISBN 978-5-94074-691-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1275 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Душкин, Р. В. Практика работы на языке Haskell / Р. В. Душкин. — Москва : ДМК Пресс, 2010. — 288 с. — ISBN 978-5-94074-588-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1263 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Конкурентное программирование на Scala : освойте искусство создания современных сложных, масштабируемых и конкурентных приложений на языке Scala, Прокопец, А., 2018
Основы функционального программирования : учебник / А. Е. Трубин, А. Ю. Анисимов, Ф. А. Мастяев [и др.] ; под общ. ред. А. Е. Трубина, А. Ю. Анисимова, Ф. А. Мастяева. — Москва : КноРус, 2024. — 222 с. — ISBN 978-5-406-12302-7. — URL: https://book.ru/book/952125 (дата обращения: 09.12.2025). — Текст : электронный.
Instructor
Moskvin, Denis
Программа дисциплины
Аннотация
Цель освоения дисциплины
Планируемые результаты обучения
Содержание учебной дисциплины
Элементы контроля
Промежуточная аттестация
Список литературы
Рекомендуемая основная литература
Рекомендуемая дополнительная литература
Авторы