Теорія категорій для програмістів (кн дввс)
Тип: На вибір студента
Кафедра: інформаційних систем
Навчальний план
| Семестр | Кредити | Звітність |
| 8 | 3.5 | Залік |
Лекції
| Семестр | К-сть годин | Лектор | Група(и) |
| 8 | 28 | професор, ст. наук. співробітник Жолткевич Г. М. | ПМі-41, ПМі-42, ПМі-43, ПМі-44, ПМі-45, ПМі-46 |
Лабораторні
| Семестр | К-сть годин | Група | Викладач(і) |
| 8 | 28 | ПМі-41 | професор, ст. наук. співробітник Жолткевич Г. М. |
| ПМі-42 | професор, ст. наук. співробітник Жолткевич Г. М. | ||
| ПМі-43 | професор, ст. наук. співробітник Жолткевич Г. М. | ||
| ПМі-44 | професор, ст. наук. співробітник Жолткевич Г. М. | ||
| ПМі-45 | професор, ст. наук. співробітник Жолткевич Г. М. | ||
| ПМі-46 | професор, ст. наук. співробітник Жолткевич Г. М. |
Опис курсу
Дисципліна «Теорія категорій для програмістів» присвячена вивченню фундаментальних математичних структур, які складають основу сучасної комп’ютерної науки та теорії типів. Курс розкриває поняття категорії як математичної структури, що складається з об’єктів та морфізмів (стрілок) із визначеною операцією композиції та тотожними морфізмами.
Основна мета курсу — продемонструвати зв’язок між абстрактною математикою та практичним програмуванням. Зокрема, розглядається, як специфікації типів у мовах програмування (наприклад, Python) стають об’єктами категорії, а «чисті» функції одного аргументу — її морфізмами. Такий підхід дозволяє програмістам використовувати математичну суворість для моделювання складних систем.
Програма дисципліни охоплює наступні ключові аспекти:
- Основи теорії: визначення категорій (малих, локально малих), вивчення прикладів категорій множин, препорядків та орієнтованих графів.
- Класифікація морфізмів: вивчення властивостей ізоморфізмів, мономорфізмів та епіморфізмів, що дозволяє глибше зрозуміти структуру зв’язків між об’єктами.
- Функтори та натуральні перетворення: аналіз відображень між категоріями (коваріантні та контраваріантні функтори Hom) та способів трансформації самих функторів.
- Універсальні конструкції: розгляд ініціальних та термінальних об’єктів, побудова добутків та ко-добутків (сум), а також вивчення експоненціалів, що веде до поняття декартово замкнених категорій.
- Фундаментальні результати: вивчення Леми Йонеди, яка є потужним інструментом для представлення категорій та вирішення складних задач через аналіз функторів.
Курс спрямований на формування у розробників високого рівня абстрактного мислення, що дозволяє створювати більш надійне та модульне програмне забезпечення, спираючись на такі поняття як кома-категорії, слайс-категорії та діаграми.
Рекомендована література
Основна література:
- Milewski B. Category Theory for Programmers. 2023. https://ai.dmi.unibas.ch/research/reading_group/milewski-2023-01-30.pdf
- Awodey S. Category Theory. 2nd edition. Oxford Logic Guides, 2010. http://files.farka.eu/pub/Awodey_S._Category_Theory(en)(305s).pdf
Додаткова література:
- Mac Lane S. Category Theory for Working Mathematicians. 2nd edition. Springer; 2013.
- Pierce B. C. Basic Category Theory for Computer Scientists. 1991.
- Fong B., Spivak D.I. An Invitation to Applied Category Theory. Cambridge University Press, 2019.