Vous êtes ici : FIL > Portail > Master Info > 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 : 14/01/2019 à 10:30:46

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 : 14/01/2019 à 10:30:46

Communications

  • La séance de TP de lundi 14 janvier (groupe 1) est annullée.
  • La séance de TP de mercredi 23 janvier (groupe 2) est annullée.
  • À partir du 21 janvier, les séances de CTD se font en Amphi Turing (M3, premier étage)

Semainier

Séance Date Content File TP
1 14/01 Introduction, basics Introduction.zip TP 1
2 21/01 constness, operators Operators.zip "
3 28/02 Inheritance Inheritance.zip TP 2
4 4/02 Exceptions Exceptions.zip TP 3
5 11/02 Templates " "
- 18/02 Int. Pedagogique -- --
6 25/02 Contrôle continu " Contrôle continu
7 4/03 Smart Pointers smart pointers.zip TP4
8 11/03 Simulation with metasim Simulation with metasim TP5
9 18/03 Lambda Functions Functional.zip "
10 25/03 Metaprogramming Metaprogramming TP6
11 1/04 Threads Threads "
12 9/05 EXAMEN -- --

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.zip
  6. Simulation with metasim
  7. Functions and lambdas
  8. Metaprogramming
  9. Threads

TPs

  1. Stack
  2. Opérateurs sur le stack
  3. Formes
  4. Templates
  5. Simulation with metasim
  6. Graph Library
Giuseppe Lipari
dernière modification : 24/04/2019 à 11:08:41

Examen

L'épreuve orale porte sur tout le programme (voir les slides et les exemples fourni dans la section "Documents"). L'examen est individuel et il dure environ 20 minutes.

L'étudiant devra savoir répondre à des questions sur les TPs et commenter du code proposé par l'enseignant, ou resoudres de simples exercices de programmation.

Attention : il faut savoir s'exprimer correctement, en utilisant les termes techniques appropriés (en français ou en anglais) : la note tiendra compte aussi de la qualité de l'expression orale. La note finale sera calculé comme une moyenne de la note des TPs et de l'épreuve oral.

Examen final

L'examen aura lieu le 9 mai à partir de 9h00 en salle B10 au M5.

Voici l'heure de passage.

Groupe 1 (Ballabriga)

Matin

1 ROCHER cyril 09:00:00 00:18:00
2 DAUSQUE nicolas 09:18:00 00:18:00
3 FOURNIER allan 09:36:00 00:18:00
4 BAZIR allyson 09:54:00 00:18:00
5 GALASSE tao 10:12:00 00:18:00
6 DELBECQUE fabien 10:30:00 00:18:00
7 LAHAYE jean 10:48:00 00:18:00
8 ROUSSEL ambroise 11:06:00 00:18:00
9 ANCIAUX christopher 11:24:00 00:18:00
10 SOLOWIEFF jonathan 11:42:00 00:18:00
11 VIENNE jeremy 12:00:00 00:18:00

Après midi

1 CANOEN zoé 14:00:00 00:18:00
2 ZENATI lamine 14:18:00 00:18:00
3 DEFFONTAINE marine 14:36:00 00:18:00
4 LEMERRE mathieu 14:54:00 00:18:00
5 POURRY florian 15:12:00 00:18:00
6 BAËS yann 15:30:00 00:18:00
7 BARBILLON alexandre 15:48:00 00:18:00
8 TEXIER léane 16:06:00 00:18:00
9 GREBANT sandro 16:24:00 00:18:00
10 LEJEUNE valentine 16:42:00 00:18:00
11 KOODUN jayjaywantee 17:00:00 00:18:00
12 VERQUERRE clara 17:18:00 00:18:00
13 DEGAUCHY valentin 17:36:00 00:18:00
14 PATTE pierre 17:54:00 00:18:00
15 CARRARA thomas 18:12:00 00:18:00

Groupe 2 (Lipari)

Matin

1 DJELLOULI brahim 09:00:00 00:18:00
2 KUTEK nicolas 09:18:00 00:18:00
3 BEAUPREZ ellie 09:36:00 00:18:00
4 MARES noura 09:54:00 00:18:00
5 LABSARI soufyane 10:12:00 00:18:00
6 LECOINTE florian 10:30:00 00:18:00
7 BENSADOK imrane 10:48:00 00:18:00
8 ROCA vincent 11:06:00 00:18:00
9 AL YASINI omar 11:24:00 00:18:00
10 OUTIOUA mohamed 11:42:00 00:18:00
11 LAFQUIH ayoub 12:00:00 00:18:00

Après midi

1 DESRUMAUX matthias 14:00:00 00:18:00
2 PROVIS pirlouit 14:18:00 00:18:00
3 KASPEREK gautier 14:36:00 00:18:00
4 DRINCQBIER gautier 14:54:00 00:18:00
5 BENKHIDER zinedine 15:12:00 00:18:00
6 ROUGETET arnaud 15:30:00 00:18:00
7 BEUNS vianney 15:48:00 00:18:00
8 MONS marie 16:06:00 00:18:00
9 YAHIATENE mohamed 16:24:00 00:18:00
10 BRIAND quentin 16:42:00 00:18:00
11 BEUCHEY anthony 17:00:00 00:18:00
12 BA ramata 17:18:00 00:18:00
13 LEGRAND eliott 17:36:00 00:18:00
14 ATMANE bilal 17:54:00 00:18:00
15 BAKKARI mohamed 18:12:00 00:18:00