Programmation générique en C++

Acquis du module

Ce module propose l’apprentissage du langage C++, langage mêlant à la fois haut-niveau d’abstraction et performance d’exécution.
A l’issu de cette formation, l’étudiant sera en mesure d’implémenter des programmes dans le langage C++ en utilisant les conteneurs standards que propose la STL.
Il connaîtra les bonnes pratiques de programmation logiciels appliqué au C++ (encapsulation, généricité, lisibilité). Il saura utiliser des structures de données adaptées pour traiter des problèmes d’organisation de données (arbres, graphes).
Il saura mettre en place des IHM simples à l’aide de Qt.
Il saura utiliser et programmer des méthodes génériques simples par templates.

  • Identifier
    • Les structures de données efficaces en C++.
    • Des bibliothèques logiciels génériques externes,
  • Concevoir
    • Des classes en C++.
    • Des implémentation de fonction génériques.
    • Un programme efficace basé sur l’ensemble des classes.
  • Mettre en oeuvre
    • L’utilisation de la bibliothèque standard du C++ (STL).
    • La librairie Qt pour créer une IHM simple.

Contenu

Le langage C++

Le module abordera la syntaxe spécifique du C++. Après avoir présenté les motivations de l’apprentissage de ce langage, les différences fondamentales avec les autres langages tels que le Java, le C, ou avec les scripts tels que Matlab ou Octave seront présentées.
Les mots clés du C++ seront abordés avec un rappel sur les classes et l’héritage. L’accent sera mis sur les spécificités C++ avec la notion de référence, l’utilisation du mot clé const à bon escient ainsi que les avantages de la surcharge d’opérateur pour le calcul numérique.

Programmation générique

Le C++ permet la programmation générique qui, une fois programmée correctement, permet de s’adapter de manière automatique à de nombreuses classes de problèmes.
La généricité sera abordée par la présentation et l’utilisation tant que possible des classes et algorithmes de la librairie standard STL.
Dans un second temps, l’utilisation du polymorphisme sera revue en tant que modèle d’écriture générique. Enfin, la compréhension du mécanisme du template ainsi que l’écriture de fonctions template sera étudié dans un objectif d’écriture de code générique.
Afin d’illustrer ces différentes notions, les librairies génériques telles que Boost seront prises en exemples, et la nouvelle norme C++11 sera mentionnée.

Développement logiciel

Tout au long du déroulement de ce module, la notion de développement propre et évolutif sera mis en avant. En particulier, l’accent sera mis sur le respect des bonnes pratiques de programmation permettant sa lisibilité.
Enfin, dans le contexte d’un développement d’un logiciel fonctionnel complet, la librairie Qt sera présentée et donnera lieu à l’implémentation d’IHM.

Comments are closed