PředmětyPředměty(verze: 825)
Předmět, akademický rok 2017/2018
   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 do 2019
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: doc. RNDr. Pavel Töpfer, CSc. (05.02.2018)

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).
Podmínky zakončení předmětu -
Poslední úprava: doc. RNDr. Tomáš Dvořák, CSc. (24.03.2018)

Předmět je zakončen zápočtem a zkouškou. K získání zápočtu je vyžadováno

  • vypracování zápočtového programu včetně uživatelské a vývojové dokumentace na téma, zadané cvičícím,
  • získání stanoveného počtu bodů z řešení problémů, zadávaných ve formě domácích úloh či testů na cvičeních.

Zkouška je složena z části písemné a ústní. Písemná část předchází části ústní a její nesplnění znamená, že celá zkouška je hodnocena známkou nevyhověl(a). Nesložení ústní části znamená, že při příštím termínu je třeba opakovat obě části zkoušky. Známka ze zkoušky je stanovena na základě hodnocení písemné i ústní části.

Písemná část je složena z testu základů, který zahrnuje po dvou úlohách menšího rozsahu z logického i funkcionálního programování, a z jedné úlohy většího rozsahu, kterou lze řešit v libovolném ze dvou probraných jazyků. Témata úloh odpovídají sylabu předmětu i látce, probrané na cvičení. Požadavky ústní části zkoušky odpovídají sylabu předmětu v rozsahu, v němž byl prezentován na přednášce.

Literatura
Poslední úprava: doc. RNDr. Tomáš Dvořák, CSc. (24.03.2018)

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. (24.03.2018)

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ími 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