A la fin de ce cours l'étudiant doit être capable de : a) modéliser en langage C++ une situation modérément complexe du monde réelle décrite en français ; b) analyser un problème complexe pour le décomposer en sous-problèmes ; c) concevoir des algorithmes résolvant des tâches modérément complexes ; d) transcrire un algorithme en son programme équivalent en C++ utilisant les concepts de l'orienté objet (abstraction, encapsulation, héritage et polymorphisme) ; e) réaliser de façon autonome une application de taille moyenne à l'aide de la couche orientée objet du langage C++ ; f) analyser du code C++ avancé pour en décrire le résultat ou le corriger s'il est erroné adéquation du résultat d'un programme par rapport à la tâche demandée ; g) tester l'adéquation du résultat d'un programme par rapport à la tâche demandée. Compétences transversales : a) persévérer dans la difficulté ou après un échec initial pour trouver une meilleure solution ; b) accéder aux sources d'informations appropriées et les évaluer ; c) planifier des actions et les mener à bien de façon à faire un usage optimal du temps et des ressources à disposition ; d) gérer ses priorités ; e) utiliser une méthodologie de travail appropriée, organiser un/son travail.