BMETEAGBsMTEFP-00

Nyomtatóbarát változatNyomtatóbarát változat
Tantárgy azonosító adatok
A tárgy címe: 
Típuselmélet és funkcionális programozás
A tárgy angol címe: 
Type Theory and Functional Programming
A tárgy rövid címe: 
TípuselméletÉsFunkcionálisProgramozás
2
1
0
v
Kredit: 
4
A tantárgy felelős tanszéke: 
Algebra és Geometria Tanszék
A tantárgy felelős oktatója: 
Dr. Molnár Zoltán Gábor
A tantárgy felelős oktatójának beosztása: 
egyetemi adjunktus
Akkreditációs adatok
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
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.
A tantárgy szerepe a képzés céljának megvalósításában: 
Szabadon választható tantárgy
A tantárgy részletes tematikája magyarul és angolul: 

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.

Követelmények 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.
Követelmények vizsgaidőszakban: 
Írásbeli vizsga
Pótlási lehetőségek: 
TVSZ szerint
Konzultációs lehetőségek: 
Az oktatóval egyeztetve
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/
A tárgy elvégzéséhez átlagosan szükséges tanulmányi munka mennyisége órákban (a teljes szemeszterre számítva)
Kontakt óra: 
42
Félévközi felkészülés órákra: 
14
Felkészülés zárthelyire: 
14
Zárthelyik megírása: 
2
Házi feladat elkészítése: 
24
Kijelölt írásos tananyag elsajátítása (beszámoló): 
0
Egyéb elfoglaltság: 
0
Vizsgafelkészülés: 
24
Összesen: 
120
Ellenőrző adat: 
120
A tárgy tematikáját kidolgozta
Név: 
Dr. Molnár Zoltán Gábor
Beosztás: 
egyetemi adjunktus
Munkahely (tanszék, kutatóintézet, stb.): 
Algebra és Geometria Tanszék
A tanszékvezető neve: 
Dr. Hegedüs Pál