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+7D
Department:13136 Language of teaching:CS
Guarantors:Vokřínek J. Completion:Z,ZK
Lecturers:Mudroch M., Serédi L., Vokřínek J. Credits:6
Tutors:Too many persons Semester:L

Web page:

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

Anotation:

The course builds on the basics of algorithms and programming from the first semester and introduces students to the Java environment. The course also focus on the object concept of the Java language. The topics of the course includes exceptions, event handling, and building a graphical interface. Basic library methods, working with files and using generic types will be introduced. An important topic is models of multithreaded applications and their implementation. Practical exercises of practical skills and knowledge of Java is tested in the form of solving partial tasks and semester work, which will be submitted continuously through the source code version control system. The semester work scoring consists of points for the correctness and efficiency of the code, as well as points that take into account the quality of the source codes, their readability and reusability.

Study targets:

The aim of the course is to develop students' programming skills and expand their knowledge of programming languages by the basics and specifics of the Java programming language. The course is based on an object-oriented approach, students deepen their knowledge of programming methods and get acquainted with the Java programming interface for multithreaded programming, using data collections, exception handling, graphical user interface creation and event-driven programming.

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. Concept, history of the language and its development - Java Virtual Machine, installation of the development environment, translation and interpretation, syntax, primitives and basic constructs.
2. Object-oriented programming in Java programming language, classes, interfaces and objects; program structure, compilation and execution, passing parameters, applications and applets.
3. Program run control, basic data types, variables, operators, exceptions.
4. Arrays, strings, basic data collections and iterators.
5. Principles of object approach, classes and inheritance, access control, class hierarchy, inheritance, composition, abstract classes, polymorphism.
6. Data collections and generic data types.
7. Working with files, data streams, models of I / O operations.
8. Networking - methods and models of communication, network APIs in Java programming language, UDP, TCP and HTTP protocols. Client / server application.
9. Parallel programming - threads and models of multithreaded applications, synchronization primitives.
10. Example of multithreaded application and communication between threads; JNI interface.
11. Graphical user interface, events and listeners, Java 2D / 3D, AWT and Swing libraries.
12. User interface control, multimedia interface.
13. Distributed programming - serialization, interconnection of modules (middleware) and remote function calls, Java RMI interface and others, eg ICE.
14. Coding conventions and styles, translation management tools, logging; Reserve.

Literature:

Recommended literature:
1. Herout, P .: Java Language Textbook, Kopp, Č. Budějovice, 2000, p. 350.
2. Herout, P .: Java II Textbook, Kopp, Č. Budějovice, 2001, p. 350.
3. Eckel, B .: Thinking in Java, Prentice Hall, 2006, p. 1150.

Requirements:

Basic knowledge of algorithms and programming.

Subject is included into these academic programs:

Program Branch Role Recommended semester
BPSIT_2021 Common courses P 2
BPSIT4_2021 Technologie internetu věcí P 2
BPSIT3_2021 Business informatics P 2
BPSIT2_2021 Technologie pro multimédia a virtuální realitu P 2
BPSIT1_2021 Enterprise systémy 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 of Things 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 of Things P 2
BPOI1_2018 Artificial Intelligence and Computer Science P 2
BPSIT Common courses P 2


Page updated 28.3.2024 17:52:49, semester: Z/2023-4, Z/2024-5, L/2023-4, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)