CCOBJPGL-PY - Object-Oriented Programming in Python
This repository contains all of the python code implementations of each topic in the course outline for object oriented programming.
Folder Name | Topic |
---|---|
week_1-2 | Review of OOP Basics (Encapsulation, Inheritance, Polymorphism) |
week_3 | Forms of Inheritance |
week_4 | Programming by Contract |
week_5 | Subtyping versus Subclassing |
week_6 | Double dispatch |
week_7 | Multiple Inheritance |
week_8-9 | Formal Models of OOP System (Unified modeling language and formal specification languages) |
week_10-13 | Design Patterns (Creational, Structural, Behavioral, Model-View-Controller) |
This repository contains all of the Python code implementations for each topic covered in the course outline for Object-Oriented Programming.
This repository contains all of the python code implementations of each topic in the course outline for object oriented programming.
In this lesson, review the fundamental concepts of object-oriented programming, including encapsulation, inheritance, and polymorphism. Explain how these concepts are used to create modular and reusable code.
In this lesson, explore different forms of inheritance, such as single inheritance, multiple inheritance, and multi-level inheritance. Discuss the advantages and considerations of each form and provide examples to illustrate their usage.
In this lesson, introduce the concept of programming by contract. Explain how preconditions, postconditions, and invariants can be used to define and enforce the behavior of classes and methods. Provide examples to demonstrate the use of programming by contract in Python.
In this lesson, discuss the difference between subtyping and subclassing. Explain how subtyping allows objects of different classes to be used interchangeably based on their shared behavior, while subclassing involves creating a new class that inherits from a base class. Provide examples to illustrate the concepts.
In this lesson, explain the concept of double dispatch and its use in object-oriented programming. Discuss how double dispatch allows the selection of a method to be based on the runtime types of two objects. Provide examples to demonstrate the implementation of double dispatch in Python.
In this lesson, explore the concept of multiple inheritance and its implications. Discuss how multiple inheritance allows a class to inherit from multiple parent classes, and how method resolution order (MRO) is determined. Provide examples to illustrate the use of multiple inheritance in Python.
In this lesson, introduce formal models of object-oriented programming systems, such as the Unified Modeling Language (UML) and formal specification languages. Explain how UML can be used to model classes, relationships, and behavior, and how formal specification languages can be used to specify and verify the correctness of object-oriented systems.
In this lesson, discuss the concept of design patterns and their importance in object-oriented programming. Introduce different categories of design patterns, including creational, structural, behavioral, and the Model-View-Controller (MVC) pattern. Explain the characteristics and usage of each pattern and provide examples to illustrate their implementation in Python.
Coming Soon
Coming Soon
Coming Soon
Provide answers to frequently asked questions related to the course.
Coming Soon
- ✨ Uploaded the Course Syllabus
- ✨ Added breakdown and documentation
- ✨ revised icon
- ✨ Revised my documentaion
- ✨ Added week 1 : Object and Classes
- ✨ Added class with constructor
- ✨ Added standard class
- ✨ Added week 2 : Encapsulation, Inheritance, Polymorphism
- ✨ Added Encapsulation with example code
- ✨ Added Ihheritance with example code
- ✨ Added Polymorphism with example code
- ✨ Added week 3 : Forms of Inheritance
- ✨ Added week 4
- ✨ Add Licence
- ✨ Coming Soon
🧊 Python OOP