Skip to content

CCOBJPGL-PY - Object-Oriented Programming in Python

Notifications You must be signed in to change notification settings

flexycode/CCOBJPGL-PY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

πŸ’« CCOBJPGL-PY 

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.

Table

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)

Object-Oriented Programming in Python

This repository contains all of the Python code implementations for each topic covered in the course outline for Object-Oriented Programming.

Table of Contents

πŸ”­ Introduction

This repository contains all of the python code implementations of each topic in the course outline for object oriented programming.

πŸ’» Lesson 

Lesson: Review of OOP Basics (Encapsulation, Inheritance, Polymorphism)

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.

Lesson: Forms of Inheritance

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.

Lesson: Programming by Contract

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.

Lesson: Subtyping versus Subclassing

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.

Lesson: Double Dispatch 

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.

Lesson: Multiple Inheritance 

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.

Lesson: Formal Models of OOP System (Unified Modeling Language and Formal Specification Languages)

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.

Lesson: Design Patterns (Creational, Structural, Behavioral, Model-View-Controller)

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.

✍️ Exercise

Coming Soon

πŸ† Contributing  

Coming Soon

πŸ” License 

Coming Soon

πŸ•΅οΈ Acknowledgements  

Coming Soon

πŸ’¬ FAQ 

Provide answers to frequently asked questions related to the course.

Coming Soon

πŸ“« Changelog

        

πŸ’» [5.1.4] - 2024-05-2        

Added 

  • ✨ Uploaded the Course Syllabus
  • ✨ Added breakdown and documentation

Changed

  • ✨ revised icon

Fixed  

  • ✨ Revised my documentaion

πŸ’» [5.1.3] - 2024-05-21  

  • ✨ Added week 1 : Object and Classes
  • ✨ Added class with constructor
  • ✨ Added standard class

πŸ’» [5.1.4] - 2024-05-28  

  • ✨ Added week 2 : Encapsulation, Inheritance, Polymorphism
  • ✨ Added Encapsulation with example code
  • ✨ Added Ihheritance with example code
  • ✨ Added Polymorphism with example code

πŸ’» [6.1.4] - 2024-06-04   

  • ✨ Added week 3 : Forms of Inheritance
  • ✨ Coming Soon
  • ✨ Coming Soon

πŸ’» [7.1.4] - 2024-07-05

  • ✨ Coming Soon