Programování v Javě
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-PJV | Z,ZK | 4 | 2P+2C | česky |
- Garant předmětu:
- Miroslav Balík
- Přednášející:
- Miroslav Balík
- Cvičící:
- Miroslav Balík, Jan Blizničenko
- 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 2024/2025:
-
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 Út St Čt Pá - Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, pro fázi studia bez oboru, 2015-2020 (VO, volitelný předmět)
- Bc. obor Bezpečnost a informační technologie, 2015-2020 (volitelný předmět)
- Bc. obor Teoretická informatika, 2015-2020 (volitelný předmět)
- Bc. obor Počítačové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Informační systémy a management, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Počítačová grafika, 2015-2020 (volitelný předmět)
- Bc. obor Znalostní inženýrství, 2018-2020 (povinný předmět oboru, volitelný předmět)
- Bc. specializace Informační bezpečnost, 2021 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2021 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2021 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2021 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2021 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2021 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2021 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2021 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2021 (volitelný předmět)
- Study plan for Ukrainian refugees (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2024 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2024 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2024 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2024 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2024 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2024 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2024 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2024 (volitelný předmět)