ποΈ CSE 2100: Object Oriented Programming Laboratory β Master Study Hub
Course Overview
Welcome to the comprehensive study vault for CSE 2100 (Object Oriented Programming Laboratory). This hub indexes the entire curriculum across 8 sequentially structured, atomic lessons designed for exam preparation, laboratory quizzes, viva voce, and coding tests.
- Official Syllabus & Teaching Plan: CSE 2100 - Object Oriented Programming Laboratory
- Master Concept & Terminology Dictionary: 01 Concept Glossary & Terminology (Start here if any OOP terminology is unfamiliar!)
- Language & Paradigm: C++ (C++11/C++14/C++17 Standards) | Object-Oriented Paradigm
πΊοΈ Visual Curriculum Flow
graph TD L1["[[lesson-1-intro-to-oop-and-classes|Lesson 1: Intro to OOP & Classes]]"] --> L2["[[lesson-2-member-functions-and-arrays|Lesson 2: Member Functions & Arrays]]"] L2 --> L3["[[lesson-3-object-lifecycle|Lesson 3: Object Lifecycle (Constructors/Destructors)]]"] L3 --> L4["[[lesson-4-inheritance-basics|Lesson 4: Inheritance Basics & Lifecycle]]"] L4 --> L5["[[lesson-5-advanced-inheritance|Lesson 5: Advanced Inheritance, Static & Friends]]"] L5 --> L6["[[lesson-6-this-and-operators|Lesson 6: this Pointer & Operator Overloading]]"] L6 --> L7["[[lesson-7-polymorphism|Lesson 7: Dynamic Binding & Polymorphism]]"] L7 --> L8["[[lesson-8-file-handling-and-formatting|Lesson 8: File Streams & Formatting Manipulators]]"] classDef core fill:#2d3748,stroke:#4a5568,stroke-width:2px,color:#fff; class L1,L2,L3,L4,L5,L6,L7,L8 core;
π Complete Lesson Index
| Order | Lesson Note | Core Concepts Covered | Key Lab & Exam Topics |
|---|---|---|---|
1.01 | Lesson 1: Intro to OOP & Classes | C-to-C++ Rosetta Stone, Streams (cin/cout), References vs Pointers, new/delete vs malloc/free, Encapsulation, Data Hiding, class vs struct. | Stream operators (<<, >>), Buffer flushing (cin.ignore()), Function overloading, Access specifiers (private, public). |
1.02 | Lesson 2: Member Functions & Arrays | Scope Resolution (::), Inlining, Function Nesting, Arrays of Objects, Pass-by-Const-Reference. | KUET ECE 2k23 Library Book problem, Nesting helper functions, Const reference optimization. |
1.03 | Lesson 3: Object Lifecycle | Default/Parameterized/Copy Constructors, Destructors, Shallow vs Deep Copy, Dynamic Allocation (new/delete). | Rule of Three, operator= self-assignment guard, Execution order trace (MyString). |
1.04 | Lesson 4: Inheritance Basics | Base & Derived Classes, Visibility Modes (public/protected/private), Constructor delegation, Multi-level hierarchy. | Execution order in inheritance, Subobject memory layout, protected access specifier. |
1.05 | Lesson 5: Advanced Inheritance & Friends | Multiple Inheritance, The Diamond Problem, virtual base classes, static members, friend functions. | KUET ECE 2k23 Bank Account & Book Availability comparator solutions, Multi-class friend bridge. |
1.06 | Lesson 6: this & Operator Overloading | The this pointer, Method Cascading, Unary (-, prefix ++, postfix ++(int)), Binary (+), Stream (<<, >>). | Non-overloadable operators (::, ., .*, ?:, sizeof), Friend vs Member operator signatures. |
1.07 | Lesson 7: Polymorphism & Dynamic Binding | Static vs. Dynamic Binding, Virtual Functions, Pure Virtual Functions (= 0), Abstract Classes, Virtual Destructors. | VTable & VPtr memory lookup, Object slicing trap, Polymorphic destruction memory leak prevention. |
1.08 | Lesson 8: File Streams & Formatting | ifstream, ofstream, fstream, Binary I/O (read/write), Random access pointers (seekg/seekp/tellg), Manipulators (<iomanip>). | setw one-shot reversion trap, setfill persistence, fixed vs default setprecision, Binary mode seeking. |
π§ͺ Exam Practice Banks & Mock Test Materials
| Material | Description | Focus Areas |
|---|---|---|
| Comprehensive Lab Quiz Practice Bank | 66 Questions across Topics 1β8 (Fill in gaps, True/False, MCQs, Error Debugging) with complete answer key. | Rapid lab quizzes, trivia, and syntax traps. |
| Live Practical Lab Test Practice Sheet | 90-Minute Full Mock Exam (Set A: Warehouse Inventory, Set B: Ticket Reservation) + Solution & Viva Questions. | Terminal coding tests, array of objects, friend functions, encapsulation. |
| Exhaustive 3-Tier Problem Sheet & Exam Drill | 24+ Tiered Problems (Warm-Up, Lab Test Standard, Exam Traps) + 10 Output Prediction Snippets. | Comprehensive problem-solving and deep conceptual debugging. |
π― Quick Reference Cheat Sheet
1. Memory Segments in C++
+-----------------------------------------------------------+
| Stack Segment | Local variables, objects, reference aliases |
+-----------------------------------------------------------+
| Heap Segment | Dynamic memory allocated via 'new' / 'malloc'|
+-----------------------------------------------------------+
| Static/Global | Static class variables, global definitions |
+-----------------------------------------------------------+
| Code / Text (RO) | Compiled member functions, VTables, literals|
+-----------------------------------------------------------+
2. Operator Overloading Rule Matrix
- Member Function: LHS is the invoking object (
this). Binary operators take 1 argument; unary operators take 0 arguments. - Friend Function: Global function. Binary operators take 2 arguments; unary operators take 1 argument.
- Stream Operators (
<<,>>): Must be overloaded as friend functions because LHS is a stream object (ostream&/istream&). - Assignment (
=), Subscript ([]), Call (()), Arrow (->): Must be overloaded strictly as member functions.
3. The Rule of Three Checklist
When a class manages raw pointers/heap memory:
~ClassName()β Destructor to deallocate heap memory.ClassName(const ClassName& other)β Copy constructor to allocate distinct heap block (Deep Copy).ClassName& operator=(const ClassName& rhs)β Copy assignment operator with self-assignment guard (if (this != &rhs)).
Study Recommendation
For your lab quiz, focus heavily on the Debuggerβs Guides and Quiz Traps in Lessons 3, 5, 6, and 8. For viva voce, review the dedicated Viva Quick-Prep sections at the end of each lesson note.