Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2022/2023

Programování v Javě

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BI-PJV Z,ZK 4 2P+2C česky
Přednášející:
Miroslav Balík (gar.)
Cvičící:
Miroslav Balík (gar.), Jan Blizničenko, Jiří Borský, Jan Zimolka
Předmět zajišťuje:
katedra softwarového inženýrství
Anotace:

Předmět Programování v Javě uvede studenty do objektově orientovaného programování v programovacím jazyku Java. Kromě samotného jazyka budou probrány základní knihovny pro práci se soubory, proudy, sítěmi, kolekcemi, databázemi a vícevláknové programování.

Požadavky:

Základní programovací schopnosti v libovolném imperativním programovacím jazyce (např. dokončený kurz PA1). Doporučeno mít absolvovaný nebo souběžně zapsaný kurz PA2.

Osnova přednášek:

1. Úvod, historie jazyka Java, edice a verze, operátory a jejich priorita, první spustitelný kód.

2. Klíčová slova, tvorba programu, jeho spuštění, pojmy třída, atribut, metoda, dědičnost a zapouzdření.

3. Dědění mezi třídami, abstraktními třídami a rozhraními, dědičnost atributů, zastínění, překrytí, konstruktory.

4. Polymorfismus, výjimky, jejich dělení, vytváření, šíření programem a ošetření.

5. Pole, parametrizované třídy (genericita), kolekce, řazení, porovnávání, hashování.

6. Vstup a výstup: Zjištění informací o OS, o souborovém systému, práce se soubory, textové a binární proudy, serializace.

7. StreamAPI, lambda výrazy, funkční rozhraní.

8. Vlákna: Vícevláknové aplikace, synchronizace vláken, jejich životní cyklus, priority, přerušení, běžné problémy.

9. Síťování v Javě: Základní pojmy, rozdíly mezi TCP a UDP, třídy pro síťovou komunikaci, architektura klient-server.

10. Tvorba GUI a knihovna JavaFX: její základní části a třídy, práce s FXML, responzitní design, rozložení prvků, ovládací prvky.

11. JavaFX události, animace, přechody a transformace.

12. Databáze: Základy relačních DB, připojení k DB pomocí Javy, třídy pro spouštění příkazů, zpracování dat získaných dotazy, datové typy SQL vs. datové typy Javy.

13. (pokud má semestr 13 týdnů) Novinky v Javě 9 a novějších.

Osnova cvičení:

1. Úvod do předmětu, porovnání Javy vs C/C++, první spustitelný kód.

2. Klíčové pojmy, první program, jeho spuštění, pojmy třída, atribut, metoda, dědičnost a zapouzdření, immutabilita.

3. Dědění mezi třídami, abstraktními třídami a rozhraními, dědičnost atributů, zastínění, překrytí, konstruktory, pole.

4. Základy kolekcí, přehled jejich typů, implementací a praktické použití, parametrizované třídy (genericita).

5. Pokročilé kolekce, mapa a její implementace, hashování.

6. Vstup a výstup: Práce se soubory, textové a binární proudy, serializace.

7. StreamAPI, lambda výrazy, funkční rozhraní.

8. Vlákna: Vícevláknové aplikace, synchronizace vláken, problém producent-konzument.

9. Síťování v Javě: Základní pojmy, třídy pro síťovou komunikaci, praktické použití TCP s architekturou klient-server.

10. Tvorba GUI a knihovna JavaFX: Práce s FXML, rozložení prvků, ovládací prvky, nástroje pro práci s JavaFX.

11. Práce s JavaFX pomocí programovaní.

12. Databáze: Základy relačních DB, připojení k DB pomocí Javy, třídy pro spouštění příkazů, zpracování dat získaných dotazy.

13. (pokud má semestr 13 týdnů) Konzultace

Cíle studia:

Cílem je naučit studenty programovací jazyk Java a aktivní schopnost využívání základních knihoven Javy.

Studijní materiály:

Eckel, B.: Thinking in Java, Fourth Edition, pdf volně ke stažení

Poznámky a slidy z přednášek a cvičení, testy

Pecinovský, R.: Java 9 - Kompletní příručka jazyka, 2018

Herout, P.: Učebnice jazyka Java, Kopp, 2007

Keogh, J.:Java bez předchozích znalostí, Computer Press, 2005

Virius, M.: Java pro zelenáče, Neocortex, 2001

Zakhour, S: Java 6, výukový kurz, CPress, Brno, 2007

Troníček, Z: Programovaci jazyk Java, 2007

(http://java.cz/article/ucebnicejazykajava)

Eckel, B.: Myslíme v jazyku Java, Grada, 2000, I + II

Poznámka:

Informace o předmětu a výukové materiály naleznete na https://moodle-vyuka.cvut.cz/course/search.php?search=BI-PJV

Další informace:
https://moodle-vyuka.cvut.cz/link/course.php?cx=BI-PJV
Rozvrh na zimní semestr 2022/2023:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
místnost TH:A-s135
Balík M.
12:45–14:15
(přednášková par. 1)
Thákurova 7 (FSv-budova A)
As135
místnost T9:303
Balík M.
14:30–16:00
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT PC ucebna
místnost T9:303
Balík M.
16:15–17:45
(přednášková par. 1
paralelka 102)

Dejvice
NBFIT PC ucebna
Út
St
Čt

místnost T9:303
Blizničenko J.
14:30–16:00
(přednášková par. 1
paralelka 103)

Dejvice
NBFIT PC ucebna
Rozvrh na letní semestr 2022/2023:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
místnost T9:107
Balík M.
11:00–12:30
(přednášková par. 1)
Dejvice
Posluchárna
místnost T9:351
Balík M.
14:30–16:00
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT PC ucebna
místnost T9:351
Balík M.
16:15–17:45
(přednášková par. 1
paralelka 102)

Dejvice
NBFIT PC ucebna
Út
místnost TK:PU1
Borský J.
Zimolka J.

14:30–16:00
(přednášková par. 1
paralelka 105)

Dejvice
NTK PU 1
St
místnost T9:348
Blizničenko J.
11:00–12:30
(přednášková par. 1
paralelka 103)

Dejvice
NBFIT PC ucebna
místnost T9:348
Blizničenko J.
12:45–14:15
(přednášková par. 1
paralelka 104)

Dejvice
NBFIT PC ucebna
Čt

Předmět je součástí následujících studijních plánů:
Platnost dat k 5. 2. 2023
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet1336206.html