This course explores the principles, concepts, and best practices of object-oriented programming through a combination of theoretical understanding and practical implementation. This course covers key aspects of object-oriented programming, such as classes and objects; inheritance; polymorphism; abstraction; encapsulation; design patterns; exception handling; object-oriented analysis and design; software development life cycle; database connections and data manipulation; and testing and debugging. This course uses programming tools and programming languages. This course requires ICT-201 and ICT-202 as prerequisites.