Advanced OOP Concepts
Department of Information and Communications Technology
Enrollment in this course is by invitation only

Course Overview
This course introduces the additional principles and practices of Object Oriented (OO) programming. Topics include inheritance and multiple inheritance; polymorphism; software design techniques; and problem solving. The concepts will be reinforced by application in the Python programming language.
What You Will Learn
At the end of this course, you will be able to:
- become familiar with the Object Oriented paradigm for use in future programming projects
- understand the concepts of inheritance and polymorphism and how they can be used to implement programming solutions
- learn software design techniques based on the OO paradigm
- solve problems by applying the concepts under the OO paradigm
Course Content
Week 1: Review of Object Oriented Concepts
13 Videos | 1 Activity
13 Videos
- Welcome to the course!
- Classes
- Objects
- Abstraction
- Encapsulation
- Summary
1 Activity
- Exit Assessment
Week 2: Inheritance and Polymorphism
6 Videos | 1 Activity
6 Videos
- Definition
- Examples
- Application in Python
- Summary
1 Activity
- Exit Assessment
Week 3: Object Oriented Design
5 Videos | 1 Activity
5 Videos
- What is Object Oriented Design?
- Single-responsiblity Principle
- Open-closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Summary
1 Activity
- Exit Assessment
Week 4: Problem Solving in the OO Environment
9 Videos | 1 Activity
9 Videos
- Definition
- Examples and Application in Python
- Technical Debt (2 videos)
- High Cohesion (2 videos)
- Loose Coupling (2 videos)
- Key Takeaways
1 Activity
- Exit Assessment