460-4090/02 – 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íPovinnostvolitelný odborný
Ročník1Semestrzimní
Jazyk výukyangličtina
Rok zavedení2015/2016Rok zrušení2021/2022
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

Forma způsobu ověření studijních výsledků a další požadavky na studenta

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.

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, platnost do: 2021/2022 letní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodůMax. počet pokusů
Klasifikovaný zápočet Klasifikovaný zápočet 100  51 3
Rozsah povinné účasti: 80% účast na cvičeních

Zobrazit historii

Podmínky absolvování předmětu a účast na cvičeních v rámci ISP:

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2021/2022 (N0688A140015) Průmysl 4.0 P angličtina Ostrava 1 volitelný odborný stu. plán
2021/2022 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P angličtina Ostrava 1 povinně volitelný stu. plán
2020/2021 (N0688A140015) Průmysl 4.0 P angličtina Ostrava 1 volitelný odborný stu. plán
2020/2021 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P angličtina Ostrava 1 povinně volitelný stu. plán
2019/2020 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P angličtina Ostrava 1 povinně volitelný stu. plán
2019/2020 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K angličtina Ostrava 1 povinně volitelný stu. plán
2018/2019 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P angličtina Ostrava 1 povinně volitelný stu. plán
2018/2019 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K angličtina Ostrava 1 povinně volitelný stu. plán
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P anglič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 anglič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 anglič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 anglič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 anglič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 anglič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

Hodnocení Výuky



2015/2016 zimní