Fr En



ALI ARBOUN - Leader Manager of Equity & Commodities Valuation Model Validation, Natixis

Les objectifs du cours

This practical oriented course focuses on learning C++ language as a practical tool. It aims to be both an introduction to C/C++ and a basic course for whoever want to get an expertise in programming. A special care to practice is taken through solving simple issues C++ as a tool ; no special programming background is expected. The 2 last courses are dedicated to advanced topics, not mandatory to learn the language, but important for people with programming background especially C programmers. A good grasp of the previous lessons will be required.

Plan du course
  1. The basics
  • Working with git
  • C++ first program, compilation chaintools, input and output
  • Variables and types, scopes, operators
  •  Working with numbers: maths VS computers
  •  Control structures

2. Express your algorithms using C++

  • Functions (declaration, arguments, overloading)
  • lvalue and rvalue references
  • Namespace
  • Precompiler and macros
  • Program structure and build process
  • Application: closed-formulae for pricing

3. Programming with the STL

  • Sequential containers
  • Associative containers
  • Algorithms, iterators, functors
  • Lambdas
  • Streams

4. Defining your own types

  •  Structures and classes
  •  Value semantic
  •  Conversions
  •  Operator overloading
  •  Application: data models in pricing libraries

5. Managing memory and low-level data structures

  •   Pointers and arrays
  •   Pointer to method and functions
  •   Three kinds of memory
  •   Exceptions

6. Making your types abstract

  •    Inheritance and polymorphism
  •    Entity semantic and Liskov Substitution Principle
  •    Runtime Type Information
  •    Multiple inheritance
  •    Inheritance of implementation
  •    Application: reusable numerical tools

7. Generic programming: write less, do more

  •    Template classes and specializations
  •    Template functions, specialization vs overloading
  •    Type deduction and auto
  •    Universal references and perfect forwarding
  •    Curiously Recurring Template Pattern
  •    Traits
  •    Managing the overload resolution set
  •    Variadic templates and advanced metaprogramming


Stanley B.Lippman, Josee Lajoie, Barbara Moo, "C++ Primer ", Fifth Edition, 2012.
Koenig A. & B. E. Moo, "Accelerated C++", Addison-Wesley, 2000
Reference guides:
Bjarne Stroustrup, "The C++ Programming Language", Fourth Edition, 2013.
Nicolai M. Josuttis N. M., "The C++ standard library" 2nd edition, Addison-Wesley, 2012
Scott Meyers, “Effective STL”, Addison-Wesley, 2001Online Gurus: