Ви переглядаєте архівну версію офіційного сайту НУЛП (2005-2020р.р.). Актуальна версія: https://lpnu.ua

Функційне програмування

Спеціальність: Комп'ютерні науки
Код дисципліни: 6.122.04.E.154
Кількість кредитів: 4
Кафедра: Системи штучного інтелекту
Лектор: Осипов М.
Семестр: 3 семестр
Форма навчання: денна
Результати навчання:
знати:
? методи проектування та розробки програмного забезпечення;
? підходи у оцінці зусиль на реалізацію розробки програмного забезпечення;
вміти:
? проектувати архітектуру та дизайн програмного забезпечення з використанням засобів
візуального моделювання та документування;
? володіти логікою функціонального підходу;
? оцінювати зусилля на розробку програмного забезпечення та візуально представити
результати оцінки;
Необхідні обов'язкові попередні та супутні навчальні дисципліни:
Алгоритмізація і програмування
Дискрета математика
Короткий зміст навчальної програми:
Імперативна парадигма програмування. Функційна парадигма програмування. Модель підстановки. REPL, головні предикати, визначення функції: Інтерактивна консоль REPL. Головні предикати Scala. Визначення функції. Чисті функції. Побічні ефекти. Структури даних Scala: Логічна та фізична структура даних. Внутрішнє подання символів, чисел, функцій. Розподіл областей даних. Точкова пара. Побудова незмінних списків. Використання рекурсії у функціональному програмуванні: Функції вищого порядку. Об’єктно-орієнтовна Scala: Системи об’єктів. Наслідування. Поліморфізм та варіантність типів Scala. Коваріантність, контрваріантність та інваріантність типів. Поліморфні типи в ієрархії класів. Pattern-matching та розпізнавання образів: Умови зіставлення. Pattern-matching та розпізнавання образів. Використання змінних для зіставлення. Розпізнавання структур. Неявні конструкції Scala: Implicit параметри, функції розширення та декомпозиції. Методи та системи програмування: Методи та стилі програмування. Продукційне програмування: Використання продукційного програмування при використанні експертних систем. Інтерфейс користувача. Машина логічного виводу. Розробка інтерпретатора довільної простої мови: Метапрограмування. Множина виразів як програма. Пошук у глибину. Інтерфейс. Побудова дерева внутрішнього подання
Рекомендована література:
1. Programing in Scala 3rd ed, Martin Odersky
2. Scala for the Impatient 2nd ed, Cay Horstmann
3. Programming Scala, 2nd ed, Dean Wampler
4. Functional Programming in Scala, Paul Chiusano
Методи і критерії оцінювання:
50 - лабораторні роботи
50 - екзамен