PředmětyPředměty(verze: 802)
Předmět, akademický rok 2016/2017
   Přihlásit přes CAS
Neprocedurální programování - NPRG005
Anglický název: Non-procedural Programming
Zajišťuje: Katedra softwaru a výuky informatiky (32-KSVI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2015
Semestr: letní
E-Kredity: 6
Rozsah, examinace: letní s.:2/2 Z+Zk [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Další informace: http://ksvi.mff.cuni.cz/~dvorak/vyuka/NPRG005/
Garant: doc. RNDr. Tomáš Dvořák, CSc.
RNDr. Jan Hric
Třída: Informatika Bc.
Informatika Mgr. - učitelské studium informatiky
Kategorizace předmětu: Informatika > Programování
Anotace -
Poslední úprava: T_KSVI (18.04.2012)

Předmět je věnován principům logického a funkcionálního programování, které jsou vyloženy prostřednictvím programovacích jazyků Prolog a Haskell. Informativně se studenti seznámí i s jazykem LISP (Scheme).
Literatura
Poslední úprava: doc. RNDr. Tomáš Dvořák, CSc. (10.02.2017)

Harold Abelson, Gerald Jay Sussman, Julie Sussman, Structure and Interpretation of Computer Programs, 2nd ed., McGraw-Hill, 1996

Richard Bird, Thinking Functionally with Haskell, Cambridge University Press, 2014

Ivan Bratko, Prolog Programming for Artificial Intelligence, 4th ed., Addison-Wesley, 2011

William F. Clocksin, Christopher S. Mellish, Programming in Prolog: Using the ISO Standard, 5th ed., Springer, 2003

Graham Hutton, Programming in Haskell, 2nd ed., Cambridge University Press, 2016

Bryan O'Sullivan, John Goerzen, Don Stewart, Real World Haskell, O’Reilly, 2008, http://book.realworldhaskell.org/

Sylabus -
Poslední úprava: doc. RNDr. Tomáš Dvořák, CSc. (09.09.2011)

1. Tvar programu v jazyce Prolog a jeho interpretace, unifikace, backtracking. Deklarativní a procedurální sémantika programu.

2. Práce se seznamy a s rekurzivním datovými strukturami. Standardní predikáty a jejich použití.

3. Aritmetika. Vstup a výstup. Definice operátorů.

4. Řez a negace.

5. Efektivita programů v Prologu, neúplně definované datové struktury.

6. Funkcionální programování, základy jazyka LISP (Scheme).

7. Tvar programu v jazyce Haskell. Dvojrozměrná syntax, líné vyhodnocení.

8. Definice funkce, rekurze, porovnávání se vzorem. Stručné seznamy.

9. Definice typů a datových struktur, polymorfismus, typové třídy a instance.

10. Funkce vyšších řádů. Nekonečné datové struktury.

11. Vstup a výstup, monády.

 
Univerzita Karlova | Informační systém UK