Course Outline
Module 1(C++ Phase 1)
- Intro + References
- Basics
- Workshop Basics
- Overloading
- What can we overload, and how.
- Extra C++ Types (bool & reference)
- Workshop overloading
- OOP
- Quick introduction to Oop
- Classes
- Structs
- Access Modifiers
- Constructor
- default/delete functions
- initializer syntax / constructor initialization list
- Workshop classes
- Memory
- Classical memory interaction
- Workshop Memory
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
Module3 (C++ Phase2 & Quantitative final phase)
- Inheritance
- Construction
- Polymorphism
- Virtual, pure virtual, abstract, interface
- Access modifiers
- Workshop Inheritance (Shapes)
- Exceptions
- What are they
- How do they work
- What to throw and what to catch
- Workshop exceptions
- Memory exhaustion
- How it’s notified
- How to handle
- Modern Memory Management
- RAII
- Templates applied to Modern Memory Management (SmartPointer)
- Standardized C++11 SmartPointers
- Nullptr
- Workshop SmartPointers
- Namespaces
- Workshop Namespaces
- Vasicek Bond Prices in C++
- Black-Scholes Modeling in C++ put &call
- Introduction to Monte carlo Simulation
- How to price options using 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 (dates Predetermined) Bermudan Option
Module 4 -C++ Final phase
- auto
- The new auto keyword
- The new auto return syntax
- enum
- New style enums
- constexpr
- New constant expressions
- About constness
- Const and Mutable explained
- Lambdas & function objects
- Classes that act like functions
- Introduction lambda functions
- Chrono
- An introduction to the new Chrono library
Module 5
- Casting
- Standard library
- String
- Containers
- Vector (vs)
- List
- Map
- Array
- Tuple
- Initializer lists
- Iterators
- range-for syntax
- Std Algorithms
- Streams
- Miscellaneous Keywords
- static
- explicit
Module 6
- Move semantics
- Introduction to L/R values
- R-value-references applied to move semantics
- Type Traits
- Obtaining information on compile time
- Concurrency
- Introduction to C++11’s Threading, async/future and atomic types implementation
- Variadic templates - An introduction to C++11’s variadic templates
Requirements
General Programming Knowledge
Testimonials (5)
General course information
Paulo Gouveia - EID
Course - C/C++ Secure Coding
Enjoyed the flexibility and variety of topics, the combination of trainings and exercises meant that I could apply what I'd learnt straight away. I also enjoyed the projects on the last day to bring everything together.
Luca Ricagni - Rockwell Collins UK Limited
Course - Advanced C++
I liked being submerged into the C++ language for 5 days - not interrupted by regular work - in a row a lot ... Personally not as experienced in C++ as my colleagues, I decided to join this course to take a deep dive. The dive triggered me hugely to learn more ... which is exactly what I wanted to achieve. I appreciated the expertise knowledge of the trainer - and that of my colleagues. The fact that topics were very quickly touched and not addressed in detail, is what I expect from an advanced course. Sometimes too quick for me to follow (but that's a known and accepted drawback from my joining this course :-)) ... but on the other hand provided me with a fairly complete overview of the subtleties of the language. Thanks a lot for presenting a course in this way! Most appreciated!!!
Jan Grauwen - Septentrio N.V.
Course - Advanced C++ Software Design
Interactivity, time for self-contained programming. I learn easier if I have the chance to find out the answer and not just telling me it. It was also a very good thing that the training was well-planned, we kept coffee pauses and the training did not lose my attention. The trainer had very deep knowledge in C++, we felt we could ask anything.
Barna Szécsi - GIS Europe SE
Course - C++ for Embedded Systems
The trainer was very well versed in the subject matter being discussed, he impressed all of us with his knowledge and ability. I believe some of the examples may not have been planned (they were based on questions asked). However, you would never tell, as they were presented as if fully planned. The pace was good, there was plenty of time for questions, and the Trainer did really well in terms of interacting with those being trained.