460-4090/01 – Paradigmata programování (PP)

Garantující katedraKatedra informatikyKredity4
Garant předmětuIng. Marek Běhálek, Ph.D.Garant verze předmětuIng. Marek Běhálek, Ph.D.
Úroveň studiapregraduální nebo graduálníPovinnostpovinně volitelný
Ročník1Semestrzimní
Odkaz na webJazyk výukyčeština
Rok zavedení2015/2016Rok zrušení
Určeno pro fakultyFEIUrčeno pro typy studianavazující magisterské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
BEH01 Ing. Marek Běhálek, Ph.D.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Klasifikovaný zápočet 2+2
kombinovaná Klasifikovaný zápočet 0+14

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Cílem předmětu Paradigmata programování je posluchače seznámit s méně rozšířenými programovacími jazyky a alternativními způsoby vývoje softwaru. Příkladem takovýchto technologií je funkcionální programování, řešení úloh s omezeními nebo verifikace. Posluchači si probírané technologie vyzkouší na připravených příkladech. Souběžné s probíranými paradigmaty programování a technologiemi budou posluchači seznámeni s vhodnými nástroji pro práci s nimi. Po absolvování předmětu, by studenti měli vědět o celé řadě alternativních technologií a měli by rozpoznat úlohy, pro které jejich použití usnadňuje řešení.

Vyučovací metody

Přednášky
Cvičení (v učebně)

Anotace

V současnosti nejvíce používané programovací jazyky (jako: C++, Java, PHP, C#) jsou imperativní a integrují objektově orientované programování. Cílem předmětu Paradigmata programování je posluchače seznámit s méně rozšířenými programovacími jazyky a alternativními způsoby vývoje softwaru. Příkladem takovýchto technologií je funkcionální programování, řešení úloh s omezeními nebo verifikace. Předmět si neklade za cíl poskytnout kompletní přehled takovýchto technologií, ani rozebrat tyto technologie do detailu, ale ukáže alternativní přístup při řešení různých typů problémů. Předmět je prakticky orientovaný. Posluchači si probírané technologie vyzkouší na připravených příkladech. Souběžné s probíranými paradigmaty programování a technologiemi budou posluchači seznámeni s vhodnými nástroji pro práci s nimi. Po absolvování předmětu, by studenti měli vědět o celé řadě alternativních technologií a měli by rozpoznat úlohy, kde usnadňují jejich řešení.

Povinná literatura:

Materiály k předmětu jsou průběžně zveřejňované na: http://www.cs.vsb.cz/behalek/education/pp/

Doporučená literatura:

Materiály k programovacímu jazyku Haskell na: http://www.haskell.org Materiály k programovacímu jazyku Prolog na: http://www.swi.psy.uva.nl/projects/SWI-Prolog/ Simon Thompson: Haskell: The Craft of Functional Programming, Addison-Wesley Professional; 3 edition (October 2, 2011), English, ISBN-10: 0201882957

Způsob průběžné kontroly znalostí během semestru

Předmět je ukončen klasifikovaným zápočtem. Body lze získat zejména za různé praktické úkoly, které budou zadávány v průběhu semestru. Tyto úkoly budou řešeny jak přímo v laboratořích tak jako domácí úkoly.

E-learning

Kurz není vyučován v e-lerningové formě. Prezentace z přednášek a připravená cvičení jsou průběžně zveřejňována na: http://www.cs.vsb.cz/behalek/education/pp.

Další požadavky na studenta

Další požadavky na studenta nejsou kladeny.

Minimální znalostní požadavky

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.

Osnova předmětu

Osnova přednášek 1. týden - Úvod do Funkcionálního programování - popis deklarativního způsobu programování, teoretické základy, lambda kalkul. 2. týden - Programování s rekurzí, pattern matching, funkce vyšších řádů. 3. týden - Typový systém, uživatelsky definované typy. 4. týden - Funkce pro práci se seznamy. 5. týden - Líné vyhodnocování, zpracování chyb. 6. týden - Vstupně - výstupní operace 7. týden - Logické programování 8. týden - Constraint programming 9. týden - Concurrent programming - ukázka technik, které lze jednoduše využít v běžných programech jako OpenMP nebo map/reduce programming. 10. týden - Vizuální programování – stručný úvod do Petriho sítí, nástroj Kaira, později bude použit i pro verifikace. 11. týden - Language oriented programming 12. týden - Stručný úvod do popisu sémantiky programovacích jazyků. Praktická ukázka jak lze popsat sémantiku (programovacího) jazyka. 13. týden - Základní pojmy z oblasti testování a verifikace, typy verifikačních nástrojů 14. týden - Praktické příklady verifikačních nástrojů Obsah cvičení koresponduje s obsahem přednášek. Všechna cvičení budou na počítačové učebně. Obsah cvičení 1) Implementace jednoduchých funkcí v jazyce Haskell. 2) Funkce vyšších řádů. 3) Práce se seznamy. 4) Uživatelsky definované datové typy. 5) Typové třídy 6) Práce se vstupem a výstupem 7) Ukázka programování v jazyce Prolog 8) Implementace vybraného algoritmu z oblasti Constraint programming 9) Implementace ukázkových aplikaci s OpenMP 10) Implementace MPI aplikace v nástroji Kaira 11) Řešení úlohy s využitím doménově specifického programování 12) Definice jednoduchého jazyka v denotační sémantice 13) Ukázka verifikace v nástrojích SPIN a UPPAL 14) Verifikace aplikace vytvořené v nástroji Kaira z cvičení 10.

Podmínky absolvování předmětu

Prezenční forma (platnost od: 2015/2016 zimní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodů
Klasifikovaný zápočet Klasifikovaný zápočet 100  51
Rozsah povinné účasti: 80% účast na cvičeních

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramOborSpec.FormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2016/2017 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2016/2017 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2015/2016 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2015/2016 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku