Tantárgy azonosító adatok
1. A tárgy címe Típuselmélet és funkcionális programozás
2. A tárgy angol címe Type Theory and Functional Programming
3. Heti óraszámok (ea + gy + lab) és a félévvégi követelmény típusa 2 + 1 + 0 v Kredit 4
4. Ajánlott/kötelező előtanulmányi rend
vagy Tantárgy kód 1 Rövid cím 1 Tantárgy kód 2 Rövid cím 2 Tantárgy kód 3 Rövid cím 3
4.1
4.2
4.3
5. Kizáró tantárgyak
6. A tantárgy felelős tanszéke Algebra és Geometria Tanszék
7. A tantárgy felelős oktatója Dr. Molnár Zoltán Gábor beosztása egyetemi adjunktus
Akkreditációs adatok
8. Akkreditációra benyújtás időpontja 2025.06.21. Akkreditációs bizottság döntési időpontja 2025.07.01.
Tematika
9. A tantárgy az alábbi témakörök ismeretére épít
Javasolt ismeretek: 1. valamilyen legalább polimorf típusrendszert, függvénytípust vagy pattern matchinget használó programnyelv alapszintű ismerete (pl.: C++, Python, Type/JavaScript, Wolfram nyelv), 2. lineáris algebra elméleti háttere alapszinten.
10. A tantárgy szerepe a képzés céljának megvalósításában (szak, kötelező, kötelezően választható, szabadon választható)
Szabadon választható tantárgy
11. A tárgy részletes tematikája

1. A típuselmélet, mint a matematika alapja. 2. Induktív konstrukciók kalkulusa (természetes számok, listák, fák). 3. Curry--Howard-izomorfizmus: logika mint programozási nyelv. 4. Prop adattípus. 5. Első rendű logika. 6. Kartéziusi kategóriák. 7. Kartéziusian zárt kategóriák. 8. Reprezentálható funktorok. 9. Yoneda-tételkör. 10. Algebrai adattípusok. 11. Monádok. 12. Mellékhatások kezelése monádokkal. 13. Kontinuációk. 

In English

1. Type Theory as a Foundation for Mathematics. 2. Calculus of Inductive Constructions  (naturals, lists, trees). 3. Curry-Howard Isomorphism: Logic as Programming Language. 4. Prop Data Type. 5. First-Order Logic. 6. Cartesian Categories. 7. Cartesian Closed Categories. 8. Representable Functors. 9. Yoneda Lemma. 10. Algebraic Data Types. 11. Monads. 12. Handling Side Effects with Monads. 13. Continuations.

12. Követelmények, az osztályzat (aláírás) kialakításának módja
szorgalmi
időszakban
Egy zárthelyi dolgozat az előadás anyagából a félév közepén, és egy beadandó programozási feladatsor bizonyításasszisztensben elkészítve (pl. Lean, Rocq, Agda) a gyakorlaton tanultak alapján. vizsga-
időszakban
Írásbeli vizsga
13. Pótlási lehetőségek
TVSZ szerint
14. Konzultációs lehetőségek
Az oktatóval egyeztetve
15. Jegyzet, tankönyv, felhasználható irodalom
Barr, M., & Wells, C. (1999). Category Theory Lecture Notes for ESSLLI. Retrieved from https://fldit-www.cs.tu-dortmund.de/~peter/barrwells.pdf
Thompson, S. (1999). Type Theory & Functional Programming. (Computing Laboratory, University of Kent). Retrieved from https://kar.kent.ac.uk/20998/1/ttfp.pdf
Milewski, B. (2019). Category Theory for Programmers. Independently published. Available at: https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
16. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka mennyisége órákban (a teljes szemeszterre számítva)
16.1 Kontakt óra
42
16.2 Félévközi felkészülés órákra
14
16.3 Felkészülés zárthelyire
14
16.4 Zárthelyik megírása
2
16.5 Házi feladat elkészítése
24
16.6 Kijelölt írásos tananyag elsajátítása (beszámoló)
0
16.7 Egyéb elfoglaltság
0
16.8 Vizsgafelkészülés
24
16.9 Összesen
120
17. Ellenőrző adat Kredit * 30
120
A tárgy tematikáját kidolgozta
18. Név beosztás Munkahely (tanszék, kutatóintézet, stb.)
Dr. Molnár Zoltán Gábor
egyetemi adjunktus
Algebra és Geometria Tanszék
A tanszékvezető
19. Neve aláírása
Dr. Hegedüs Pál