| Název: | Funkcionální a logické programování |
|---|
| Zkratka: | FLP |
|---|
| Ak.rok: | 2012/2013 |
|---|
| Semestr: | letní |
|---|
| Studijní plán: | |
|---|
| Vyučovací jazyk: | čeština |
|---|
| Informace veřejné: | http://www.fit.vutbr.cz/study/courses/FLP/public/ |
|---|
| Informace pro zapsané: | http://www.fit.vutbr.cz/study/courses/FLP/private/ |
|---|
| Kredity: | 5 kreditů |
|---|
| Ukončení: | zápočet+zkouška (písemná) |
|---|
| Výuka: | | hod./sem | přednáška | sem./cvičení | lab. cvičení | poč. cvičení | jiná |
|---|
| Rozsah: | 26 | 0 | 0 | 12 | 14 |
|---|
| | zkouška | testy | cvičení | laboratoře | ostatní |
|---|
| Body: | 60 | 20 | 0 | 0 | 20 |
|---|
|
|---|
| Garant: | Kolář Dušan, doc. Dr. Ing., UIFS |
|---|
| Přednášející: | Kolář Dušan, doc. Dr. Ing., UIFS |
| Cvičící: | Křivka Zbyněk, Ing., Ph.D., UIFS Židek Stanislav, Ing., UIFS |
|---|
| Fakulta: | Fakulta informačních technologií VUT v Brně |
|---|
| Pracoviště: | Ústav informačních systémů FIT VUT v Brně |
|---|
| Nahrazuje: | |
|---|
| Rozvrh: | | Den | Výuka | Týden | Místnost | Od | Do | PSK | Sk-od | Sk-do |
|---|
| Po | zkouška - půlsemestrální | 2013-03-18 | E104 | 13:00 | 14:50 | 1MIT | xx | xx |
| Po | zkouška - půlsemestrální | 2013-03-18 | A112 | 13:00 | 14:50 | 1MIT | xx | xx |
| Po | zkouška - řádný termín | 2013-05-13 | D0207 | 13:00 | 15:50 | 1MIT | | |
| Po | zkouška - řádný termín | 2013-05-13 | D0207 | 13:00 | 15:50 | 2MIT | | |
| Po | zkouška - řádný termín | 2013-05-13 | D105 | 13:00 | 15:50 | 2MIT | | |
| Po | zkouška - řádný termín | 2013-05-13 | D105 | 13:00 | 15:50 | 1MIT | | |
| Út | zkouška - 1. opravný termín | 2013-05-28 | D105 | 13:00 | 15:50 | 1MIT | | |
| Út | zkouška - 1. opravný termín | 2013-05-28 | D105 | 13:00 | 15:50 | 2MIT | | |
| St | zkouška - 2. opravný termín | 2013-06-05 | D105 | 14:00 | 16:50 | 2MIT | | |
| St | zkouška - 2. opravný termín | 2013-06-05 | D105 | 14:00 | 16:50 | 1MIT | | |
| Čt | cvičení - demostrační cvičení | 2013-02-28 | E112 | 19:00 | 20:50 | 1MIT | | |
| Čt | cvičení - demostrační cvičení | 2013-02-28 | E112 | 19:00 | 20:50 | 2MIT | | |
|
|---|
| | | Cíle předmětu: |
|---|
Zvládnutí principů funkcionálního a logického programování jak prakticky tak i z pohledu formálních základů, které jsou při použití obou paradigmat využívány. | | Anotace: |
|---|
Praktické aplikace a širší úvod do lambda kalkulu a predikátové logiky v prostředí funkcionálních a logických programovacích jazyků. V rámci funkcionálního programování jsou diskutovány abstraktní datové typy, použití rekurze a indukce, práce se seznamy a nekonečnými datovými strukturami v jazyce Haskell. V rámci logických jazyků základy programování v jazyce Prolog (operátor řezu, prohledávání stavového prostoru, změna databáze) a Goedel a principy jejich implementace. | | Požadované prerekvizitní znalosti a dovednosti: |
|---|
Způsoby zpracování (analýza, vyhodnocení/interpretace/překlad) programovacích jazyků, predikátová logika.
| | Získané dovednosti, znalosti a kompetence z předmětu: |
|---|
Studenti získají základní znalosti a praktické zkušenosti ve funkcionálním a logickém programování, což jsou významní představitelé deklarativního programování. Kromě toho obdrží základní informace o teoretických základech obou paradigmat a způsobu implementace. | | Dovednosti, znalosti a kompetence obecné: |
|---|
Užití a zvládnutí rekurze pro algoritmizaci.
| | Osnova přednášek: |
|---|
- Úvod do funkcionálního programování, lambda kalkul
- Programovací jazyk Haskell, úvod, práce se seznamy
- Uživatelské datové typy, typové třídy a pole v jazyce Haskell
- Vstupy/výstupy v jazyce Haskell - typové třídy IO a Monad
- Praktické úlohy v jazyce Haskell
- Dokazování ve funkcionálním programování
- Denotační sémantika, implementace funkcionálních jazyků
- Prolog, úvod
- Seznamy, operátor řezu a řazení v jazyce Prolog
- Datové struktury, řetězce, operátory - rozšíření v jazyce SWI Prolog
- Stavový prostor, práce s klauzulemi a analýza jazyků v jazyce Prolog
- Goedel - logický programovací jazyk nevyužívající Hornovy klauzule
- Implementace logických jazyků, CLP, shrnutí, diskuse
| | Osnova počítačových cvičení: |
|---|
- Seznámení s prostředím jazyka Haskell (Hugs), jednoduché funkce, rekurze, seznamy
- Nekonečné datové struktury
- Uživatelské datové typy, vstupy/výstupy
- Praktická úloha, samostatná práce
- Seznámení s prostředím jazyka Prolog, seznamy
- Praktická úloha, samostatná práce
| | Osnova ostatní - projekty, práce: |
|---|
- Jednoduchý program v jazyce Haskell (Hugs, GHC, GHCi).
- Jednoduchý program v jazyce Prolog/Gödel/CLP(R) (SWIPL, Gödel, CiaoProlog).
| | Literatura referenční: |
|---|
- Thompson, S.: Haskell, The Craft of Functional Programming, ADDISON-WESLEY, 1999, ISBN 0-201-34275-8
- Nilsson, U., Maluszynski, J.: Logic, Programming and Prolog (2ed), John Wiley & Sons Ltd., 1995
- Hill, P., Lloyd, J.: The Gödel Programming Language, MIT Press, 1994, ISBN 0-262-08229-2
- Bieliková, M., Návrat, P.: Funkcionálne a logické programovanie, Vydavateĺstvo STU, Vazovova 5, Bratislava, 2000.
- Jones, S.P.: Haskell 98 Language and Libraries, Cambridge University Press, 2003, p. 272, ISBN 0521826144
| | Literatura studijní: |
|---|
- Thompson, S.: Haskell, The Craft of Functional Programming, ADDISON-WESLEY, 1999, ISBN 0-201-34275-8
- Nilsson, U., Maluszynski, J.: Logic, Programming and Prolog (2ed), John Wiley & Sons Ltd., 1995
- Hill, P., Lloyd, J.: The Gödel Programming Language, MIT Press, 1994, ISBN 0-262-08229-2
- Bieliková, M., Návrat, P.: Funkcionálne a logické programovanie, Vydavateĺstvo STU, Vazovova 5, Bratislava, 2000.
| | Kontrolovaná výuka: |
|---|
- Půlsemestrální zkouška - písemná, formou otázek a úkolů (vyskytují se i otázky s výběrem jedné z nabízených odpovědí), neexistuje náhradní/opravný termín - 20 bodů.
- Vypracování projektů - 2 projekty, jeden ve funkcionálním a druhý v logickém programovacím jazyce - jednoduché programy, dle zadání - 20 bodů celkem.
- Závěrečná zkouška - písemná, formou otázek a úkolů (vyskytují se i otázky s výběrem jedné z nabízených odpovědí), 2 opravné termíny (60 bodů - pro získání bodů ze zkoušky je nutné zkoušku vypracovat tak, aby byla hodnocena nejméně 25 body, v opačném případě bude zkouška hodnocena 0 body).
| | Průběžná kontrola studia: |
|---|
- Půlsemestrální zkouška, u které neexistuje náhradní, či opravný termín.
- Vypracování 2 projektů v průběhu semestru a jejich odevzdání ve stanoveném termínu.
| | Podmínky zápočtu: |
|---|
Student musí během semestru získat alespoň 50% bodů z možného maxima, tj. 20 bodů ze 40. Pokud bude odhaleno plagiátorství nebo nedovolená spolupráce na projektech, či u půlsemestrální zkoušky, zápočet nebude udělen a dále bude zváženo zahájení disciplinárního řízení.
| | |
|