• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Функциональное программирование

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
3
Кредиты

Программа дисциплины

Аннотация

Целью освоения дисциплины «Функциональное программирование» является формирование у студентов теоретических знаний и практических навыков программирования на функциональных языках. Курс позволяет раскрыть основы функционального и логического программирования, структуры языков, его синтаксис и семантические конструкции, основные тенденции развития функционального программирования, в рамках проектирования современных автоматизированных систем, решений, выполненных при использовании функциональных и логических языков программирования. Также раскрываются основные принципы формирования проектных решений, для решения задач искусственного интеллекта. Дисциплина должна сформировать у студентов достаточные теоретические знания и практические навыки по изучению основ функционального программирования и построению интеллектуальных систем, анализу процессов внутри интеллектуальных систем, реализации требований в области систем принятия решений. Выработать у обучающихся навыки самостоятельного ориентирования в языках функционального программирования и в методах построения интеллектуальных систем с их помощью. Является дисциплиной по выбору.
Цель освоения дисциплины

Цель освоения дисциплины

  • формирование у студентов теоретических знаний и практических навыков программирования на функциональных языках
Планируемые результаты обучения

Планируемые результаты обучения

  • Знает модели вычислений, лежащей в основе функционального программирования, способов реализации этой модели. Использует иммутабельные структуры данных, рекурсию и сопоставление с образцом при реализации алгоритмов на функциональных языках. Использует типовые аннотации и классы типов для описания интерфейсов и обеспечения статического контроля
  • Знает общие свойства базовой системы типов функциональных языков и ее расширений полиморфными и рекурсивными типами. Эффективно выбирает ленивую или энергичную стратегию вычислений. Реализует основные задачи разработки прикладного программного обеспечения в функциональной парадигме.
  • Знает основные принципы командной работы в IT сфере. Производит совместную разработку проекта. Владеет программными средствами команднопроектной деятельности.
  • Знает преимущества и недостатки функциональной парадигмы программирования. Эффективно применяет функциональное программирвоание для решения прикладных задач. Программирует на языке Haskell.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Раздел 1. Основы функционального программирования: лямбда-исчисление и комбинаторная логика
  • Раздел 2. Язык программирования Haskell: синтаксис, семантика, стандартная библиотека
  • Раздел 3. Управление эффектами с помощью аппликативных функторов и монад
  • Раздел 4. Системы типов функциональных языков
Элементы контроля

Элементы контроля

  • неблокирующий Экхамен
  • неблокирующий активность
  • неблокирующий Домашнее задание
    Развернутый ответ на вопрос
Промежуточная аттестация

Промежуточная аттестация

  • 2025/2026 2nd module
    0.3 * Домашнее задание + 0.4 * Экхамен + 0.3 * активность
Список литературы

Список литературы

Рекомендуемая основная литература

  • 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

Рекомендуемая дополнительная литература

  • Кубенский, А. А.  Функциональное программирование : учебник и практикум для академического бакалавриата / А. А. Кубенский. — Москва : Издательство Юрайт, 2019. — 348 с. — (Высшее образование). — ISBN 978-5-9916-9242-7. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/433710 (дата обращения: 28.08.2023).

Авторы

  • Кузнецов Антон Михайлович