ECTS credits: 5
Lectures: 1
Exercises: 3

Course objective:

Presentation of Java programming language, basis of object-oriented programming and application development in Java.

Course contents:

History of Java programming language. Characteristics of Java virtual machine. Comparison of possibilities and syntax of Java with other object oriented languages. Presentation of program tools and a platform. Application development by instancing objects from the existing classes and development of own classes. Components and interfaces. Inheritance. Processing errors and exceptions. Dynamic data structure and standard Java packages. Generic programming. Multi-thread programming. Web applications programming. Java applets. Reflective program structures. Java templates. Design of program documentation for Java programs. Using lambda expressions in programming. Implementing Java applications using files. Implementing a graphical interface using JavaFX technology. Connecting a Java application to a database.

Competences:

Student shall be presented with the characteristics and syntax of Java programming language, and by resolving concrete program tasks, the student shall obtain practical knowledge and experience. Understanding of Java specificities in relation to other object-oriented language. Acquisition of skills for independent programming of simple JAVA applications.

Learning outcomes:

Having passed the exam, the student will be able to: 1. Write a programming code for a Java Swing application which will use a graphic interface and a database. 2. Select development option in Java if it is appropriate for the solution of a given problem. 3. Organize parts of applications into classes, interfaces and pcakages in accordance with object oriented programming principles. 4. Develop Java Swing applications which solve practical problems of various kinds. 5. Self-evaluate the suitability of Java programming language for solving a given practical problem. 6. Organize development environment Eclipse for the effective development of JavaFX applications. 7. Design a Java application class structure to be adjusted for subsequent extensions. 8. Discover the possibilities of expanding the application using "open source" libraries. 9. Convert existing application solutions to the Java programming language. 10. Combine knowledge of other programming languages with the Java programming language. 11. Critically judge the advantages and disadvantages of the Java programming language with respect to other programming languages. These outcomes contribute to the learning outcomes of the study program: - Use the functionalities of contemporary engineering tools (5). - Develop software applications by using contemporary structural, procedural and object programming languages (6).