English
Object-oriented programming in Java
Java is one of the most sought-after languages in the job market: it powers banking, telecommunications, and cloud services, enterprise applications, and Android apps. The course takes you from your first programs to complete applications and introduces tools used by professional development teams.
This course explores the Java programming language on JDK 27 in IntelliJ IDEA, from basic language constructs to object-oriented and generic programming, collections and the Stream API, file handling, the module system, Maven and Gradle build systems, and unit testing. In the final stage, you learn to work with databases through JDBC and create graphical applications with JavaFX. Each topic combines a lecture with a lab assignment.
Course syllabus
Java language fundamentals
- The Java platform and JDK 27, IntelliJ IDEA, program structure, and the Git version control system
- Data types, variables, operations, console input/output, and control flow constructs
- Methods, arrays, and strings: String, StringBuilder, and text blocks
- Exception handling and debugging programs
Object-oriented programming
- Classes and objects: fields, methods, constructors, encapsulation, and packages
- Inheritance, polymorphism, and the Object class
- Abstract classes, interfaces, and nested classes
- Records, enumerations (enum), sealed classes, and pattern matching
- Generic programming (generics)
Standard library and tools
- Java Collections Framework collections: lists, sets, queues, and maps
- Lambda expressions, functional interfaces, and the Stream API
- File handling: input/output streams, NIO.2, and object serialization
- The Java module system, Maven and Gradle build systems, and unit testing with JUnit
Databases and graphical applications
- Working with relational databases through JDBC
- Creating graphical applications with JavaFX: scenes, controls, layout, and events
- MVC architecture, data binding, and database access in JavaFX applications
Required software
| Software | Purpose | Topic |
|---|---|---|
| OpenJDK 27 | Java compiler and virtual machine | 1 |
| IntelliJ IDEA | Development environment | 1 |
| Git | Version control | 1 |
| Apache Maven 3.9 | Build tool | 13 |
| Gradle 9.7 and JDK 25 for the Gradle process | Second build tool | 13 |
| PostgreSQL 18 with psql | Database management system | 14 |
| Scene Builder | Visual FXML editor | 15 |
Maven downloads JUnit, the pgJDBC driver and JavaFX as project dependencies. For SQL queries you can use DataGrip or the Database window in IntelliJ IDEA.
How a course is organized
A course is divided into topics. Each topic corresponds to one lecture and one lab assignment and has four parts:
- Lecture. The theory is split into chapters in reading order, with code examples, diagrams and program output.
- Practice. Worked examples with complete code that show how to do the lab assignment.
- Tasks. 30 variants of the lab assignment, each at three levels of difficulty: 1 – initial, 2 – basic, 3 – advanced. Every task is self-contained, so you can start right away at the level you choose.
- Summary. The topic’s conclusions, self-check questions and useful links.
To prepare for assessment, every course also has Review questions, Review tasks, Useful links and Recommended reading.
How to study
- Open your course and install the development environment named on the course page. The first topic of each course explains how, except “Object-oriented programming in C# II”, which uses the environment from the “Object-oriented programming in C# I” course.
- Read the lecture chapters in order. Type in and run the examples yourself rather than just reading them.
- On the Practice page, first try to solve the problem yourself, then compare your solution with the worked one.
- On the Tasks page, find your variant (your teacher gives you its number) and choose a level of difficulty.
- Check yourself with the questions on the Summary page, and only then move on to the next topic.
- Before the exam, go over the Review questions and solve a few Review tasks.
Navigation
The topics and their chapters are listed in the menu on the left (on a phone, open it with the “Menu” button). The “Next page” button at the bottom of every page follows the course program, and the “On this page” list on the right takes you to a section.
Course materials
- Review questions — 100 questions covering the course topics for self-checks and exam preparation
- Review tasks — practical tasks by topic
- Useful links — documentation and online resources
- Recommended reading — textbooks and guides