The Object-Oriented Programming (OOP) course covers the fundamental concepts of OOP, such as Encapsulation and Information-Hiding, Inheritance, Polymorphism, and Abstraction. The course uses Java Programming language starting from the basic Java syntax based on Eclipse IDE. It focuses on the understanding and practical mastery of OOP principles and java components, such as classes, objects, input/output, scanner objects (to read either from the keyboard or a file), loops, decision-making, array and multidimensional array, data abstraction, methods, method overloading, objects garbage-collector, an introduction to exception-handling, etc. Finally, it presents an Introduction to JavaFX and its Hierarchy based on Java inheritance OOP concepts, for developing rich client applications.