Předmět: Paradigmata programování

« Zpět
Název předmětu Paradigmata programování
Kód předmětu KIV/PPG
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia 2
Semestr Letní
Počet ECTS kreditů 6
Vyučovací jazyk Čeština
Statut předmětu Povinně-volitelný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Goubej Vít, Ing. Ph.D.
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.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr