{{indexmenu_n>4000}} ====== Přednášky 2014/2015 ====== ===== 1. Objektově orientované programování a polymorfismus ===== Organizace předmětu; objektově orientované programování a polymorfismus v Javě; Příklad polymorfismu a návrhový vzor Double Dispatch * prezentace: {{courses:a0b36pr2:lectures:2015:lecture01-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture01-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture01-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture01-demos.zip|}} ===== 2. Výjimky, výčtové typy a kolekce v Javě ===== Ošetření výjiměčných situací, kontrolované a nekontrolované výjimky, try-catch-finally, try-with-resources; výčtový typ; datové kolekce v Javě, Java Collection Framework (JFC), návrhový vzor Iterátor; generické typy * prezentace: {{courses:a0b36pr2:lectures:2015:lecture02-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture02-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture02-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture02-demos.zip|}} ===== 3. GUI v Javě ===== Grafické uživatelské rozhraní v Javě; AWT; Swing; Komponenty, kontejnery a správce rozvržení; kreslení grafických primitiv; dialogová okna; modální dialogy. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture03-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture03-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture03-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture03-demos.zip|}} Příklady GUI v Javě z předchozích běhů předmětu {{courses:a0b36pr2:lectures:2015:pr2-03-gui.zip|}} (pro inspiraci, neaktualizováno, kódovací konvence dle tehdejších zvyklostí). ===== 4. GUI v Javě a událostmi řízené programování ===== Grafické uživatelské rozhraní v Javě; Swing; návrhář GUI; Příklad aplikace, Model-View-Controller (MVC); Události a událostmi řízené programování (Event-Driven-Programming); vnitřní a vnitřní anonymní třídy. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture04-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture04-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture04-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture04-demos.zip|}} ===== 5. Vícevláknové aplikace ===== Paralení programování, procesy a role operačního systému; vlákna v operačním systému; problém souběhu, synchronizace vláken a monitor. Vlákna v Javě, vytvoření, synchronizace a komunikace mezi vlákny. Příklad vláken v GUI (Swing), návrhový vzor pozorovatel (observer) a SwingWorker. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture05-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture05-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture05-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture05-demos.zip|}} ===== 6. Vícevláknové aplikace - příklady ===== Modely vícevláknových aplikací. Paralelní programování a ladění, problém uváznutí a problém souběhu. Příklad kreslení do plátna, síťové komunikace a aplikací klient/server. Přednášky je koncipována seminární formou s demonstrací příklad, konkrétní náplň tak bude přizpůsobena dle dotazů. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture06-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture06-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture06-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture06-demos.zip|}} Demonstrační programy budou zvěřejněny po přednášce na základě dotazů a interakce během přednášky. Informovativní pro zájemce -- Síťování a sokety v Javě * prezentace: {{courses:a0b36pr2:lectures:2015:lecture06-net-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture06-net-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture06-net-handout-2x2.pdf|}} Informovativní pro zájemce -- Boss/Worker model v Klient/Server aplikaci * prezentace: {{courses:a0b36pr2:lectures:2015:lecture06-tdijserv-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture06-tdijserv-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture06-tdijserv-handout-2x2.pdf|}} ===== 7. Úvod do programovacího jazyka C ===== Jazyk C - překlad zdrojových kódů a linkování programu; příklad překladu programu a příklad programu s výstupem na standardní výstup. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture07-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture07-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture07-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture07-demos.zip|}} ===== 8. Jazyk C - část I ===== Jazyk C - syntax, proměnné, základní typy a literály; výrazy a operátory; příkazy a řízení běhu programu; pole, ukazatele, funkce a předávání parametrů; ukazatele a pole. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture08-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture08-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture08-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture08-demos.zip|}} ===== 9. Jazyk C - část II ===== Jazyk C - modifikátor const; ukazatel na konstantní proměnnou; konstantní ukazatel; ukazatel na funkci; definice typu typedef; struktury a uniony; dynamická alokace paměti; práce se soubory; funkce standardní knihovny C. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture09-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture09-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture09-handout-2x2.pdf|}} * zkrácená verze 3x3: {{courses:a0b36pr2:lectures:2015:lecture09-handout-3x3.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture09-demos.zip|}} ===== 10. Diskuse na testem, příklad C ===== Na přednášce si projdeme zadání testů a očekávané odpovědi. Zbytek přednášky bude věnován, praktickým ukázkám programování v C. Předpokládaný příklad v jazyce C: * prezentace: {{courses:a0b36pr2:lectures:2015:lecture10-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture10-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture10-handout-2x2.pdf|}} * zkrácená verze 3x3: {{courses:a0b36pr2:lectures:2015:lecture10-handout-3x3.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr2:lectures:2015:lecture10-demos.zip|}} ===== 11. Vyzvaná přednáška ===== Téma přednášky je: Statická analýza kódu - FindBugs; JConsole, VisualVM; Návrhové vzory * prezentace: {{courses:a0b36pr2:lectures:2015:lecture11-slides.pdf|}} ===== 12. Verzovací systémy - Test ===== Na přednášce se seznámíme se základní filozofií verzovacích systému (centralizovaných a distribuovaných). Vykládaná látka je informativní. Závěr přednášky bude věnován opravnému testu a zkouškovému testu. * prezentace: {{courses:a0b36pr2:lectures:2015:lecture12-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr2:lectures:2015:lecture12-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr2:lectures:2015:lecture12-handout-2x2.pdf|}} * zkrácená verze 3x3: {{courses:a0b36pr2:lectures:2015:lecture12-handout-3x3.pdf|}} ===== 13. Vyzvaná přednáška - Funkcionální prvky Java 8 ===== Na přednášce se seznámíme se základní filozofií verzovacích systému (centralizovaných a distribuovaných). Závěr přednášky bude věnován opravnému testu a premiovému zkouškovému testu.