Sylvain Corlay

Founder and CEO, QuantStack Autres cours :

Johan Mabille

Co-Founder, QuantStack

Programmation en C++

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 cours

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

Bibliographie

Beginners:

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, 2001


Online Gurus: 

http://www.drdobbs.com/ 

Examen

TBA