Yannick Djoko

Technical architect, Société Générale - CIB, Paris

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. Basics : visual studio 2015 environment

  • Creation of C++ programs (visual studio)
  • Creation of DLL modules, deployment and use in others C++ programs

2. C++ functional programming

  • Use cases : students grading policies
  • Variables and visibility
  • Built-in types, arrays
  • Streams, messaging (keyboard, screen, files management),
  • Functions mechanics explained
  • Basic data POO : C structures
  • User defined types

3. C++ object oriented programming

  • Use cases : school management, automobile factory management, financial products portfolio management
  • Object oriented programming:
  • Modeling and Organization with classes
  • C++ classes explained
  • Inheritance
  • C++ strong typing

4. Performances considerations

  • Computer architecture overview
  • C++ functions parameters passing and return types, rvalue, copy elision, RVO
  • C++ vs dynamic runtimes (c#, java) vs interpreting runtimes (Python) : pros and cons
  • Memory registers, functions parameters, return values, builtin types and POD users defined types
  • Multidimensional arrays
  • Multi threading bottlenecks
  • Performances
  • Appendixes
  • Debugging your programs,
  • Early returns and exceptions,
  • DLL modules, calls from VBA/Python,
  • Compilation steps, generation of MSVC errors (LINK, COMPIL)
     

Bibliographie

Beginners :
Griffiths D. & D. Griffiths, "Head First C", O'Reilly Media, 2012.
Koenig A. & B. E. Moo, "Accelerated C++", Addison-Wesley, 2000

Reference guides :
Nicolai M. Josuttis N. M., "The C++ standard library" 2nd edition, Addison-Wesley, 2012
Andrei Alexandrescu A., "Modern C++ Design", Addison-Wesley, 2001

Online Gurus :
http://www.drdobbs.com/
 

Examen

Submit an issue that has to be solve using a program - 30%
Set up a test suite to ensure the delivered program has been made as expected - 30%
Solve one random issue with a simple and clear C++ program - 30%
Others - 10%