1.
Introduction to Object-Oriented Programming FURUSA
a) Understanding Objects and Classes
b) Attributes and Methods
c) The `self` keyword
d) Creating and Using Objects
2. Pillars of OOP FURUSA
a) Encapsulation
i. Private and Public Access Modifiers
ii. Getter and Setter Methods
b) Inheritance
i. Extending Classes
ii. Method Overriding
iii. Super() Function
c) Polymorphism
i. Method Overloading (using varied inputs)
ii. Polymorphic Behavior in Classes
d) Abstraction
i. Abstract Classes and Methods
ii. Importance in Framework Design
3. Advanced OOP Concepts FURUSA
a) Class and Static Methods
b) Property Decorators
c) Composition vs. Inheritance
d) Magic/Dunder Methods (__init__, __str__, etc.)
e) Design Patterns in Python
4. OOP in Data Science PRESENTATION
a) Designing Classes for Data Handling (e.g., DataFrames, Datasets)
b) Building Custom Data Processing Pipelines using OOP
c) Implementing OOP with Popular Data Science Libraries (pandas, scikit-learn, etc.)
5. Case Studies PRESENTATION
a) Building a Data Pre-processing Framework using OOP
b) OOP in Machine Learning - Designing a Custom ML Model Class
c) Implementing a Data Visualization Toolkit using OOP Principles
6. Best Practices and Advanced Topics PRESENTATION
a) SOLID Principles in OOP for Python
b) Error and Exception Handling in OOP
c) Writing Efficient and Maintainable OOP Code in Python
d) Packaging and Distributing your Object-Oriented Code
7: Practical Project
❖ Students will be tasked with creating a data science project utilizing their
understanding of OOP. This could involve processing a dataset, implementing
machine learning, and visualizing results, all structured using OOP principles.