• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2020/2021

Дополнительные главы функционального программирования

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус: Дисциплина общефакультетского пула
Когда читается: 1, 2 модуль
Язык: русский
Кредиты: 2

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

Аннотация

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

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

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

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

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

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

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

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

  • неблокирующий Домашнее задание №1
  • неблокирующий Домашнее задание №2
  • неблокирующий Контрольная работа №1
  • блокирующий Экзамен
    Экзамен проводится на платформе Zoom. Экзамен проводится в устной форме (опрос по материалам курса). По просьбе преподавателя студент должен быть готов выполнить некоторые задания в письменном виде, после чего сфотографировать и выслать на почту преподавателю. К экзамену необходимо подключиться согласно расписанию, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка платформы Zoom. Для участия в экзамене студент обязан: выбрать себе имя в Zoom совпадающее с его именем и фамилией, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещается выключать камеру. Ипользование конспектов или других справочных материалов допускается только с разрешения преподавателя. Кратковременным нарушением связи во время экзамена считается нарушение связи менее 5 минут. Долговременным нарушением связи во время экзамена считается нарушение 5 минут и более. При долговременном нарушении связи возможность продолжения студентом участие в экзамене определяется преподавателем. Процедура пересдачи подразумевает использование усложненных заданий.
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.125 * Домашнее задание №1 + 0.125 * Домашнее задание №2 + 0.125 * Контрольная работа №1 + 0.625 * Экзамен
Список литературы

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

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

  • 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