Course Outline
Module 1 (C++ Phase 1)
- Introduction and references
- Fundamentals
- Workshop: Core concepts
- Function overloading
- Concepts and implementation of overloading
- Additional C++ types (bool and reference)
- Workshop: Overloading techniques
- Object-Oriented Programming (OOP)
- Quick OOP overview
- Classes
- Structs
- Access modifiers
- Constructors
- Default and deleted functions
- Initializer syntax and constructor initialization lists
- Workshop: Classes
- Memory management
- Traditional memory interaction patterns
- Workshop: Memory handling
Module 2
- Introduction to quantitative finance
- Discrete time models
- Continuous time models
- Interest rate models
- Bond options
- 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 in inheritance
- Workshop: Inheritance using shapes
- Exceptions
- Understanding exception handling
- Operational mechanics of exceptions
- Best practices for throwing and catching
- Workshop: Exception handling
- Memory exhaustion
- Notification mechanisms for memory issues
- Strategies for handling memory exhaustion
- Modern memory management techniques
- Resource Acquisition Is Initialization (RAII)
- Applying templates to modern memory management (SmartPointers)
- Standard C++11 SmartPointers
- nullptr usage
- Workshop: SmartPointers
- Namespaces
- Workshop: Namespaces
- Vasicek bond pricing in C++
- Black-Scholes modeling in C++ for put and call options
- Introduction to Monte Carlo simulation
- Option pricing via simulation techniques
- Monte Carlo simulation implementation in C++
- Geometric Brownian Motion
- American vs. European options
- Slice-based valuation: Lattice Method
- Slice-based valuation: PDE Method
- Slice-based valuation: PDE Method
- Pricing Bermudan options with predetermined dates
Module 4 - C++ Final Phase
- The auto keyword
- New features of the auto keyword
- New auto return syntax
- Enumerations (enum)
- Modern enum styles
- constexpr
- New constant expression capabilities
- Understanding constness
- Explaining const and mutable
- Lambdas and function objects
- Classes functioning as callable objects
- Introduction to lambda functions
- Chrono library
- Overview of the new Chrono library
Module 5
- Type casting
- Standard library components
- String handling
- Containers
- Vector (std::vector)
- List
- Map
- Array
- Tuple
- Initializer lists
- Iterators
- Range-based for syntax
- Standard algorithms
- I/O Streams
- Miscellaneous keywords
- static
- explicit
Module 6
- Move semantics
- Introduction to L-values and R-values
- R-value references applied to move semantics
- Type traits
- Gathering compile-time information
- Concurrency
- Introduction to C++11 threading, async/future, and atomic types
- Variadic templates: An introduction to C++11's variadic templates
Requirements
General programming knowledge
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 6500 € + VAT*
Contact us for an exact quote and to hear our latest promotions
Testimonials (3)
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.
Carey Fan - Logitech
Course - C/C++ Secure Coding
The online-ness of it meant that we could save a lot of time. Much appreciated. Also, the fact that the trainer knew both c# and Cpp was a huge help since he could explain everything through knowledge we already possessed.