Course Outline
Module 1: C++ Fundamentals (Phase 1)
- Course Overview and Reference Materials
- Core Programming Concepts
- Practical Workshop: Foundational Principles
- Function Overloading
- Criteria and Implementation of Overloaded Functions
- Additional Data Types: Boolean and Reference Variables
- Practical Workshop: Overloading Techniques
- Object-Oriented Programming (OOP) Principles
- Overview of OOP Frameworks
- Class Structures
- Struct Definitions
- Access Control Specifiers
- Constructor Implementations
- Default and Deleted Function Declarations
- Initializer Syntax and Constructor Initialization Lists
- Practical Workshop: Class Implementation
- Memory Management Basics
- Conventional Memory Allocation and Deallocation
- Practical Workshop: Memory Handling
Module 2: Quantitative Finance Models
- Introduction to Quantitative Finance Frameworks
- Discrete Time Modeling Techniques
- Continuous Time Modeling Techniques
- Interest Rate Modeling
- Bond Option Valuation
- Short Rate Models
- Forward Rate Models
- Market Models
Module 3: Advanced C++ and Quantitative Final Phase
- Inheritance Hierarchies
- Construction Patterns
- Polymorphism
- Virtual Functions, Pure Virtual Functions, Abstract Classes, and Interfaces
- Access Control Specifiers
- Practical Workshop: Inheritance Structures (Geometric Shapes)
- Exception Handling
- Exception Mechanisms
- Exception Propagation and Catch Strategies
- What to Throw and What to Catch
- Practical Workshop: Exception Management
- Memory Exhaustion Management
- Notification of Resource Exhaustion
- Handling Protocols for Exhaustion
- Modern Memory Management Techniques
- Resource Acquisition Is Initialization (RAII)
- Templates Applied to Modern Memory Management (SmartPointers)
- Standardized C++11 SmartPointers
- Null Pointer Representation (nullptr)
- Practical Workshop: SmartPointer Implementation
- Namespaces
- Practical Workshop: Namespace Usage
- Implementation of Vasicek Bond Pricing in C++
- Implementation of Black-Scholes Modeling for Put and Call Options in C++
- Introduction to Monte Carlo Simulation
- Option Pricing via Simulation Methodologies
- Implementation of Monte Carlo Simulation in C++
- Geometric Brownian Motion
- Distinctions Between American and European Options
- Valuation via Lattice Methods (Slice-Based Valuation)
- Valuation via Partial Differential Equation (PDE) Methods (Slice-Based Valuation)
- Valuation of Bermudan Options (Pre-determined Exercise Dates)
Module 4: Advanced C++ Features
- The Auto Keyword
- Auto Type Deduction
- Trailing Return Type Syntax
- Enumerations
- Strongly Typed Enumerations
- Constant Expressions (constexpr)
- Advanced Constant Expressions
- Immutability Principles
- Const and Mutable Specifiers
- Lambdas and Function Objects
- Functor Classes
- Lambda Function Syntax
- Chrono Library
- Introduction to the C++11 Chrono Library
Module 5: Standard Library and Casting
- Casting Mechanisms
- Standard Template Library (STL) Overview
- String Manipulation
- Container Types
- Vector Containers
- List Containers
- Map Containers
- Array Containers
- Tuple Containers
- Initializer Lists
- Iterator Interfaces
- Range-Based For Loops
- STL Algorithms
- Stream I/O
- Key Specifiers
- Static Storage Duration
- Explicit Constructor Declarations
Module 6: Modern C++ Features
- Move Semantics
- Left-Value and Right-Value References
- R-Value References in Move Semantics
- Type Traits
- Compile-Time Type Inspection
- Concurrency Management
- Introduction to C++11 Threading, Async/Future, and Atomic Types
- Variadic Templates
- Introduction to C++11 Variadic Templates
Requirements
Testimonials (3)
Initially, the trainer's pace seemed a bit too fast for me, but after offering the feedback during the training, he acknowledged it and slowed down the pace without sacrificing any of the lectures. Good rapport with the audience, very friendly and open for discussions.
Alexandru Ostafi - Siemens
Course - Advanced C++ : Practical workshop
Detailed explanation, re-iteration of points in a quite subtle way that really drove the knowledge home very well. Rod's willingness to double-check the odd obscure question that we rasied, to be sure that his answers were 100% right. Also, his interest in discussing the pros & cons of alternate coding styles so that we learnt not only how to use C++ in our intended way, but why it should be done that way.
Nick Dillon - cellxica Ltd
Course - Using C++ in Embedded Systems - Applying C++11/C++14
Experience sharing, it's teacher's know-how and valuable.