====== Přednášky ======
/* 2019 */
**1. Klíčové koncepty modelování systémů I** [Kadleček] NEW {{:courses:b6b36omo:1_-_klicove_koncepty_modelovani_systemu_i_2018.pdf| }}
* Programovací paradigmata
* Deklarativní versus imperativní reprezentace
* Práce s komplexitou
* Dekompozice
* Hierarchie
* Abstrakce používané v softwarovém vývoji(jmenné, datové, funkcionální, objektové)
**2. Objektově orientovaný přístup I** [Kadleček] NEW {{ :courses:b6b36omo:2_-_objektove_orientovany_pristup_2018.pdf| }}
* Objekty, třídy a hierarchie tříd
* Zapouzdření
* Interface a abstraktní třídy
* Dědičnost
* Message passing
* Class diagramy a příklady systémů modelovaných pomocí OOP
* Volba správného přístupu
* Rozdíl mezi asociací, agregací a kompozicí
* Dědičnost versus kompozice
* Polymorfismus
* Overloading versus overriding
**3. Klíčové koncepty modelování systémů II** [Kadleček] NEW {{:courses:b6b36omo:3_-_klicove_koncepty_modelovani_systemu_ii_2018.pdf| }}
* Abstraktní datové typy, mutabilita, imutabilita, idempotentnost
* Rekurze, datové typy v rekurzi
* Primitiva, vrstvy, principy kombinace
* Metalingvistická abstrakce
* SOLID, DRY
**4. Creational design patterns** [Kadleček, Mayer] NEW {{:courses:b6b36omo:4_-_creational_design_patterns_a_1_.pdf| }} NEW {{:courses:b6b36omo:4_creationaldesignpatterns_b.pptx_1_.pdf| }}
* Factory a Abstract Factory
* Builder
* Prototype
* Singleton
* Dependency injection
* Příklady
**5. Structural design patterns** [Mayer] NEW {{:courses:b6b36omo:5_structuraldesignpatterns_2018.pdf| }}
* Adapter
* Proxy
* Bridge
* Composite
* Facade
* Decorator
* Flyweight
* Příklady
**6. Behavioral design patterns** [Kadleček] {{:courses:a7b36omo:6_-_behavioral_design_patterns_2_.pdf| }}
* Iterator
* Chain of responsibility
* Strategy
* Visitor
* Observer
* Template method
* State
* Memento
* Interpreter
* Příklady
**7. Datové struktury a patterny** [Kadleček] {{ :courses:b6b36omo:7_-_data_design_patterns_2018.pdf| }}
* Plně persistentní, částečně persistentní datové a retroaktivní datové struktury
* Retroaktivní datové struktury
* Lazy Loading, Object pool, Cache
**8. Map, filter, reduce pattern v NoSQL světě** [Kadleček] NEW {{:courses:b6b36omo:8_-_map_reduce_patterns_2018.pdf| }}
* Map reduce framework
* Sumarizační patterny
* Filtrační patterny
* Organizační patterny
* Join patterny
* Meta patterny
**9. Map, filter, reduce pattern v Java ** [Kadleček] {{:courses:a7b36omo:9_-_map_2ffilter_2freduce_v_java_1_.pdf| }}
* Abstrakce Control Flow
* Map
* Filter
* Reduce
* Collect
* Paralelizace map reduce v Java a performance pohled
**10. Patterny pro tvorbu Microservices ** [Kadleček] NEW {{:courses:b6b36omo:10_-_patterny_pro_microservices_2018_2.pdf| }}
* Materialized view
* Event sourcing
* CQRS
* Eventual consistency
* Saga
**11. Generické programování, IOC/DI** [Šebek] NEW {{:courses:a7b36omo:generics.pdf| }}
{{:courses:b6b36omo:ioc.pdf | }}
* Wildcards
* Horni, dolní mez
* Generické typy
* Parametrizované objekty
* Generika a subtypy
**12. Specifikace, Návrhy specifikací, Web API, Apiary, Swagger, GraphQL** [Šebek] NEW {{:courses:b6b36omo:12_specifikace_rozhrani_v_2.pdf | }} {{:courses:b6b36omo:12_graphql.pdf | }}
* Proč specifikace
* Behaviorální ekvivalence
* Struktura a modelování specifikace
* Testování specifikací
* Specifikace pro mutující metody, Null Reference, pre a post conditions
* Návrh systému výjimek
* Vyjímky pro chyby a speciální výsledky, zneužívání výjimek
* Deterministické versus nedeterministické specifikace
* Deklarativní versus operativní specifikace
* Těsné versus volné specifikace
* Návrh dobrých specifikací
* Webové API
**13. Patterny pro tvorbu UI** [Kadleček] NEW {{:courses:b6b36omo:13_-_patterny_pro_ui.pptx_2_.pdf| }}
* Základy UI - HTML, DOM, JavaScript, CSS
* Single Page Application
* Model View Controller, Model View Presenter, Model View View Model
* Patterny Future/Promise a monáda
* Moderní webové frameworky, Angular, React/Redux intro