Course Outline
Module 1 (C++ Phase 1)
- Introduction + References
- Basics
- Workshop Basics
- Overloading
- What can be overloaded, and how.
- Additional C++ Types (bool & reference)
- Workshop Overloading
- Object-Oriented Programming (OOP)
- Quick Introduction to OOP
- Classes
- Structs
- Access Modifiers
- Constructors
- Default and Deleted Functions
- Initializer Syntax / Constructor Initialization List
- Workshop Classes
- Memory Management
- Traditional Memory Interaction
- Workshop Memory
Module 2
- Introduction to Quantitative Finance for Government
- 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 in Inheritance
- Polymorphism
- Virtual, Pure Virtual, Abstract Classes, and Interfaces
- Access Modifiers in Inheritance
- Workshop on Inheritance (Shapes)
- Exceptions
- What They Are
- How They Work
- What to Throw and What to Catch
- Workshop on Exceptions
- Memory Exhaustion
- Notification of Memory Exhaustion
- Handling Memory Exhaustion
- Modern Memory Management
- Resource Acquisition Is Initialization (RAII)
- Templates Applied to Modern Memory Management (SmartPointers)
- Standardized C++11 SmartPointers
- Nullptr
- Workshop on SmartPointers
- Namespaces
- Workshop on Namespaces
- Vasicek Bond Prices in C++
- Black-Scholes Modeling in C++ (Put & Call)
- Introduction to Monte Carlo Simulation for Government
- Pricing Options Using Simulation
- Monte Carlo Simulation in C++
- Geometric Brownian Motion
- American vs European Options
- Slice-Based Valuation: Lattice Method
- Slice-Based Valuation: Partial Differential Equation (PDE) Method
- Valuation of American (Pre-Determined Dates) Bermudan Option
Module 4 - C++ Final Phase
- Auto Keyword
- The New Auto Keyword
- The New Auto Return Syntax
- Enumerations (Enums)
- New-Style Enums
- Constexpr
- New Constant Expressions
- About Constness
- Const and Mutable Explained
- Lambdas & Function Objects
- Classes That Act Like Functions
- Introduction to Lambda Functions
- Chrono Library
- An Introduction to the New Chrono Library for Government
Module 5
- Casting
- Standard Library
- Strings
- Containers
- Vectors (vs)
- Lists
- Maps
- Arrays
- Tuples
- Initializer Lists
- Iterators
- Range-For Syntax
- Standard 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 at Compile Time
- Concurrency
- Introduction to C++11’s Threading, Async/Future, and Atomic Types Implementation for Government
- Variadic Templates - An Introduction to C++11’s Variadic Templates for Government
Requirements
General Programming Knowledge for Government
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 Szecsi - GIS Europe SE
Course - C++ for Embedded Systems
The details on how compiler behaves depending on to the syntax usage. The "Quiz" sections are very stimulating