FI:IB015 Neimperativní programování - Informace o předmětu
IB015 Neimperativní programování
Fakulta informatikypodzim 2021
- Rozsah
- 2/1/1. 4 kr. (plus ukončení). Ukončení: zk.
- Vyučující
- prof. RNDr. Jiří Barnat, Ph.D. (přednášející)
Jakub Arbet (cvičící)
Mgr. Jakub Balabán (cvičící)
Mgr. František Bráblík (cvičící)
Bc. Matej Dipčár (cvičící)
Bc. Matej Focko (cvičící)
Mgr. et Mgr. Vladimír Chlup (cvičící)
Mgr. Tomáš Janoušek (cvičící)
Mgr. Jan Jedelský (cvičící)
Mgr. Daniela Krúželová (cvičící)
Mgr. Adam Matoušek (cvičící)
Mgr. Henrieta Micheľová (cvičící)
RNDr. Jan Mrázek (cvičící)
Mgr. Patrick Ondika (cvičící)
Mgr. David Pavlík (cvičící)
Mgr. Anna Řechtáčková (cvičící)
Ondřej Sojka (cvičící)
Mgr. Tomáš Szaniszlo (cvičící)
Bc. Jakub Szymsza (cvičící)
Mgr. Jakub Šárník (cvičící)
RNDr. Vladimír Štill, Ph.D. (cvičící)
Bc. Dávid Šutor (cvičící)
RNDr. Martin Jonáš, Ph.D. (pomocník)
Mgr. Juraj Major (pomocník)
Mgr. Ondřej Svoboda (pomocník) - Garance
- prof. RNDr. Jiří Barnat, Ph.D.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: prof. RNDr. Jiří Barnat, Ph.D.
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky - Rozvrh
- Út 14. 9. až Út 7. 12. Út 12:00–13:50 D1
- Rozvrh seminárních/paralelních skupin:
IB015/02: Út 14. 9. 10:00–11:50 B130, Út 21. 9. 10:00–11:50 B130, Út 5. 10. 10:00–11:50 B130, Út 19. 10. 10:00–11:50 B130, Út 2. 11. 10:00–11:50 B130, Út 16. 11. 10:00–11:50 B130, Út 30. 11. 10:00–11:50 B130, A. Řechtáčková, V. Štill
IB015/03: Po 13. 9. až Po 6. 12. každé liché pondělí 10:00–11:50 B130, T. Janoušek, V. Štill
IB015/04: Po 13. 9. 10:00–11:50 B130, Po 20. 9. 10:00–11:50 B130, Po 4. 10. 10:00–11:50 B130, Po 18. 10. 10:00–11:50 B130, Po 1. 11. 10:00–11:50 B130, Po 15. 11. 10:00–11:50 B130, Po 29. 11. 10:00–11:50 B130, T. Janoušek, V. Štill
IB015/05: Po 13. 9. až Po 6. 12. každé liché pondělí 12:00–13:50 B130, H. Micheľová, P. Ondika
IB015/06: Po 13. 9. 12:00–13:50 B130, Po 20. 9. 12:00–13:50 B130, Po 4. 10. 12:00–13:50 B130, Po 18. 10. 12:00–13:50 B130, Po 1. 11. 12:00–13:50 B130, Po 15. 11. 12:00–13:50 B130, Po 29. 11. 12:00–13:50 B130, H. Micheľová, P. Ondika
IB015/07: St 15. 9. až St 8. 12. každou lichou středu 12:00–13:50 B130, H. Micheľová, J. Szymsza
IB015/08: St 15. 9. 12:00–13:50 B130, St 22. 9. 12:00–13:50 B130, St 6. 10. 12:00–13:50 B130, St 20. 10. 12:00–13:50 B130, St 3. 11. 12:00–13:50 B130, St 1. 12. 12:00–13:50 B130, H. Micheľová, J. Szymsza
IB015/09: St 15. 9. až St 8. 12. každou lichou středu 8:00–9:50 B130, V. Chlup, O. Sojka
IB015/10: St 15. 9. 8:00–9:50 B130, St 22. 9. 8:00–9:50 B130, St 6. 10. 8:00–9:50 B130, St 20. 10. 8:00–9:50 B130, St 3. 11. 8:00–9:50 B130, St 1. 12. 8:00–9:50 B130, V. Chlup, O. Sojka
IB015/11: Čt 16. 9. až Čt 9. 12. každý lichý čtvrtek 16:00–17:50 B130, J. Arbet, V. Chlup
IB015/12: Čt 16. 9. 16:00–17:50 B130, Čt 23. 9. 16:00–17:50 B130, Čt 7. 10. 16:00–17:50 B130, Čt 21. 10. 16:00–17:50 B130, Čt 4. 11. 16:00–17:50 B130, Čt 18. 11. 16:00–17:50 B130, Čt 2. 12. 16:00–17:50 B130, J. Arbet, V. Chlup
IB015/13: Čt 16. 9. až Čt 9. 12. každý lichý čtvrtek 10:00–11:50 B130, F. Bráblík, J. Mrázek
IB015/14: Čt 16. 9. 10:00–11:50 B130, Čt 23. 9. 10:00–11:50 B130, Čt 7. 10. 10:00–11:50 B130, Čt 21. 10. 10:00–11:50 B130, Čt 4. 11. 10:00–11:50 B130, Čt 18. 11. 10:00–11:50 B130, Čt 2. 12. 10:00–11:50 B130, F. Bráblík, J. Mrázek
IB015/15: Út 14. 9. až Út 7. 12. každé liché úterý 14:00–15:50 B130, J. Jedelský, A. Matoušek
IB015/16: Út 14. 9. 14:00–15:50 B130, Út 21. 9. 14:00–15:50 B130, Út 5. 10. 14:00–15:50 B130, Út 19. 10. 14:00–15:50 B130, Út 2. 11. 14:00–15:50 B130, Út 16. 11. 14:00–15:50 B130, Út 30. 11. 14:00–15:50 B130, J. Jedelský, A. Matoušek
IB015/17: Út 14. 9. až Út 7. 12. každé liché úterý 16:00–17:50 B130, M. Dipčár, T. Szaniszlo
IB015/18: Út 14. 9. 16:00–17:50 B130, Út 21. 9. 16:00–17:50 B130, Út 5. 10. 16:00–17:50 B130, Út 19. 10. 16:00–17:50 B130, Út 2. 11. 16:00–17:50 B130, Út 16. 11. 16:00–17:50 B130, Út 30. 11. 16:00–17:50 B130, M. Dipčár, T. Szaniszlo
IB015/19: St 15. 9. až St 8. 12. každou lichou středu 18:00–19:50 B130, M. Focko, D. Pavlík
IB015/20: St 15. 9. 18:00–19:50 B130, St 22. 9. 18:00–19:50 B130, St 6. 10. 18:00–19:50 B130, St 20. 10. 18:00–19:50 B130, St 3. 11. 18:00–19:50 B130, St 1. 12. 18:00–19:50 B130, M. Focko, D. Pavlík
IB015/21: Út 14. 9. až Út 7. 12. každé liché úterý 8:00–9:50 B130, D. Krúželová, J. Šárník
IB015/22: Út 14. 9. 8:00–9:50 B130, Út 21. 9. 8:00–9:50 B130, Út 5. 10. 8:00–9:50 B130, Út 19. 10. 8:00–9:50 B130, Út 2. 11. 8:00–9:50 B130, Út 16. 11. 8:00–9:50 B130, Út 30. 11. 8:00–9:50 B130, D. Krúželová, J. Šárník
IB015/23: Pá 17. 9. až Pá 10. 12. každý lichý pátek 10:00–11:50 B130, J. Balabán, D. Šutor
IB015/24: Pá 17. 9. 10:00–11:50 B130, Pá 24. 9. 10:00–11:50 B130, Pá 8. 10. 10:00–11:50 B130, Pá 22. 10. 10:00–11:50 B130, Pá 5. 11. 10:00–11:50 B130, Pá 19. 11. 10:00–11:50 B130, Pá 3. 12. 10:00–11:50 B130, J. Balabán, D. Šutor
IB015/ne: Rozvrh nebyl do ISu vložen. J. Barnat - Předpoklady
- Studenti by měli vystačit s běžnými středoškolskými znalostmi a jistou schopností matematické abstrakce.
- Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- předmět má 54 mateřských oborů, zobrazit
- Cíle předmětu
- Kurz seznamuje posluchače s funkcionálním a logickým programovacím paradigmatem. Programovací jazyky vynucující deklarativní způsob popisu algoritmu mají přivést studenty ke správným návykům, jichž využijí při pozdější tvorbě větších programových celků a to i v imperativních jazycích.
- Výstupy z učení
- Student bude po absolvování předmětu: - chápat principy funkcionálního výpočetního paradigmatu, - schopen dekomponovat výpočetní problém na jednotlivé funkce a tuto schopnost používat při vytváření vlastních kódů i v imperativních programovacích jazycích, - mít základní znalost programovacího jazyka Haskell, - schopen navrhovat a implementovat jednoduché rekurzivní funkce, - použít rekurzivně definované datové struktury.
- Osnova
- Funkcionální výpočetní paradigma a Haskell
- Programování a funkce;
- Seznamy, Typy, Rekurze
- Funkce vyšších řádů, Lambda funkce
- Akumulační funkce, Definice typů, Vstup/Výstup
- Redukční strategie, Nekonečné seznamy
- Vztah rekurze a indukce, Rekurzivní datové typy
- Časová složitost výpočtu, Typové třídy, Moduly
- Ukázky funkcionálně řešených problémů
- Logické výpočetní paradigma a Prolog
- Neimperativní programování v Prologu
- Seznamy, Aritmetika, Tail rekurze v Prologu
- Řezy, vstup-výstup, všechna řešení
- Programování s omezujícími podmínkami
- Literatura
- THOMPSON, Simon. Haskell :the craft of functional programming. Harlow: Addison-Wesley, 1996, xx, 500 s. ISBN 0-201-40357-9. info
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 s. ISBN 978-1-59327-283-8. URL info
- BLACKBURN, Patrick a Johan BOS. Learn Prolog Now! London: College Publications, 2016. Texts in Computing, volume 7. ISBN 1-904987-17-6. URL info
- Záložky
- https://is.muni.cz/ln/tag/FI:IB015!
- Výukové metody
- Kurs probíhá formou přednášek a samostatné domácí práce, a je doplněn nepovinným cvičením.
- Metody hodnocení
- Zkouška je písemná a má dvě části, povinnou a nepovinnou. Do závěrečného hodnocení se navíc mohou promítnout i body za domácí úlohy a aktivitu ve cvičení. Pro úspěšné absolvování je třeba uspět u povinné části zkoušky a získat minimální stanovený počet bodů za domácí úlohy.
- Navazující předměty
- Další komentáře
- Studijní materiály
Předmět je vyučován každoročně. - Nachází se v prerekvizitách jiných předmětů
- Statistika zápisu (podzim 2021, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/podzim2021/IB015