Object-oriented Programming in Java introduces the concept of the object-oriented programming and Java programming language to the students.
Last update: Kubová Petra Ing. (02.01.2018)
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í.
Aim of the course -
Last update: Kubová Petra Ing. (02.01.2018)
Students will be able to:
Understand Java programming namely object oriented approach and libraries for streams, files, graphical user interface, JCF, net-communications, multimedia and database connections
on a good level.
Develop a standalone application in Java 2 standard edition, version 5 or 7, which has object-oriented concept, graphical user interface, persistence using streams or database.
Last update: Kubová Petra Ing. (02.01.2018)
Student bude umět:
vytvořit program v programovacím jazyku Java s využitím objektového paradigmatu
budou mít přehled v knihovnách pro práci se soubory, proudy, sítěmi, kolekcemi, databázemi a vícevláknové programování
budou znát přínosy verzí Java 5 a Java 7 s ohledem na změny v jazyku a tyto výhody budou aktivně využívat
Literature -
Last update: Svozil Daniel prof. Mgr. Ph.D. (26.03.2019)
R: B. Eckel: Thinking in Java, 4th ed. 2006
R: R. Pecinovský: Java 9 - Kompletní příručka jazyka, Grada 2018
R: P. Herout: Učebnice jazyka Java - 5. vydání, Kopp 2010
R: H. Schildt: Java 8, Computer Press 2016
A: R. Pecinovský, A. Havelka: JUnit 5 - Jednotkové testování na platformě Java, Grada 2018
Last update: Svozil Daniel prof. Mgr. Ph.D. (26.03.2019)
Z: B. Eckel: Thinking in Java, 4th ed. 2006
Z: R. Pecinovský: Java 9 - Kompletní příručka jazyka, Grada 2018
Z: P. Herout: Učebnice jazyka Java - 5. vydání, Kopp 2010
Z: H. Schildt: Java 8, Computer Press 2016
D: R. Pecinovský, A. Havelka: JUnit 5 - Jednotkové testování na platformě Java, Grada 2018
Learning resources -
Last update: Kubová Petra Ing. (02.01.2018)
https://edux.fit.cvut.cz/courses/BI-OPJ/
(login necessary)
Last update: Kubová Petra Ing. (02.01.2018)
https://edux.fit.cvut.cz/courses/BI-OPJ/
(nutné přihlášení)
Syllabus -
Last update: Kubová Petra Ing. (02.01.2018)
1. Introduction to OOP and Java, history, development and Java concepts.
2. OOP, variables, expressions, primitives, classes and objects.
3. Classes, objects, inheritance, catching and handling exceptions, try-catch and Autoclosable in Java 7, Run Time Type Identification.
4. Arrays in Java and java.util.Arrays API, collections and JCF
5. Input and Output, files and streams, serialization, java.io and java.nio libraries
6. Threads and processes, interaction, synchronization, programming of multi-threaded applications.
7. Java and Internet, net communication, client-server architecture.
8. Graphical user interface in Java, AWT, Swing, layout managers, events, containers and components, listeners and adapters.
9. Swing, applets and images.
10. Databases, JDBC, interfaces Connection, Statement, PreparedStatement and ResultSet
11. Remote Method Invocation, inner and nested classes, local classes.
12. Differences between Java versions 5 and 7, Enum, generics.
13. Documentation, JAR, logging, regular expression in Java, JNI.
Last update: Kubová Petra Ing. (02.01.2018)
1. Primitivní datové typy a operace s nimi, úvod do OOP.
2. OOP, třídy, objekty, konstruktory, popis API základních tříd a jednoho rozhraní.
3. Výjimky, jejich šíření a ošetření, Autoclosable v Javě 7 a vylepšení příkazu try, příkaz assert, polymorfismus a RTTI ( Run Time Type Identification ).
4. Pole a API třídy java.util.Arrays, kolekce - taxonomie, implementace, časové složitosti operací, vhodná nasazení, 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 a java.nio.
6. Vlákna a procesy, jejich interakce, synchronizace. Programování vícevláknových aplikací na vícejádrových procesorech.
7. Síť a java.net, Java a Internet, základní pojmy (IP, TCP, URL, port DNS), socketové x datagramové spojení, klient - server architektura.
8. Knihovny pro práci s GUI, AWT, SWING, SWT, události: zásady návrhu grafického uživatelského rozhraní, knihovna java.awt, správci rozvržení, metrika, kontejnery a komponenty, Graphics, Font a Color. Delegační model zpracování událostí, Listenery a Adaptery, zdroje událostí, obslužné metody, Focus a MVC,
9. Swing, aplety a obrázky: řídící komponenty, informační komponenty, kontejnery, aplety, životní cyklus apletu, včlenění apletu do HTML stránky, předávání parametrů apletům, komunikace apletů mezi sebou, obrázky, vykreslení, transformace.
10. 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. Návrhový vzor DAO.
11. RMI = Remote Method Invocation, vnitřní a vnořené třídy, lokální třídy.
12. Odlišné vlastnosti Javy 5, Javy 7 a starších verzí, pokročilé využití Enum, generika, použití, definice vlastních generických tříd a metod.
13. Dokumentace, JAR, logování, regulární výrazy a jejich využití při vyhledávání, JNI.
Registration requirements -
Last update: Kubová Petra Ing. (02.01.2018)
none
Last update: Kubová Petra Ing. (02.01.2018)
žádné
Course completion requirements - Czech
Last update: Svozil Daniel prof. Mgr. Ph.D. (07.02.2018)
Pro zı́skánı́ zápočtu je potřeba dostatek bodů ze semestrální práce a ze zápočtových testů. Zkouška se skládá z povinné pı́semné části a z volitelné ústnı́ části.
Teaching methods
Activity
Credits
Hours
Účast na přednáškách
1
28
Příprava na přednášky, semináře, laboratoře, exkurzi nebo praxi