Panneau de gestion des cookies
NOTRE UTILISATION DES COOKIES
Des cookies sont utilisés sur notre site pour accéder à des informations stockées sur votre terminal. Nous utilisons des cookies techniques pour assurer le bon fonctionnement du site ainsi qu’avec notre partenaire des cookies fonctionnels de sécurité et partage d’information soumis à votre consentement pour les finalités décrites. Vous pouvez paramétrer le dépôt de ces cookies en cliquant sur le bouton « PARAMETRER » ci-dessous.

C++ Programming

Ects : 3

Enseignant responsable :

Volume horaire : 21

Description du contenu de l'enseignement :

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.

Course outline: 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 speciali zations
  • 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
Coefficient : 1.5

Compétence à acquérir :

Knowledge in C++ programming for finance

Bibliographie, lectures recommandées

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: www.drdobbs.com