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

Языки программирования (Котлин и Скала, функциональное программирование, Хаскел)

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 3, 4 модуль

Преподаватель

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

Аннотация

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

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

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

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

  • Знает основы функционального программирования.
  • Знает теоретические основы функционального программирования (лямбда-исчисление, начала теории категорий и проч.).
  • Студент решает задачи на программирование на языке Haskell.
  • Владеть возможностями языка Kotlin для программирования в функциональном стиле.
  • Понимать устройство строк в Kotlin. Уметь работать со строками.
  • Знает базовые (объектно- ориентированные) возможности языка Scala. владеет понятием “синтаксического сахара” в языке программирования и примеры его использования в Scala. Знает функциональные возможности Scala.
  • Знает основы программирования на языках программирования Scala и Kotlin. Понимает теоретические концепции и корректно использовать парадигмы данных языков.
  • Знает особенности совместного использования Scala и Java. Владеет навыком программирования на системе типов Scala.
  • Знает основные алгоритмы применяемые в области типов в языках программирования. Реализует алгоритмы на языке Haskell. Владеет навыками реализации алгоритмов вывода типов для различных систем.
  • Знает ключевые особенности языка Kotlin
  • Понимание базовых принципов функционального программирования, умение применять их на практике с использованием языка программирования Java.
  • Умеет использовать лямбда-исчисление как язык программирования, программировать на языке Haskell, кодировать рекурсивные функции на Haskell, использовать аппликативные функторы и свертки, программировать с помощью стандартных монад, производить оптимизации с помощью правил переписывания в GHC.
  • Знает современные идиомы, инструменты и библиотеки, используемые для разработки программного обеспечения на языке Haskell.
Содержание учебной дисциплины

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

  • Раздел 1
  • Раздел 2
  • Раздел 3
  • Раздел 4
  • Раздел 5
Элементы контроля

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

  • неблокирующий Домашнее задание №1
  • неблокирующий Домашнее задание №2
  • неблокирующий Домашнее задание №3
  • неблокирующий Домашнее задание №4
  • блокирующий In-class assignment
Промежуточная аттестация

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

  • 2025/2026 4th module
    0.4 * In-class assignment + 0.15 * Домашнее задание №1 + 0.15 * Домашнее задание №2 + 0.15 * Домашнее задание №3 + 0.15 * Домашнее задание №4
Список литературы

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

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

  • Head First. Программирование для Android на Kotlin. 3-е изд. - 978-5-4461-2016-1 - Гриффитс Дэвид, Гриффитс Дон - 2023 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/391722 - 391722 - iBOOKS
  • Kotlin : программирование для профессионалов, Скин, Дж., 2023
  • Kotlin. Паттерны проектирования и лучшие практики, 3-е изд. - 978-601-09-9694-6 - Сошин Алексей - 2025 - Астана: Спринт Бук - https://ibooks.ru/bookshelf/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/bookshelf/396448 - 396448 - iBOOKS
  • Функциональное программирование. Теоретические и практические основы для разных языков : учебник для вузов / под общей редакцией А. Ю. Анисимова, А. Е. Трубина, Ф. А. Мастяева. — Москва : Издательство Юрайт, 2025. — 135 с. — (Высшее образование). — ISBN 978-5-534-20518-3. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/558300 (дата обращения: 04.07.2025).

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

  • 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 (дата обращения: 04.07.2025). — Текст : электронный.

Авторы

  • Оленчук Ольга Геннадьевна
  • Архимандритов Игорь Борисович