Python OOP — class APIs, invariants, inheritance, composition, polymorphism, and dunders with graded labs.
- Duration
- 12 weeks
- Certificates
- 2
- CO threshold
- 70%
- Price
- ₹5,000 (one-time access)
Tagline: Python OOP — class APIs, invariants, inheritance, composition, polymorphism, and dunders with graded labs.
| Field |
Value |
| Course code |
PY-OOP-A |
| Duration |
12 weeks |
| Credits |
4 |
| Compliance |
NBA-aligned OBE |
| Prerequisite |
PY-FUND-A or equivalent Python |
| Publication |
published |
| Price |
INR 5000 |
| DB snapshot |
2026-10-08T15:04:29.266Z |
Course objective
Design and implement clear Python class APIs with invariants, inheritance, composition, polymorphism, and dunders — preparing learners for PY-DS-A (data structures built with OOP).
Course outcomes (CO1–CO6)
| CO |
Bloom |
Weight |
Statement |
| CO1 |
understand |
17% |
Define classes and instances with init, attributes, and methods under the python_applied grading contract. |
| CO2 |
apply |
17% |
Enforce encapsulation and invariants using validation, safe mutators, and properties. |
| CO3 |
apply |
16% |
Collaborate between objects and apply duck typing / informal protocols for interchangeable behavior. |
| CO4 |
apply |
17% |
Use inheritance, overrides, and super() correctly; explain MRO at a lite level. |
| CO5 |
analyze |
16% |
Choose composition vs inheritance and implement polymorphic designs with clear responsibilities. |
| CO6 |
evaluate |
17% |
Implement key special methods, classmethod/staticmethod/ABC patterns, and a multi-class capstone. |
Activity totals (live from platform)
| Metric |
Count |
| Units / chapters |
13 |
| Topics |
98 |
| Topic quiz activities |
632 |
| MCQ questions |
632 |
| Practice labs |
0 |
| Evaluated coding labs |
207 |
| Instructional content blocks |
582 |
Certificates & earning criteria
| Certificate |
CO scope |
Evaluated lab quota |
CO attainment |
Gate |
| Python OOP Foundations |
CO1–CO4 |
≥ 90% |
≥ 70% |
Python OOP Foundations summative quiz |
| Python OOP Professional |
CO1–CO6 |
≥ 95% |
≥ 70% |
Python OOP Professional end-of-course capstone |
Unit syllabus (unit → topics → activities)
Unit 1 — Why objects? Class & instance
Unit totals: 13 topics · 90 MCQ questions · 0 practice · 7 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
When a dict is not enough |
8 |
0 |
0 |
— |
| 2 |
The four pillars of OOP — oral definitions |
8 |
0 |
0 |
— |
| 3 |
Encapsulation & abstraction — oral answers |
6 |
0 |
0 |
— |
| 4 |
Inheritance & polymorphism — oral answers |
6 |
0 |
0 |
— |
| 5 |
How evaluation works on this course |
8 |
0 |
0 |
— |
| 6 |
Scenario in, result dict out |
6 |
0 |
1 |
— |
| 7 |
Your first solve submission |
6 |
0 |
1 |
— |
| 8 |
Class blueprint vs instance |
6 |
0 |
0 |
— |
| 9 |
init and constructing objects |
8 |
0 |
2 |
— |
| 10 |
Attributes on self |
6 |
0 |
1 |
— |
| 11 |
Methods bound to instances |
6 |
0 |
1 |
— |
| 12 |
Mini project: Book / Rectangle |
6 |
0 |
1 |
— |
| 13 |
Interview prep: class & instance |
10 |
0 |
0 |
— |
Unit 2 — Encapsulation & invariants
Unit totals: 7 topics · 48 MCQ questions · 0 practice · 10 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Public vs _internal convention |
6 |
0 |
2 |
— |
| 2 |
Invariants — what must stay true |
8 |
0 |
0 |
— |
| 3 |
Validating in init |
6 |
0 |
2 |
— |
| 4 |
Mutating safely via methods |
6 |
0 |
2 |
— |
| 5 |
Getters as methods (before property) |
6 |
0 |
2 |
— |
| 6 |
Lab pack: BankAccount / Temperature |
6 |
0 |
2 |
— |
| 7 |
Interview prep: encapsulation & invariants |
10 |
0 |
0 |
— |
Unit 3 — Methods, self, and collaboration
Unit totals: 8 topics · 52 MCQ questions · 0 practice · 11 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Tracing self on method calls |
8 |
0 |
0 |
— |
| 2 |
Methods calling other methods |
6 |
0 |
2 |
— |
| 3 |
Objects using other objects |
6 |
0 |
2 |
— |
| 4 |
Returning new objects vs mutating |
6 |
0 |
2 |
— |
| 5 |
Default equality is identity |
6 |
0 |
0 |
— |
| 6 |
Lab Order + LineItem collaboration |
6 |
0 |
2 |
— |
| 7 |
Preview practice: Units 1–3 |
4 |
0 |
3 |
— |
| 8 |
Interview prep: self & collaboration |
10 |
0 |
0 |
— |
Unit 4 — Properties & controlled access
Unit totals: 7 topics · 46 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
@property for derived values |
6 |
0 |
2 |
— |
| 2 |
@property + setter validation |
6 |
0 |
2 |
— |
| 3 |
Read-only properties |
6 |
0 |
2 |
— |
| 4 |
When not to use properties |
8 |
0 |
1 |
— |
| 5 |
Lab: Circle + Person property capstone |
6 |
0 |
1 |
— |
| 6 |
Integration assessment: Units 1–4 |
4 |
0 |
8 |
— |
| 7 |
Interview prep: properties & controlled access |
10 |
0 |
0 |
— |
Unit 5 — Abstraction & duck typing
Unit totals: 7 topics · 46 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What abstraction means in code |
8 |
0 |
1 |
— |
| 2 |
Duck typing — if it quacks |
6 |
0 |
2 |
— |
| 3 |
Same client code, different objects |
6 |
0 |
2 |
— |
| 4 |
Informal method contracts |
6 |
0 |
1 |
— |
| 5 |
Lab: draw() without inheritance |
6 |
0 |
2 |
— |
| 6 |
Integration assessment: Units 1–5 |
4 |
0 |
8 |
— |
| 7 |
Interview prep: abstraction & duck typing |
10 |
0 |
0 |
— |
Unit 6 — Inheritance basics
Unit totals: 8 topics · 54 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
is-a relationships |
8 |
0 |
0 |
— |
| 2 |
Writing a subclass |
6 |
0 |
2 |
— |
| 3 |
Inheriting methods |
6 |
0 |
1 |
— |
| 4 |
Subclass-only attributes and methods |
6 |
0 |
2 |
— |
| 5 |
isinstance / type judgment |
6 |
0 |
1 |
— |
| 6 |
Lab: Employee / Vehicle hierarchies |
6 |
0 |
2 |
— |
| 7 |
Integration assessment: Units 1–6 |
4 |
0 |
8 |
— |
| 8 |
Python OOP Foundations summative quiz |
12 |
0 |
0 |
— |
Unit 7 — super(), overrides, MRO lite
Unit totals: 8 topics · 52 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Overriding a method |
6 |
0 |
1 |
— |
| 2 |
Extending with super() |
6 |
0 |
2 |
— |
| 3 |
Overriding init safely |
6 |
0 |
2 |
— |
| 4 |
Multiple inheritance — when it hurts |
8 |
0 |
0 |
— |
| 5 |
MRO lite |
6 |
0 |
1 |
— |
| 6 |
Lab: Logger / TrackedAccount |
6 |
0 |
2 |
— |
| 7 |
Integration assessment: Units 1–7 |
4 |
0 |
8 |
— |
| 8 |
Interview prep: super(), overrides & MRO |
10 |
0 |
0 |
— |
Unit 8 — Composition vs inheritance
Unit totals: 7 topics · 46 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
has-a vs is-a |
8 |
0 |
0 |
— |
| 2 |
Composition in code |
6 |
0 |
3 |
— |
| 3 |
Refactor a bad hierarchy |
6 |
0 |
1 |
— |
| 4 |
Delegation lite |
6 |
0 |
2 |
— |
| 5 |
Lab: Library / Car+engine |
6 |
0 |
2 |
— |
| 6 |
Integration assessment: Units 1–8 |
4 |
0 |
8 |
— |
| 7 |
Interview prep: composition & delegation |
10 |
0 |
0 |
— |
Unit 9 — Polymorphism in practice
Unit totals: 8 topics · 52 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Polymorphism via inheritance |
6 |
0 |
2 |
— |
| 2 |
Polymorphism vs duck typing |
8 |
0 |
1 |
— |
| 3 |
Collections of mixed subclasses |
6 |
0 |
1 |
— |
| 4 |
Template-method lite |
6 |
0 |
2 |
— |
| 5 |
Avoiding god classes |
6 |
0 |
0 |
— |
| 6 |
Lab: payments / notifications |
6 |
0 |
2 |
— |
| 7 |
Integration assessment: Units 1–9 |
4 |
0 |
8 |
— |
| 8 |
Interview prep: polymorphism |
10 |
0 |
0 |
— |
Unit 10 — Special methods (dunders)
Unit totals: 9 topics · 56 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
str vs repr |
6 |
0 |
2 |
— |
| 2 |
eq and hashing lite |
6 |
0 |
1 |
— |
| 3 |
Ordering with lt |
6 |
0 |
1 |
— |
| 4 |
Arithmetic dunders lite |
6 |
0 |
1 |
— |
| 5 |
len / getitem |
6 |
0 |
1 |
— |
| 6 |
Context manager lite |
6 |
0 |
1 |
— |
| 7 |
Money: str and eq |
6 |
0 |
1 |
— |
| 8 |
Integration assessment: Units 1–10 |
4 |
0 |
8 |
— |
| 9 |
Interview prep: special methods & dunders |
10 |
0 |
0 |
— |
Unit 11 — classmethod, staticmethod, ABC
Unit totals: 8 topics · 52 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
@staticmethod |
6 |
0 |
2 |
— |
| 2 |
@classmethod alternate constructors |
6 |
0 |
2 |
— |
| 3 |
Class vs instance attributes |
6 |
0 |
1 |
— |
| 4 |
Abstract base classes |
6 |
0 |
1 |
— |
| 5 |
ABC vs duck typing judgment |
8 |
0 |
0 |
— |
| 6 |
Lab: shape ABC + from_* constructor |
6 |
0 |
2 |
— |
| 7 |
Integration assessment: Units 1–11 |
4 |
0 |
8 |
— |
| 8 |
Interview prep: classmethod, staticmethod & ABC |
10 |
0 |
0 |
— |
Unit 12 — Exceptions, modules, capstone
Unit totals: 7 topics · 38 MCQ questions · 0 practice · 16 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Custom exception classes |
6 |
0 |
3 |
— |
| 2 |
Organizing classes across modules |
8 |
0 |
0 |
— |
| 3 |
Dataclasses lite |
6 |
0 |
2 |
— |
| 4 |
Capstone design sketch |
6 |
0 |
0 |
— |
| 5 |
Capstone A — library catalog system |
4 |
0 |
2 |
— |
| 6 |
Integration assessment: Units 1–12 |
4 |
0 |
8 |
— |
| 7 |
Python OOP Professional end-of-course capstone |
4 |
0 |
1 |
— |
Unit 13 — OOP Playground
Unit totals: 1 topics · 0 MCQ questions · 0 practice · 35 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
OOP practice bank |
0 |
0 |
35 |
— |
Counts are from the live course catalog. MCQs = questions in topic checkpoint quizzes. Practice = formative run-only or SQL practice lane. Evaluated = submit-graded labs that count toward progress and certificates.
← All paid courses · LLM site guide