Object-Oriented Programming (OOP) is programming paradigm based on the concept of classes and objects, which facilitates the efficient organization and structuring of programs. This module is designed for second-year students who have some knowledge of programming and is intended to prepare student for advanced software engineering modules.

In this course, students will learn the basic concepts of OOP, including encapsulation, inheritance, polymorphism, and abstraction. They will also learn how to design, develop, and implement object-oriented programs using java programming language. Additionally, the course covers the practical aspects of programming including file handling, collections, and graphical user interfaces GUI. By the end of the course, student will be able to develop OO programs to solve real-life problems.