Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2 značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
MI-FLP | Funkcionální a logické programování | Rozsah kontaktní výuky: | 2P+1C | ||
---|---|---|---|---|---|
Vyučující: | Způsob zakončení: | Z,ZK | |||
Zodpovědná katedra: | 18101 | ECTS Kredity: | 4 | Semestr: | L |
Anotace:
Studenti se seznámí s principy funkcionálního a logického programování. Budou schopni programovat v jazycích Lisp a Prolog.
Osnovy přednášek:
1. | Deklarativní programovací jazyky. Lambda kalkul jako formalismus pro funkcionální programování. | |
2. | Základní typy dat a funkce Lispu, seznamy. | |
3. | Proměnné, typové predikáty, rekurze a iterace v Lispu. | |
4. | Mapovací funkcionály, řídicí struktury. | |
5. | Vstup a výstup, makra. | |
6. | Struktury, vektory, pole, hashovací tabulky. | |
7. | Implementace Lispu. | |
8. | Predikátová logika, Hornovy klauzule a SLD rezoluce jako úvod do Prologu. | |
9. | Predikáty, klauzule, fakta, operátory v Prologu. | |
10. | Průběh a řízení výpočtu v Prologu, seznamy. | |
11. | Datové struktury, vstup, výstup. | |
12. | Implementace Prologu. | |
13. | Logické programování a důkazové stromy - souvislosti s atributovými gramatikami. |
Osnovy cvičení:
1. | Rekurzivní programování, řešení jednoduchých úloh v imperativním jazyce pomocí rekurze. | |
2. | Seznámení s používáním lispovského systému v počítačové laboratoři. | |
3. | Definice jednoduchých funkcí pro práci se seznamy v Lispu. | |
4. | Zadání semestrální práce. | |
5. | Rekurzivní a iterativní řešení úloh, efektivnost rekurze. | |
6. | Mapovací funkcionály. | |
7. | Pole, hashovací tabulky, vstup a výstup. | |
8. | Makra, struktury. | |
9. | Konzultace k semestrální práci. | |
10. | Seznámení s používáním systému Prolog v počítačové laboratoři. | |
11. | Rekurze v Prologu, aritmetické a seznamové predikáty. | |
12. | Programování vstupu a výstupu, řízení výpočtu. | |
13. | Odevzdání a hodnocení domácích prací, zápočet. |
Literatura:
1. | Shapiro, S. C. ''Common Lisp: An Interactive Approach''. W. H. Freeman, 1991. ISBN 0716782189. | |
2. | Seibel, P. ''Practical Common Lisp''. Apress, 2005. ISBN 1590592395. | |
3. | Clocksin, W. F., Mellish, C. S. ''Programming in Prolog (5th Edition)''. Springer, 2003. ISBN 3540006788. |
Požadavky:
Základní znalost principů imperativního programování.
|
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 19. 4. 2024, semestry: Z/2021-2, Z/2023-4, Z/2022-3, Z/2019-20, Z/2024-5, L/2021-2, L/2020-1, L/2022-3, L/2023-4, Z/2020-1, L/2019-20, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: J. Novák, I. Halaška |