Vyučující
|
|
Obsah předmětu
|
Přehled témat přednášek (nejedná se o rozpis do výukových týdnů): 1. Krátký pohled do historie počítačů a programovacích jazyků. 2. Regulární výrazy 3. Přehled základních programovacích paradigmat 4. Objektově orientované programování 5. Lambda kalkulus 6. Úvod do Haskellu 7. Úvod do jazyka Prolog 8. Srovnání vybraných algoritmů v různých paradigmatech
|
Studijní aktivity a metody výuky
|
- Projekt individuální [40]
- 40 hodin za semestr
- Příprava na dílčí test [2-10]
- 15 hodin za semestr
- Kontaktní výuka
- 52 hodin za semestr
- Příprava na zkoušku [10-60]
- 50 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
využívat teoretické poznatky z datových struktur |
využívat teoretické znalosti diskrétní matematiky |
porozumět významu parametrů procedur a funkcí |
popsat způsob vykonání programuv počítači, zejména z hlediska alokace paměti v zásobníku a na haldě |
samostatně určit výpočetní složitost operací |
Odborné dovednosti |
---|
aktivně programovat ve vyšším programovacím jazyce |
používat některé běžné IDE na základní uživatelské úrovni |
používat operační systémy MS Windows a Linux na základní uživatelské úrovni |
analyzovat a porovnávat algoritmy z hlediska třídy výpočetní a paměťové složitosti |
implementovat programy využívající principy imperativního programování |
Obecné způsobilosti |
---|
bc. studium: rozpozná problém, objasní jeho podstatu, rozčlení ho na části, |
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje, |
bc. studium: efektivně využívá různé strategie učení k získání a zpracování poznatků a informací, hledá a rozvíjí účinné postupy ve svém učení, |
bc. studium: kriticky přistupuje ke zdrojům informací, informace tvořivě zpracovává a využívá při svém studiu a praxi, |
bc. studium: vytváří hypotézy, navrhuje postupné kroky, zvažuje využití různých postupů při řešení problému nebo ověřování hypotézy, |
Výsledky učení |
---|
Odborné znalosti |
---|
charakterizovat principy a výhody či nevýhody programování v různých paradigmatech |
znalost principů vytváření objektového návrhu aplikace |
znalost principů zapouzdření, dědičnosti a polymorfismu |
základy teorie komponent a modulárního návrhu |
porozumět problematice lambda kalkulu |
znalost principů funkcionálního a logického programování |
Odborné dovednosti |
---|
interpretovat a vytvářet regulární výrazy |
navrhnout a implementovat aplikaci využívající principů OOP |
implementovat rekurzivní programy v jazyce Haskell |
implementovat rekurzivní programy v jazyce Prolog |
Obecné způsobilosti |
---|
bc. studium: samostatně získávají další odborné znalosti, dovednosti a způsobilosti na základě především praktické zkušenosti a jejího vyhodnocení, ale také samostatným studiem teoretických poznatků oboru, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Řešení problémů, |
Samostudium, |
Odborné dovednosti |
---|
Cvičení (praktické činnosti), |
Demonstrace dovedností, |
Samostatná práce studentů, |
Obecné způsobilosti |
---|
Přednáška s aktivizací studentů, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Kombinovaná zkouška, |
Seminární práce, |
Průběžné hodnocení, |
Odborné dovednosti |
---|
Seminární práce, |
Demonstrace dovedností (praktická činnost), |
Individuální prezentace, |
Obecné způsobilosti |
---|
Kombinovaná zkouška, |
Seminární práce, |
Doporučená literatura
|
-
Bramer, M. A. Logic programming with Prolog. Second edition. 2013. ISBN 978-1-4471-5486-0.
-
Martin, Robert C.; Feathers, Michael C.; Ottinger, Timothy R.; Langr, Jeff; Schuchert, Brett L.; Grenning, James W.; Wampler, Dean. Clean code : a handbook of agile software craftsmanship. 2009. ISBN 978-0-13-235088-4.
-
Pecinovský, Rudolf. OOP ? Naučte se myslet a programovat objektově. Brno, 2010. ISBN 978-80-251-2126-9.
-
Scott, Michael Lee. Programming language pragmatics. Fourth edition. 2016. ISBN 978-0-12-410409-9.
-
Sebesta, Robert W. Concepts of programming languages. Eleventh edition, global edition. 2016. ISBN 978-1-292-10055-5.
|