1. Klíčové koncepty modelování systémů I [Kadleček]
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]
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]
Abstraktní datové typy, mutabilita, imutabilita, idempotentnost
Rekurze, datové typy v rekurzi
Primitiva, vrstvy, principy kombinace
Metalingvistická abstrakce
SOLID, DRY
4. Creational design patterns [Mayer]
5. Structural design patterns [Mayer]
Adapter
Proxy
Bridge
Composite
Facade
Decorator
Flyweight
Příklady
6. Behavioral design patterns [Kadleček]
Iterator
Chain of responsibility
Strategy
Visitor
Observer
Template method
State
Memento
Interpreter
Příklady
7. Datové struktury a patterny [Kadleček]
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]
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]
10. Patterny pro tvorbu Microservices [Kadleček]
Materialized view
Event sourcing
CQRS
Eventual consistency
Saga
11. Generické programování [Šebek]
12. Specifikace, Návrhy specifikací, Web API, Apiary, Swagger [Mayer]
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í
13. Patterny pro tvorbu UI [Kadleček]
Základy UI -
HTML, DOM, JavaScript,
CSS
Single Page Application
Model View Controller, Model View Presenter, Model View View Model
Moderní webové frameworky
Angular, React/Redux intro