Object-Oriented Programming in Modern C++

Modern C++17 OOP — classes, RAII, string/vector, operators, inheritance, and high-volume graded sandbox programs.

Duration
12 weeks
Certificates
3
CO threshold
75–80%
Price
₹5,000 (one-time access)

Tagline: Modern C++17 OOP — classes, RAII, string/vector, operators, inheritance, and high-volume graded sandbox programs.

Field Value
Course code CPP-OOP-A
Duration 12 weeks
Credits 3
Compliance NBA-aligned OBE
Publication published
Price INR 5000
DB snapshot 2026-10-08T15:04:29.652Z

Course objective

Assessment-first C++17 OOP: high-volume graded sandbox programs from procedural ramp through classes, RAII, string/vector, operators, inheritance, unique_ptr, and virtual polymorphism. Theory serves labs; labs are the product.

Course outcomes (CO1–CO6)

CO Bloom Weight Statement
CO1 understand 10% Explain OOP pillars and when classes beat ad-hoc procedural design.
CO2 apply 15% Write correct C++17 procedural programs (I/O, control flow, struct/enum class, functions).
CO3 apply 20% Design encapsulated classes with constructors, const methods, and RAII-minded lifetime.
CO4 apply 15% Use string/vector collaborators and operator overloading with explicit conversions where needed.
CO5 apply 20% Implement public inheritance and abstract base classes correctly.
CO6 analyze 20% Implement virtual polymorphism with override, virtual destructors, and unique_ptr ownership.

Activity totals (live from platform)

Metric Count
Units / chapters 12
Topics 83
Topic quiz activities 502
MCQ questions 502
Practice labs 73
Evaluated coding labs 474
Instructional content blocks 901

Certificates & earning criteria

Certificate CO scope Evaluated lab quota CO attainment Gate
C++ OOP Foundations CO1–CO3 ≥ 85% ≥ 75% C++ OOP Foundations unit 7 lab pack
C++ OOP Professional CO1–CO6 ≥ 90% ≥ 75% C++ OOP Professional / Mastery EOC quiz
C++ OOP Mastery CO1–CO6 ≥ 95% ≥ 80% C++ OOP Professional / Mastery EOC quiz (Mastery)

Unit syllabus (unit → topics → activities)

Unit 1 — The OOP big picture

Unit totals: 8 topics · 48 MCQ questions · 1 practice · 0 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Why objects? Procedural pain vs modeling 6 1 0 —
2 Classes vs objects; interfaces vs implementation 6 0 0 —
3 Encapsulation 6 0 0 —
4 Abstraction 6 0 0 —
5 Inheritance 6 0 0 —
6 Polymorphism 6 0 0 —
7 How this course grades you (I/O + structure) 6 0 0 —
8 Checkpoint: pillars & Unit 1 wrap-up 6 0 0 —

Unit 2 — First programs & the autograder

Unit totals: 8 topics · 48 MCQ questions · 7 practice · 10 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Anatomy of a C++17 program (main, headers, using) 6 1 0 —
2 Integers, floating types, bool, const 6 0 0 —
3 Characters, escape sequences, simple formatting 6 0 0 —
4 cin / cout, expressions, precedence 6 4 2 —
5 Operators and expressions: arithmetic, assignment, and increment 6 2 8 —
6 Type conversion & casts (modern habits) 6 0 0 —
7 Library functions & headers (cppreference hygiene) 6 0 0 —
8 Drill pack: mixed basics 6 0 0 —

Unit 3 — Loops and decisions

Unit totals: 8 topics · 48 MCQ questions · 8 practice · 18 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Relational operators & for 6 1 2 —
2 while / do-while 6 1 2 —
3 if / else / else if 6 1 2 —
4 switch & conditional operator 6 1 1 —
5 Logical operators & short-circuit 6 1 1 —
6 Bitwise and shift operators 6 1 7 —
7 break / continue (disciplined use) 6 1 1 —
8 Drill pack: control-flow programs 6 1 2 —

Unit 4 — Structures and scoped enumerations

Unit totals: 5 topics · 30 MCQ questions · 6 practice · 33 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 struct as aggregate data 6 1 6 —
2 Nested structs & passing structs 6 1 6 —
3 enum class (scoped enums) 6 1 5 —
4 Structs that want to become classes 6 1 5 —
5 Drill pack: data modeling 6 2 11 —

Unit 5 — Functions

Unit totals: 7 topics · 42 MCQ questions · 7 practice · 49 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Declaration, definition, call 6 1 6 —
2 Pass by value vs reference 6 1 8 —
3 Returning values & structs 6 1 7 —
4 Function overloading 6 1 8 —
5 Default arguments & inline (light) 6 1 6 —
6 Scope, locals, and const parameters 6 1 6 —
7 Drill pack: function design 6 1 8 —

Unit 6 — Objects and classes

Unit totals: 7 topics · 42 MCQ questions · 6 practice · 58 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 A first class: members & member functions 6 1 8 —
2 Access control: public / private 6 1 8 —
3 Constructors & overloading constructors 6 1 9 —
4 Destructors (intro) & object lifetime 6 1 7 —
5 const member functions & const objects 6 1 8 —
6 Objects as arguments & return values 6 1 8 —
7 Lab pack: encapsulation battery 6 0 10 —

Unit 7 — RAII and special members

Unit totals: 6 topics · 36 MCQ questions · 6 practice · 45 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Invariants: constructors establish truth 6 1 7 —
2 RAII idea: resource tied to lifetime 6 1 8 —
3 = default and = delete 6 1 7 —
4 Copy behavior (default copy — what it means) 6 1 7 —
5 Static members (light) 6 1 6 —
6 Lab pack: class design battery 6 1 10 —

Unit 8 — Strings and vectors as collaborators

Unit totals: 6 topics · 36 MCQ questions · 6 practice · 47 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 std::string essentials 6 1 8 —
2 C-strings vs std::string (why modern wins) 6 1 4 —
3 std::vector essentials 6 1 8 —
4 Arrays of objects / vectors of objects 6 1 8 —
5 Classes that own string/vector state 6 1 9 —
6 Lab pack: text + collection battery 6 1 10 —

Unit 9 — Operator overloading

Unit totals: 6 topics · 36 MCQ questions · 6 practice · 44 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 The operator keyword; unary ops 6 1 7 —
2 Binary arithmetic and comparison 6 1 8 —
3 operator<< and the stream insertion pattern 6 1 7 —
4 Conversions and explicit constructors 6 1 8 —
5 Pitfalls: restraint and similar meaning 6 1 4 —
6 Lab pack: numeric, money, and distance types 6 1 10 —

Unit 10 — Inheritance and abstract classes

Unit totals: 8 topics · 48 MCQ questions · 7 practice · 61 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Base & derived; public inheritance 6 1 9 —
2 protected; access combinations 6 1 7 —
3 Derived constructors & initialization order 6 1 8 —
4 Overriding vs overloading (name hiding) 6 1 7 —
5 Abstract base classes (= 0) 6 1 9 —
6 Composition vs inheritance (when which) 6 1 7 —
7 Multiple inheritance — awareness only 6 0 2 —
8 Lab pack: hierarchy battery 6 1 12 —

Unit 11 — Pointers, ownership, and unique_ptr

Unit totals: 6 topics · 36 MCQ questions · 6 practice · 51 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Addresses, pointers, and references recap 6 1 7 —
2 Pointers to objects; -> 6 1 8 —
3 new / delete (so you respect RAII) 6 1 7 —
4 std::unique_ptr as owning pointer 6 1 10 —
5 Containers of pointers / unique_ptr 6 1 9 —
6 Lab pack: ownership battery 6 1 10 —

Unit 12 — Virtual functions and polymorphism

Unit totals: 8 topics · 52 MCQ questions · 7 practice · 58 evaluated labs

# Topic MCQs Practice Evaluated Preview
1 Why overriding alone is not polymorphism 6 1 6 —
2 virtual functions; calling via base pointer/ref 6 1 10 —
3 override and final 6 1 7 —
4 Virtual destructors (mandatory pattern) 6 1 8 —
5 Abstract classes + polymorphic containers 6 1 10 —
6 Friend functions (disciplined use) 6 1 5 —
7 Capstone lab pack: polymorphic system 6 1 12 —
8 Professional / Mastery EOC quiz 10 0 0 —

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