We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Functional Programming

2020/2021
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Delivered at:
Department of Informatics
Course type:
Compulsory course
When:
2 year, 1, 2 module

Instructors


Жаворонков Эдгар Андреевич

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

Аннотация

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

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

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

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

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

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

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

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

  • неблокирующий Домашнее задание №1
  • неблокирующий Домашнее задание №2
  • неблокирующий Контрольная работа №1
  • блокирующий Экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.16 * Домашнее задание №1 + 0.16 * Домашнее задание №2 + 0.18 * Контрольная работа №1 + 0.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

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

  • Кубенский А. А. - ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ. Учебник и практикум для академического бакалавриата - М.:Издательство Юрайт - 2019 - 348с. - ISBN: 978-5-9916-9242-7 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/funkcionalnoe-programmirovanie-433710