Természettudományi Kar |
Tantárgy Adatlap |
| Tantárgy kód | BMETEAGBsMTEFP-00 |
| 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 |
|||||||||