Vous êtes ici : FIL > Portail > Master Informatique > M1S2 > COA

Conception Object Avancée

Responsable

Giuseppe Lipari

Volume horaire

12 séances de CM/TD et 12 séances de TP.

Les transparents et le matériel didactique sont en anglais.

Crédits

5 ECTS

Description

Cette UE porte sur le langage de programmation C++.

Le langage C++ n'est pas une simple evolution du langage C, mais c'est un langage plus riche et complexe. Les efforts de standardization récentes (C++11, C++14 et C++17) ont ajouté une grande nombre de foncionnalité comme les lambda functions, l'induction sur les types, la metaprogrammation, etc. qui ont modernisé le langage. Ses characteristiques principales sont:

  • Haute performance : C++ est un de langage le plus performants en terme de rapidité et taille en mémoire du code géneré ;
  • Un système de templates très puissante qui permet la meta-programmation ou programmation à temps de compilation.
  • Un système de typage plus fort et sûr que des langages bas-niveau comme le C.

Le C++ est un des langages le plus utilisé aujourd'hui. Il y a un nombre très élevé de programmes et librairies codé en C++ pour de raisons de performances:

  • Interfaces graphiques: Qt, GTK++, etc.
  • Librairies de processing d'images: OpenCV, dlib, OpenGL, etc.
  • Librairies graphiques: Cairo, SDL, Cinder, etc.
  • Game engines: EnTT, EntityX, etc.
  • Mathematique, machine learning, etc.

En revanche, le nombre très élevé de fonctionnalités rends plus difficile de programmer correctement en C++.

Specialités

Cette UE est compatible avec les specialités TIIR, IVI, IAGL.
Giuseppe Lipari
dernière modification : 19/06/2017 à 12:36:50

Objectives

Dans cette UE, l'étudiant apprendra:
  • Les fonctionnalité du langage ;
  • Les patron de programmation typique du C++ moderne ;
  • Des applications typiques du langage.

Contenu (en anglais)

  • Introduction
  • Pointers vs. references, copy constructor, const references
  • operators, type conversion
  • inheritance, virtual functions, slicing, multiple inheritance
  • exceptions, templates, stl
  • template metaprogramming
  • function objects, lambda functions, auto, range-based loops
  • temporary objects and move semantic
  • exception safety, smart pointers
  • threading, atomic instructions
  • design patterns in C++
Giuseppe Lipari
dernière modification : 12/06/2017 à 15:09:12

Emploi du temps

À faire.
Séance Amphi TD TP Remarque
1 du 09/01 au 14/01
Giuseppe Lipari
dernière modification : 12/06/2017 à 15:12:29

À faire.

Giuseppe Lipari
dernière modification : 14/06/2017 à 11:02:21