Парадигми програмування

Освітня програма: Інформатика (перший (бакалаврський) рівень вищої освіти)

Структурний підрозділ: Факультет комп'ютерних наук та кібернетики

Назва дисципліни
Парадигми програмування
Код дисципліни
ВК.3.01
Тип модуля
Вибіркова дисципліна для ОП
Цикл вищої освіти
Перший
Рік навчання
2023/2024
Семестр / Триместр
5 Семестр
Кількість кредитів ЕСТS
3
Результати навчання
ПРН18.3. Знати математичний апарат та принципи програмування та вміти застосовувати їх у створенні програмних систем. ПРН19.3. Знати фази та ітерації життєвого циклу програмних систем.
Форма навчання
Попередні умови та додаткові вимоги
1. Знати дискретну математику, математичну логіку, теорію алгоритмів та основи програмування в об’ємі стандартних університетських курсів. 2. Вміти застосовувати знання з вказаних вище дисциплін до розв’язання задач. 3. Володіти елементарними навичками використання логіко-математичної символіки та основами програмування.
Зміст навчальної дисципліни
Дисципліна розглядає парадигми програмування. Найбільша увага приділяється функціональному програмуванню і його елементам, доступним у мовах імперативного програмування, та багатопотоковому програмуванню. Отримані протягом вивчення теоретичні основи функціонального програмування дозволять краще зрозуміти елементи функціонального програмування, реалізовані в сучасних мовах імперативного програмування. Набуті знання з багатопотокового програмування дозволять будувати більш ефективні програми та бібліотеки, призначені для виконання на сучасних процесорах та/або в декілька потоків. Під час опанування дисципліни студенти мають поглибити знання та практичні навички з використання сучасних засобів мови С++: елементів функціонального програмування, бібліотек для побудови багатопотокових програм. Викладається в 5 семестрі 3 курсу в обсязі – 90 год. (3 кредити ECTS), зокрема: лекції –28 год., консультації – 2 год., самостійна робота – 60 год.
Рекомендована та необхідна література
Основні: 1. Field A. Functional programming / A. Field, P. Harrison. – Addison-Wesley, 1988. 2. Grimm R. Concurrency with modern C++ / R. Grimm – URL:http://www.freepdfbook.com/concurrency-with-modern-c-by-rainer-grimm 3. Williams A. C++ concurrency in action. – Manning Publications Co, 2019. URL:https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition 4. Simpson K. You don't know JS: Async & Performance. – O`Reilly, 2015. 5. Practical Common Lisp. – URL:https://gigamonkeys.com/book/ 6. Murray D.W. Introduction to programming in Lisp – Hilary, 1991. 7. Domkin V. Programming algorithms in Lisp: Writing Efficient Programs with Examples in ANSI Common Lisp. – Apress Media, 2021. ..
Заплановані освітні заходи та методи викладання
Лекції, консультації, самостійна робота
Методи та критерії оцінювання
семестрове оцінювання: 1. Програмний проєкт 1: РН1.1, РН2.1 – 20 балів/10 балів. 2. Програмний проєкт 2: РН1.1, РН2.1 – 20 балів/10 балів. 3. Програмний проєкт 3: РН1.2, РН2.2 – 20 балів/10 балів. 4. Програмний проєкт 4: РН1.2, РН2.2 – 20 балів/10 балів. 5. Контрольна робота: РН1.1, РН1.2, РН2.1, РН2.2 – 20 балів/10 балів.
Мова викладання
Українська

Викладачі

Ця дисципліна викладаеться наступними викладачами

Кафедри

Наступні кафедри задіяні у викладанні наведеної дисципліни