2 OOSC++ Exam Study Plan SoSe 25
Revised 14-Day Study Plan (High-Yield, Lecturer-Aligned)
Day 1–2: OOP Essentials
- Classes, access specifiers, encapsulation
- Constructors, destructors, copy/move
- Inheritance, slicing, polymorphism
- Virtual functions, abstract classes, override,final
- Practice: Class hierarchies, virtual dispatch debugging
Day 3: RAII + Smart Pointers
- unique_ptr,- shared_ptr,- weak_ptr,- make_*functions
- Lifetime, ownership, dangling pointers
- RAII for exception safety and resource cleanup
- Practice: Refactor raw pointer code using RAII
Day 4: Lambda Expressions & Closures
- Lambda syntax, capture lists, mutable
- Closures and std::function
- Lambdas in algorithms (sort,for_each,transform)
- Practice: Lambdas with custom predicates and function composition
Day 5: STL Containers + Iterators + Algorithms
- vector,- map,- unordered_map,- list, etc.
- Iterator categories and invalidation rules
- Algorithms: count_if,transform,copy_if, etc.
- Practice: Design small generic utilities with STL components
Day 6: Move Semantics
- Copy vs. move constructors
- std::move, lvalues/rvalues
- Rule of 5 / Rule of 0
- Practice: Trace object lifetimes in copy/move-heavy code
Day 7: Design Patterns (Modern C++)
- Strategy, Visitor, Factory
- Use of polymorphism and smart pointers in patterns
- When to use composition over inheritance
- Practice: Recognize patterns in sample code
Day 8–9: Template Programming & Metaprogramming (Core Block)
- Function/class templates, specialization 
- Variadic templates, template recursion 
- constexprfunctions and- if constexprbranching
- Type traits, - enable_if, SFINAE
- Concepts and constraints (C++20) 
- CRTP and static polymorphism 
- Practice: - Write a compile-time factorial
- Implement type-based dispatch using constexpr
- Build a simple enable_iffiltering function
 
Day 10: Modern C++ Features
- Structured bindings, std::optional,std::variant
- Ranges and views
- consteval,- constinit
- Modules and filesystem (skim unless specifically emphasized)
- Focus: What is used in metaprogramming or shown in slides
Day 11: Exceptions + Type System
- Exception handling (throw,try,catch,noexcept)
- assert, contracts
- Const correctness, type deduction (auto,decltype)
- References vs pointers, const T*vsT const*
- Practice: Spot exception bugs or type deduction issues
Day 12: Deep Dive – Template Metaprogramming Challenge Day
- Redo CRTP and - enable_ifexamples
- Try - constexprdispatch on types or algorithms
- Practice: - static_assertwith trait logic
- Write a small type trait
- Recursively define a compile-time structure (e.g., tuple)
 
Day 13: Mock Exam Simulation
- Time-limited: solve 4–5 realistic tasks
- Balance between code writing, analysis, bug fixing
- Self-grade based on expected outputs/behaviors
Day 14: Final Review + Light Touch
- Revisit your 2 weakest areas
- Redo key examples from metaprogramming and OOP
- Skim SOLID principles and major design slides
- Do not cram anything new — stabilize what you know