Přednášky

Podklady přednášek pro aktuální akademický rok 2023/2024. 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. K většině přednášek jsou k dispozici vide a komentovanými slidy. Tyto materiály nenahrazují přednášku, mohou být nedokonalé, zastaralé a nekompletní.

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 21.2.2024 01 - Úvod [Ladislav Serédi]
2 *28.2.2024 02 - Objektově orientované programování [Ladislav Serédi]
3 *6.3.2023 03 - Výčtové typy a kolekce v Javě, generické typy [Ladislav Serédi]
4 13.3.2024 04 - Výjimky a soubory [Jiří Vokřínek]
5 20.3.2024 05 - Vícevláknové aplikace 1 [Jiří Vokřínek]
6 *27.3.2024 06 - GUI v Javě [Ladislav Serédi]
7 *3.4.2024 07 - GUI v Javě, událostmi řízené programování [Ladislav Serédi]
8 10.4.2024 08 - Vícevláknové aplikace 2 [Jiří Vokřínek]
9 17.4.2024 09 - Sokety a síťování [Jiří Vokřínek]
10 *24.4.2024 Samostudium
11 1.5.2023 Státní svátek
12 (Čt)9.5.2023 10 - Výkon a profilování [Jiří Vokřínek]
13 15.5.2023 11 - Uklízení odpadků a analýza úniku [Jiří Vokřínek]
14 22.5.2023 Samostudium doplňujících materiálů

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.

Aktualizace 2020/02/19 9:25

02 - Objektově orientované programování

Objektově orientované programování. Immutable. Dědičnost, kompozice a polymorfismus. Dispatch a double dispatch.

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.

Aktualizace 2017/03/09 7:42

04 - Výjimky a soubory

Výjimky. Soubory.

  • komentovaná prezentace (přístupná po fakultním přihlášení) video lekce 4

Aktualizace 2020/03/25 8:45 - přidáno video s komentovanou prezentací

05 - Vícevláknové aplikace 1

Paralelismus, synchronizace výpočetních toků, vícevláknové aplikace.

  • komentovaná prezentace (přístupná po fakultním přihlášení) video lekce 7

Aktualizace 2020/04/21 21:55 - přidáno video s komentovanou prezentací

06 - GUI

GUI v Javě, komponenty a kontejnery, dialogová okna (modalita).

  • komentovaná prezentace (přístupná po fakultním přihlášení) video lekce 5

Aktualizace 2020/04/07 15:35 - přidáno video s komentovanou prezentací

07 - GUI v Javě, událostmi řízené programování

GUI v Javě, Model-View-Controller, Event-Driven Programming, vnitřní třídy.

  • komentovaná prezentace (přístupná po fakultním přihlášení) video lekce 6

Aktualizace 2020/04/10 17:02 - přidáno video s komentovanou prezentací

08 - Vícevláknové aplikace 2

Vícevláknové aplikace - příklad GUI, vzor observer. Modely vícevláknových aplikací.

  • komentovaná prezentace (přístupná po fakultním přihlášení) video lekce 8

Aktualizace 2024/04/10 10:50 - přidán zjednodušený příklad CanvasDemo

09 - Sokety a síťování

Síťování, síťová API - soket, jednoduchý klient a server, boss/worker server/klient.

  • komentovaná prezentace (přístupná po fakultním přihlášení) video lekce 9

Aktualizace 2020/05/12 19:48 - přidáno video s komentovanou prezentací

Aktualizace 2021/04/14 10:30 - přidány zjednodušené příklady

10 - Výkon a profilování

Výkon aplikace, profilování v NetBeans, příklady.

  • prezentace: lecture10.pdf
  • zkrácená verze:
  • zkrácená verze 2×2:
  • přiložené demonstrační programy: 10.zip

11 - Uklízení odpadků a analýza úniku

Správa paměti, Garbage Collection, Escape Analysis a alokace na stacku.

  • prezentace: lecture11.pdf
  • zkrácená verze:
  • zkrácená verze 2×2:
  • přiložené demonstrační programy: 11.zip

Aktualizace 2019/09/05 11:22 - drobné opravy textu

Samostudium doplňujících materiálů

Concurrency Concepts in Java by Douglas Hawkins

  • model paměti, vliv hardware
  • chování vláken může být “zmatené”
  • immutable objekty, atomicita
  • relevantní k přednášce 5 a 8

Java Performance Puzzlers 2018 - New by Douglas Hawkins

  • výkonnost programu
  • zajímavé (a mnohdy neintuitivní) případy
  • JIT a dynamická optimizace
  • relevantní k přednášce 10 a 11
Podklady budou průběžné aktualizovány
courses/b0b36pjv/prednasky.txt · Last modified: 2024/04/17 12:39 by xvokrine