Programming in Java

The course is not on the list Without time-table
Code Completion Credits Range Language
B0B36PJV Z,ZK 6 2P+3C+7D Czech
During a review of study plans, the course B4B36PJV can be substituted for the course B0B36PJV.
It is not possible to register for the course B0B36PJV if the student is concurrently registered for or has already completed the course A0B36PR2 (mutually exclusive courses).
It is not possible to register for the course B0B36PJV if the student is concurrently registered for or has already completed the course B4B36PJV (mutually exclusive courses).
During a review of study plans, the course A0B36PR2 can be substituted for the course B0B36PJV.
Garant předmětu:
Department of Computer Science

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.


Basic knowledge of algorithms and programming.

Syllabus of lectures:
Syllabus of tutorials:

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.

Study Objective:

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.

Study materials:

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.

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2024-06-16
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet5010706.html