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

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, Vojtěch Knaisl
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, vícevláknové programování, lambda výrazy a STREAM API a novinky v Javě 9 - 13.

Požadavky:

Základní programovací schopnosti v libovolném imperativním programovacím jazyce, například C.

Osnova přednášek:

1. Historie jazyka Java, primitivní a objektové datové typy a operace s nimi, úvod do OOP.

2. Objekty, konstruktory, popis API základních tříd a rozhraní.

3. Výjimky a příkaz assert, polymorfismus a RTTI ( Run Time Type Identification ).

4. Pole a API třídy java.util.Arrays, kolekce a související API, utility.

5. Vstup, výstup: základní pricipy pro ukládání dat, znakové x bytové proudy, vstupní x výstupní proudy, třída File, proudění rourou, serializace a deserializace objektů, komprese dat, třída RandomAccessFile, knihovny java.io, java.nio a NIO2, třídy Files, Path a Paths.

6. Lambda výrazy, Stream API, StringJoiner

7.Vlákna a procesy, jejich interakce, synchronizace, knihovna java.util.concurent, Fork and Join, moderní způsoby paralelizace v Javě.

8. Java a Internet, základní pojmy (IP, TCP, URL, port DNS), socketové x datagramové spojení, klient - server architektura.

9. GUI v Javě, přehled knihoven Java FX - principy, stavební kameny, řídící prvky

10. Java FX pokračování, události, animace a další.

11. Databáze: připojení k databázím, typy připojení, JDBC, rozhraní Connection, Statement a ResultSet, vybrané příkazy SQL, datové typy SQL vs. datové typy Javy.

11. RMI = Remote Method Invocation, vnitřní a vnořené třídy.

12. Pokročilé využití Enum, generika, použití, definice vlastních generických typů, novinky va Javě ve verzích vyšších než Java 8.

13. Dokumentace, JAR, logování, regulární výrazy, rezerva.

Osnova cvičení:

1. Struktura třídy, první program v Javě, prostředí (IDE) NetBeans - projekt, balíček, třída, main.

2. Datové typy a operace s nimi, úvod do OOP.

3. Objekty, konstruktory, setry a getry, zapozdření.

4. Výjimky a příkaz assert, polymorfismus.

5. Pole a API třídy java.util.Arrays, kolekce.

6. Kolekce II, vstup, výstup, znakové x bytové proudy, vstupní x výstupní proudy, třída File, proudění rourou, serializace a deserializace objektů.

7. Vlákna a procesy, jejich interakce, synchronizace.

8.Síť a java.net, Java a Internet, socketové x datagramové spojení, klient - server architektura, producent - konzument a synchronizace.

9. Grafické uživatelské rozhraní, události: zásady návrhu grafického uživatelského rozhraní, knihovna java.awt, správci rozvržení, metrika, kontejnery a komponenty.

10. Listenery a Adaptery, zdroje událostí, obslužné metody, Swing, řídící komponenty, informační komponenty, kontejnery, aplety, obrázky, vykreslení, transformace.

11. Databáze: připojení k databázím, typy připojení, JDBC, rozhraní Connection, Statement a ResultSet, vybrané příkazy SQL, datové typy SQL vs. datové typy Javy.

12. Vnitřní a vnořené třídy - motivace a použití.

13. Výčtový typ Enum, pokročilé využití Enum, generika, použití, definice vlastních, dokumentace, JAR, logování, regulární výrazy.

Cíle studia:

Cílem je naučit studenty programovací jazyk Java a aktivní schopnost využívání 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/view.php?id=2265

Další informace:
https://moodle-vyuka.cvut.cz/course/view.php?id=2265
Rozvrh na zimní semestr 2019/2020:
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:155
Balík M.
16:15–17:45
(přednášková par. 1)
Dejvice
Posluchárna
Út
místnost T9:303
Knaisl V.
09:15–10:45
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT PC ucebna
místnost T9:303
Knaisl V.
11:00–12:30
(přednášková par. 1
paralelka 102)

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

Dejvice
NBFIT PC ucebna
místnost T9:303
Blizničenko J.
16:15–17:45
(přednášková par. 1
paralelka 105)

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

Dejvice
NBFIT PC ucebna
St
Čt
místnost T9:303
Balík M.
09:15–10:45
(přednášková par. 1
paralelka 106)

Dejvice
NBFIT PC ucebna
místnost T9:303
Balík M.
11:00–12:30
(přednášková par. 1
paralelka 107)

Dejvice
NBFIT PC ucebna

Rozvrh na letní semestr 2019/2020:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 18. 10. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1336206.html