Pokročilé programování v jazyce Java
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
A4B77JVA | Z,ZK | 6 | 2P+2C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra kybernetiky
- Anotace:
-
Cílem předmětu je poskytnout studentum ucelenou výuku programovacího jazyka
Java. Vyuka bude postupovat od základu jazyku na bázi virtualního stroje,
memory managementu s garbage collectorem, datových struktur, exception
handlingu, classloaders a bootclassloader, a objektového programováni.
Mimoto bude podán výklad o struktuarilizaci programu, tvorbě aplikace a
appletu, debugováni, odhalováni deadlocku, nástrojích pro programováni v
týmech, analyzátory kódu a základních optimalizačních technikách. Budou
představeny také základní moduly pro tvorbu uživatelského rozhraní, práci s
vlákny, synchronizaci, a souborovém a síťovém rozhraní.
- Požadavky:
-
Programování 1 a 2, Algoritmizace
- Osnova přednášek:
-
1. koncepce jazyků na bázi virtualního stroje, srovnáni s jinými
jazyky, přehled výhod a nevýhod; kompilace, decompilery,
obfuscatory
2. struktuarilizace programu, packages, základní programy: aplikace,
applet
3. datové struktury - primitiva, pole; memory management s garbage
collectorem
4. objekty - dědičnost, metody, modifikátory, generics; iterfaces
5. práce s vyjímkami, ošetření vyjímek
6. streamy, vstupně/výstupní operace, síťová komunikace
7. vlákna, synchronizace, atomické typy, non-blocking algoritmy
8. komponenty pro tvorbu grafického rozhraní, popis základních
konstrukcí
9. rohraní pro práci s akcelerovanou grafikou - OpenGL, Java3D
10. classloaders, reflektivní operace, serializace, externalizace
11. popis RMI - architektura, podpurné komponenty, vztah k jiným
technologiím CORBA, atd.
12. rozhraní pro nativní volání, jejich užitečnost pro specializované
operace - hardware, grafika
13. nástroje pro programovaní v týmech, odlaďovaní chyb, testovaní
14. analyzatory kódu, základní optimalizační techniky
- Osnova cvičení:
-
1. spouštění kompiléru, spouštění JVM, konfigurační atributy spouštění
se zaměřením na optimalizaci, ladění, režimy zobrazující interní
stavy JVM jako je JIT, heap states
2. seznámení se základním vývojovým prostředím, vytváření aplikací a
appletu
3. demonstrace chování JVM na složitějších programech s důrazem na
memory management a jeho vnitřní stavy
4. zadání semestrální úlohy a jejích jednotlivých podčástí, práce na 1. části
5. odevzdání 1.části, přestavení vzorového řešení, práce na 2.části
6. odevzdání 2.části, přestavení vzorového řešení, práce na 3.části
7. odevzdání 3.části, přestavení vzorového řešení, práce na 4.části
8. odevzdání 4.části, přestavení vzorového řešení, práce na 5.části
9. odevzdání 5.části, přestavení vzorového řešení, práce na 6.části
10. odevzdání 6.části, přestavení vzorového řešení, práce na poslení
části
11. odevzdání poslední části, profilovaní kompletní aplikace -
performace i paměť
12. prezentace provedených měření, identifikace kritických části
vzhledem k provedenému měření, optimalizace aplikace
13. představení a zdůvodnění provedených změn a jejich vlivu na
komplexní chování
14. rezerva, udělení zápočtu
- Cíle studia:
- Studijní materiály:
-
- W. C. Richardson, D. Avondolio, S. Schrager, M. W. Mitchell,
J. Scanlon: Professional Java JDK 6 Edition
- A. Silberschatz, P. B. Galvin, G. Gagne: Operating System COncepts
with Java
- C. Austin, M. Pawlan: Advanced Programming for the Java 2 Platform
- K. Beck: Test Driven Development: By Example
- Poznámka:
-
Rozsah výuky v kombinované formě studia: 14p+6c
- Další informace:
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů: