Subject description - B0B36PJV

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
B0B36PJV Programming in Java
Roles:P Extent of teaching:2P+3C
Department:13136 Language of teaching:CS
Guarantors:Vokřínek J. Completion:Z,ZK
Lecturers:Vokřínek J. Credits:6
Tutors:Too many persons Semester:L

Anotation:

Předmět navazuje na základy algoritmizace a programování z prvního semestru a uvádí studenty do prostředí Java. Předmět je vybudován na znalosti objektové koncepce jazyka Java. Součástí seznámení s koncepcí jazyka Java jsou výjimky, zpracování událostí a budování grafického rozhraní. Budou představeny základní knihovní metody, práce se soubory a použití generických typů. Důležitým tématem jsou modely vícevláknových aplikací a jejich implementaci. Praktická cvičení praktických dovedností a znalostí Java formou řešení dílčích úloh a semestralní práce, které budou odevzdávány průběžně prostřednictvím systému pro správu zdrojových souborů. Bodové hodnocení úlohy se skládá z bodů za správnost a efektivitu kódu, dále pak z bodů zohledňující kvalitu zdrojových kódů, jejich čitelnost a znovu použitelnost.

Study targets:

Cílem předmětu je rozvinutí programovacích dovedností studentů a rozšíření jejich znalostí o programovacích jazycích o základy a specifika programovacího jazyka Java. Předmět vychází z objektového přístupu, studenti si prohloubí znalosti o způsobech programování a seznámí se s Java programovým rozhraním pro vícevláknové programování, s využitím datových kolekcí, zpracováním výjimek, tvorbou grafického uživatelského rozhraní a událostmi řízeným programováním.

Course outlines:

1. Koncepce, historie jazyka a jeho vývoj - Java Virtual Machine, instalace vývojového prostředí, překlad a interpretace, syntaxe, primitiva a základní konstrukty.
2. Objektově orientované programování v programovacím jazyku Java, třídy, rozhraní a objekty; struktura programu, kompilace a spuštění, předávání parametrů, aplikace a aplety.
3. Řízení běhu programu, základní datové typy, proměnné, operátory, výjimky.
4. Pole, řetězce, základní datové kolekce a iterátory.
5. Principy objektového přístupu, třídy a dědičnost, řízení přístupu, hierarchie tříd, dědění, kompozice, abstraktní třídy, polymorfismus.
6. Datové kolekce a generické datové typy.
7. Práce se soubory, datové proudy, modely I/O operací.
8. Síťování - způsoby a modely komunikace, síťová API v programovacím jazyku Java, protokoly UDP, TCP a HTTP. Aplikace klient / server.
9. Paralelní programování - vlákna a modely vícevláknových aplikací, synchronizační primitiva.
10. Příklad vícevláknové aplikace a komunikace mezi vlákny; rozhraní JNI.
11. Grafické uživatelské rozhraní, události a listenery, Java 2D/3D, knihovny AWT a Swing.
12. Ovládání uživatelských rozhraní, multimediální rozhraní.
13. Distribuované programování - serializace, propojování modulů (middleware) a vzdálené volání funkcí, rozhraní Java RMI a další, např. ICE.
14. Kódovací konvence a styly, nástroje pro řízení překladu, logování; rezerva.

Exercises outline:

1. Vývojové prostředí a odevzdávání úloh.
2. Překlad a spuštění programu, dokumentace (javadoc), základy Java kódovací konvence a stylu.
3. Nástroje pro sestavení programu (ant, maven), základní dostupné třídy v Java Class Library.
4. Proměnné, výrazy, předávání parametrů programu a spuštění programu.
5. Řízení běhu programu, řetězce, cykly, prioritní fronta
6. Zadání semestrální práce
7. Třídy, objekty a dědičnost; struktura programu, incializace objektů a správa paměti
8. Polymorphismus
9. Generické datové typy
10. Načítání a ukládání souborů
11. Síťování
12. Vícevláknové aplikace
13. Grafické uživatelské rozhraní
14. Serializace a distribuované programování

Literature:

Doporučená literatura:
1. Herout, P.: Učebnice jazyka Java, Kopp, Č. Budějovice, 2000, s. 350.
2. Herout, P.: Učebnice jazyka Java II, Kopp, Č. Budějovice, 2001, s. 350.
3. Eckel, B.: Thinking in Java, Prentice Hall, 2006, s. 1150.

Requirements:

Základní znalost algoritmizace a programování.

Webpage:

https://cw.fel.cvut.cz/wiki/courses/b0b36pjv

Subject is included into these academic programs:

Program Branch Role Recommended semester
BPSIT Common courses P 2
BPOI_BO_2018 Common courses P 2
BPOI4_2018 Computer Games and Graphics P 2
BPOI3_2018 Software P 2
BPOI2_2018 Internet things P 2
BPOI1_2018 Artificial Intelligence and Computer Science P 2
BPOI1_2016 Computer and Information Science P 2
BPOI_BO_2016 Common courses P 2
BPOI4_2016 Computer Games and Graphics P 2
BPOI3_2016 Software P 2
BPOI2_2016 Internet things P 2


Page updated 22.10.2020 17:52:05, semester: Z,L/2020-1, L/2019-20, Z/2021-2, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)