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 andif constexprbranchingType traits,
enable_if, SFINAEConcepts 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_ifexamplesTry
constexprdispatch on types or algorithmsPractice:
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