Course Outline
Module 1 (C++ Phase 1)
- Introduction and References
- Programming Fundamentals
- Basics Workshop
- Operator Overloading
- Overloading Types and Implementation
- Additional C++ Types (bool & references)
- Overloading Workshop
- Object-Oriented Programming (OOP)
- OOP Overview
- Classes
- Structs
- Access Modifiers
- Constructors
- Default and Deleted Functions
- Initializer Syntax and Constructor Initialization Lists
- Classes Workshop
- Memory Management
- Traditional Memory Interaction
- Memory Workshop
Module 2
- Introduction to Quantitative Finance
- Discrete Time Models
- Continuous Time Models
- Interest Rate Models
- Options on Bonds
- Short Rate Models
- Forward Rate Models
- Market Models
Module 3 (C++ Phase 2 & Quantitative Final Phase)
- Inheritance
- Construction Mechanisms
- Polymorphism
- Virtual, Pure Virtual, Abstract Classes, and Interfaces
- Access Modifiers
- Inheritance Workshop (Shapes)
- Exceptions
- Understanding Exceptions
- Exception Mechanisms
- Throw and Catch Strategies
- Exceptions Workshop
- Memory Exhaustion
- Notification Methods
- Handling Strategies
- Modern Memory Management
- RAII (Resource Acquisition Is Initialization)
- Templates for Modern Memory Management (SmartPointers)
- C++11 Standardized SmartPointers
- nullptr
- SmartPointers Workshop
- Namespaces
- Namespaces Workshop
- Vasicek Bond Prices in C++
- Black-Scholes Modeling in C++ (Put & Call)
- Introduction to Monte Carlo Simulation
- Pricing Options via Simulation
- Monte Carlo Simulation in C++
- Geometric Brownian Motion
- American vs. European Options
- Slice-based Valuation: Lattice Method
- Slice-based Valuation: PDE Method
- Slice-based Valuation: PDE Method
- Valuation of American (Pre-determined Dates) Bermudan Options
Module 4 - C++ Final Phase
- auto Type Deduction
- The new auto Keyword
- Trailing Return Type Syntax
- Enums
- Scoped Enumerations (New Style Enums)
- constexpr
- Constant Expressions
- Understanding Constness
- Const and Mutable Explained
- Lambdas and Function Objects
- Class-like Functions
- Introduction to Lambda Functions
- Chrono Library
- Introduction to the C++11 Chrono Library
Module 5
- Casting Techniques
- Standard Library Overview
- String Handling
- Containers
- Vector (std::vector)
- List
- Map
- Array
- Tuple
- Initializer Lists
- Iterators
- Range-based For Loops
- Standard Library Algorithms
- Streams
- Miscellaneous Keywords
- static
- explicit
Module 6
- Move Semantics
- L-values and R-values Introduction
- R-value References for Move Semantics
- Type Traits
- Compile-time Type Information
- Concurrency
- Introduction to C++11 Threading, async/future, and Atomic Types
- Variadic Templates: Introduction to C++11 Variadic Templates
Requirements
General Programming Knowledge
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.