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