{{indexmenu_n>1000}}
====== Přednášky ======
Podklady přednášek pro aktuální akademický rok 2018/2019. Podklady se skládají z promítaných slidů, které jsou také k dispozici ve zkrácených verzích šetřnějších k případnému tisku, bez přechodů mezi snímky a ve formátu čtyři snímky na stránku.
**Poklady tvoří podpůrný materiál a jejich učelem není nahradit vlastní zápisky z přednášky, které slouží také jako prostředek osvojení si studované problematiky.**
Podklady mohou být průběžné aktualizovány
===== Harmonogram přednášek =====
^ Týden ^ Datum ^ Přednáška ^
| **1** | 20.2.2019 | [[courses:b0b36pjv:prednasky?uvod|01 - Úvod]] |
| **2** | 27.2.2019 | [[courses:b0b36pjv:prednasky?objektove_orientovane_programovani|02 - Objektově orientované programování]] |
| **3** | 6.3.2019 | [[courses:b0b36pjv:prednasky?vyctove_typy_a_kolekce_v_jave_genericky_typ|03 - Výčtové typy a kolekce v Javě, generické typy]] |
| **4** | 13.3.2019 | [[courses:b0b36pjv:prednasky?vyjimky_a_soubory|04 - Výjimky a soubory]] |
| **5** | 20.3.2019 | [[courses:b0b36pjv:prednasky?gui|05 - GUI v Javě]] |
| **6** | 27.3.2019 | [[courses:b0b36pjv:prednasky?gui_v_jave_udalostmi_rizene_programovani|06 - GUI v Javě, událostmi řízené programování]] |
| **7** | 3.4.2019 | [[courses:b0b36pjv:prednasky?vicevlaknove_aplikace_1|07 - Vícevláknové aplikace 1]] |
| **8** | 10.4.2019 | [[courses:b0b36pjv:prednasky?vicevlaknove_aplikace_2|08 - Vícevláknové aplikace 2]] |
| **9** | 17.4.2019 | [[courses:b0b36pjv:prednasky?sokety_a_sitovani|09 - Sokety a síťování]] |
| **10** | 24.4.2019 | [[courses:b0b36pjv:prednasky?vykon_a_profilovani|10 - Výkon a profilování]] |
| **11** | 1.5.2019 | Státní svátek |
| **12** | 8.5.2019 | Státní svátek |
| **12** | 9.5.2019 | [[courses:b0b36pjv:prednasky?uklizeni_odpadku_a_analyza_uniku|11 - Uklízení odpadků a analýza úniku]] (čtvrtek) |
| **13** | 14.5.2019 | Odpadá (úterý)|
| **13** | 15.5.2019 | Rektorský den|
| **14** | 22.5.2019 | **Zkouškový test** {{ :courses:b0b36pjv:prednasky:instrukce.pptx | }} |
===== 01 - Úvod =====
Organizace předmětu; programovací jazyk Java.
Úvod do objektově orientovaného modelování (analýzy a návrhu); objektově orientované programování (OOP); struktura objetu a zapouzdření.
Konstruktor, singleton, metoda main, immutable objekty.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture01-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture01-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture01-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{ :courses:b0b36pjv:prednasky:01.zip|}}
--- //Aktualizace 2018/02/22 15:35//
===== 02 - Objektově orientované programování =====
Objektově orientované programování. Immutable. Dědičnost, kompozice a polymorfismus. Dispatch a double dispatch.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture02-slides.pdf|}} {{:courses:b0b36pjv:prednasky:lecture02Geom.pdf|}} {{:courses:b0b36pjv:prednasky:lecture02Matrix.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture02-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture02-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:02.zip|}} {{:courses:b0b36pjv:prednasky:02GUI.zip|}} {{:courses:b0b36pjv:prednasky:02matrix.zip|}}
--- //Aktualizace 2019/02/25 12:50 -- úprava single-dispatch demonstračního příkladu//
===== 03 - Výčtové typy a kolekce v Javě, generický typ =====
Výčtové typy, kolekce, iterátor, JFC. Generické typy.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture03-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture03-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture03-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:03.zip|}}
--- //Aktualizace 2017/03/09 7:42//
===== 04 - Výjimky a soubory =====
Výjimky. Soubory.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture04-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture04-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture04-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:04.zip|}}
--- //Aktualizace 2017/03/15 10:16//
===== 05 - GUI =====
GUI v Javě, komponenty a kontejnery, dialogová okna (modalita).
* prezentace: {{:courses:b0b36pjv:prednasky:lecture05-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture05-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture05-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:05.zip|}}
===== 06 - GUI v Javě, událostmi řízené programování =====
GUI v Javě, Model-View-Controller, Event-Driven Programming, vnitřní třídy.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture06-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture06-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture06-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:06.zip|}}
===== 07 - Vícevláknové aplikace 1 =====
Paralelismus, synchronizace výpočetních toků, vícevláknové aplikace.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture07-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture07-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture07-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:07.zip|}}
--- //Aktualizace 2017/04/06 9:15 - přidán demonstrační příklad//
===== 08 - Vícevláknové aplikace 2 =====
Vícevláknové aplikace - příklad GUI, vzor observer. Modely vícevláknových aplikací.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture08-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture08-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture08-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:08.zip|}}, {{:courses:b0b36pjv:prednasky:08gui.zip|}}, {{:courses:b0b36pjv:prednasky:08canvas.zip|}}
===== 09 - Sokety a síťování =====
Síťování, síťová API - soket, jednoduchý klient a server, boss/worker server/klient.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture09-slides.pdf|}}
* zkrácená verze: {{:courses:b0b36pjv:prednasky:lecture09-handout.pdf|}}
* zkrácená verze 2x2: {{:courses:b0b36pjv:prednasky:lecture09-handout-2x2.pdf|}}
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:09.zip|}}
===== 10 - Výkon a profilování =====
Výkon aplikace, profilování v NetBeans, příklady.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture10.pdf|}}
* zkrácená verze:
* zkrácená verze 2x2:
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:10.zip|}}
===== 11 - Uklízení odpadků a analýza úniku =====
Správa paměti, Garbage Collection, Escape Analysis a alokace na stacku.
* prezentace: {{:courses:b0b36pjv:prednasky:lecture11.pdf|}}
* zkrácená verze:
* zkrácená verze 2x2:
* přiložené demonstrační programy: {{:courses:b0b36pjv:prednasky:11.zip|}}
--- //Aktualizace 2019/09/05 11:22 - drobné opravy textu//
/*
===== Vyzvaná přednáška - Návrhové vzory v akci (Ing. Karel Čemus) =====
Učebnic návrhových vzorů je celá řada, avšak většina z nich se zaměřuje na teoretické vysvětlení konceptu, jeho demonstraci pomocí diagramu, případně AHA příkladu. Tato přednáška nemá za cíl důkladně vysvětlit konkrétní návrhové vzory, všechny jejich výhody a nevýhody, ani možné implementace. To si lze přečíst v knihách. Během přednášky společně navrhneme architekturu jednoduché aplikace Piškvorky, na které si demonstrujeme praktické využití návrhových vzorů. Ukážeme si, proč je dobré je ovládat a jak nám to může pomoci při řešení reálných problémů. Seznámíme se i s využitím několika často používaných vzorů a zjistíme, že většina běžných problémů má již kvalitní a ověřené řešení.
*/
/*===== Vyzvaná přednáška - Funkcionální prvky Java 8 =====
* Presentace [[https://docs.google.com/presentation/d/1lxA2dVTGzLshzVW2BcxqTu8T4RJILYhJDa4RfNQktsc/edit?usp=sharing|Google Slides]]
* Zdrojové kódy [[https://gitlab.fel.cvut.cz/hrstkon1/java8-lecture.git|Git Repo]]
*/
Podklady budou průběžné aktualizovány