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 : 16/04/2018 à 15:27:54

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

Séance Date Content File TP
1 22/01 Introduction, basics introduction.zip TP1: Stack
2 29/01 Operators operators.zip TP2: Opérateurs
3 5/02 Inheritance inheritance.zip TP3: Formes
4 12/02 Templates, exceptions exceptions.zip TP3: cont.
5 19/02 Techniques exceptions.zip TP4: templates
- 26/03 Int. Pedagogique -- --
6 5/03 Contrôle continu smart pointers Contrôle continu
7 12/03 Smart Pointers smart pointers TP5: Wireless Network Simulation
8 19/03 Exception-safe programming Exception safety "
9 26/03 Template Metaprogramming Metaprogramming "
- 2/04 Lundi de Pâque -- --
10 9/04 Lambda function Functional "
11 16/04 Threads in C++ Threads "

Examen

L'examen oral aura lieu le vendredi 11 mai à 9:00 (salle à definir).

Heure de passage:

  • Matin

    SEM jean-jacques 09:00:00 AM
    COTTON pierric 09:15:00 AM
    VALETTE henri 09:30:00 AM
    GEORGE chloé 09:45:00 AM
    LAMOOT romain 10:00:00 AM
    CANIPEL marc 10:15:00 AM
    VERGRIETE florian 10:30:00 AM
    SMLALI achraf 10:45:00 AM
    BINTCHA patrick 11:00:00 AM
    ARBLAY thomas 11:15:00 AM
    NOIRBENT marion 11:30:00 AM
    HARRAT naim 11:45:00 AM
    BERNARD corentin 12:00:00 PM
    DAMBRINE valentin 12:15:00 PM
    HOUSET thomas 12:30:00 PM
    MORLET kevin 12:45:00 PM
  • après-midi

    HERIPRET estelle 02:00:00 PM
    MASTIN clément 02:15:00 PM
    PUSSOT alexy 02:30:00 PM
    DEFOSSEZ gautier 02:45:00 PM
    LAFRANCE antoine 03:00:00 PM
    BAKKARI mohamed 03:15:00 PM
    DUPUIS alexis 03:30:00 PM
    OUVRY ludovic 03:45:00 PM
    DELPLANQUE jordan 04:00:00 PM
    RIVELON jordan 04:15:00 PM
    MAGAND louis 04:30:00 PM
    GARBÉ yann 04:45:00 PM
    TROUCHAUD alexandre 05:00:00 PM
    TESSA arnaud 05:15:00 PM
Giuseppe Lipari
dernière modification : 16/04/2018 à 15:37:40

Documents

Slides et exemples

Chaque fichier .zip contient le fichier pdf avec les slides, et un dossier examples qui contient les exemples du cours.

  1. Introduction
  2. Operators
  3. Inheritance
  4. exceptions.zip
  5. smart pointers
  6. Exception safety
  7. Metaprogramming
  8. Functional
  9. Threads
Giuseppe Lipari
dernière modification : 16/04/2018 à 15:37:16

Examen

L'examen oral aura lieu le lundi 7 mai à 9:00, salle A14.

L'épreuve porte sur tout le programme (voir les slides et les exemples fourni dans la section "Documents"). L'examen est individuel et il dure environ 15 minutes. L'étudiant doit savoir répondre à des questions sur les TPs et commenter du code proposé par l'enseignant. Il faut savoir s'exprimer correctement, en utilisant les termes techniques appropriés.

La note finale sera calculé comme une moyenne de la note des TPs, et de l'épreuve oral.

Heure de passage

  • Matin

    SEM jean-jacques 09:00:00 AM
    COTTON pierric 09:15:00 AM
    VALETTE henri 09:30:00 AM
    GEORGE chloé 09:45:00 AM
    LAMOOT romain 10:00:00 AM
    CANIPEL marc 10:15:00 AM
    VERGRIETE florian 10:30:00 AM
    SMLALI achraf 10:45:00 AM
    BINTCHA patrick 11:00:00 AM
    ARBLAY thomas 11:15:00 AM
    NOIRBENT marion 11:30:00 AM
    HARRAT naim 11:45:00 AM
    BERNARD corentin 12:00:00 PM
    DAMBRINE valentin 12:15:00 PM
    HOUSET thomas 12:30:00 PM
    MORLET kevin 12:45:00 PM
  • Après-midi

    HERIPRET estelle 02:00:00 PM
    MASTIN clément 02:15:00 PM
    PUSSOT alexy 02:30:00 PM
    DEFOSSEZ gautier 02:45:00 PM
    LAFRANCE antoine 03:00:00 PM
    BAKKARI mohamed 03:15:00 PM
    DUPUIS alexis 03:30:00 PM
    OUVRY ludovic 03:45:00 PM
    DELPLANQUE jordan 04:00:00 PM
    RIVELON jordan 04:15:00 PM
    MAGAND louis 04:30:00 PM
    GARBÉ yann 04:45:00 PM
    TROUCHAUD alexandre 05:00:00 PM
    TESSA arnaud 05:15:00 PM
Giuseppe Lipari
dernière modification : 16/04/2018 à 16:17:08