This course broadens and deepens programming skills through object-oriented approach. It defines object type and shows how to create new object types (classes) and objects of that type in Java language. Usage of class members and necessity of class implementation concealment and means thereof are explained. Subclasses generation technique and essence of related inheritance is described. Students learn to overload inherited methods in descendant class. Students are shown how to transform object to its base type and what implied polymorphism means. Students are taught to use standard packages, and main attention is paid to creation and usage of dynamic data structures. This course introduces Java input/output structure and possibilities of usage of object collections. Usage of exceptions is explained. Tools for creation of graphical user interface (GUI) and design principles are explained. Students are explained how to create parallel concurrent tasks in Java language and how to synchronize their work. Students learn to use tasks to create simple client-server applications.
Requirements for passing the course: Exam.