DÉVELOPPER EN C++
AU QUOTIDIEN

Faîtes valoir vos compétences sur le marché de l'emploi

Certification : "Développer en C++"

La certification "Développer en C++" de CODE RECKONS est en cours de validation auprès de France Compétences.

LES OBJECTIFS

Parmi les langages les plus utilisés aujourd’hui, C++ se place régulièrement dans le top 5. C++ est aussi un langage vivant, comme le démontre les nouvelles normes parues récemment. Alliant un haut niveau d’abstraction à un haut niveau de performance, C++ est le langage de prédilection pour la construction de logiciels d’infrastructure ou de logiciels demandeurs de fortes performances.

"Développer en C++" a pour objectif de valider les compétences techniques de programmation nécessaires à une maîtrise à la fois du langage C++ et des stratégies de développement associées : programmation impérative, programmation orientée objet, approche fonctionnelle des algorithmes, programmation générique. 

Les pré-requis :

"Développer en C++" est destiné aux développeurs qui ont déjà une expérience de la programmation informatique (C, Python, Java etc...). 

"Développer en C++" s’adresse notamment à un public de développeurs, techniciens, ingénieurs et scientifiques, responsables du développement logiciels qui sont susceptibles d’utiliser un langage de programmation performant dans leurs tâches de tous les jours.

LES COMPÉTENCES ATTESTÉES

5 compétences sont évaluées :

Compétence n°1 :

C1 - Maîtriser les composants fondamentaux du C++ en développant des programmes simples pour réaliser des opérations de base.

Compétence n°2 :

C2 - Maîtriser l’analyse et la programmation impérative en C++ afin d’acquérir les fondamentaux de la programmation structurée.

Compétence n°3 :

C3 - Exploiter les composants de la bibliothèque standard C++ afin de développer efficacement.

Compétence n°4 :

C4 - Concevoir un modèle objet en C++ en maîtrisant les concepts natifs du langage.

Compétence n°5 :

C5 - Appliquer les principes de la programmation générique en C++ afin de développer des méta-programmes aboutis et optimisés.

LES MODALITÉS D'ÉVALUATION

LES MODALITÉS D'ÉVALUATION

Les évaluations alternent entre contrôle de connaissances et pratiques à distance :

Évaluation n°1 :

Contrôle continu : le candidat doit répondre à l’intégralité d’une série d’exercices

Tout au long du parcours, l’apprenant doit répondre à une série d’exercices d’application avec un système de contrôle automatique qui donne des indications sur celles-ci. L’apprenant peut répondre correctement du premier coup, se tromper et retenter sa chance, poser une question, ou encore passer l’exercice. 

CODE RECKONS suit en interne l'évolution de chaque candidat.

Compétence n°1 :
Types et variables : 45 exercices.
Structure de contrôle : 20 exercices.
Entrées/sorties : 15 exercices.

Compétence n°2 :
Aspects impératifs : 55 exercices.
Structure de données : 30 exercices.

Compétence n°3 :
Conteneurs et algorithmes : 40 exercices.
Bibliothèque standard : 20 exercices.

Compétence n°4 :
Programmation orientée objet : 30 exercices.
Gestion des ressources : 20 exercices.

Compétence n°5 :
Programmation template : 40 exercices.
Manipulation de types : 30 exercices.

Évaluation n°2 :

Évaluation écrite sous forme de QCM / Questionnaire. 

CODE RECKONS remet un questionnaire à choix multiples qui porte sur les connaissances associées à la programmation en langage C++. Le candidat mobilise ses savoirs et son savoir-faire pour répondre aux questions.

Évaluation n°3 :

Mise en situation à partir des compétences C4 et C5.  

Le candidat doit démontrer sa maîtrise du développement et justifier ses choix de conception par la réalisation de mini-projets soumis par l’évaluateur

LES TARIFS

3 000,00 euros HT
Si vous êtes doctorant, ou tout organisme dépendant d'un ministère d'état, veuillez contacter directement CODE RECKONS.

LE CONTENU EN DÉTAIL

Chapitre 1 - Introduction

Historique du langage.
Positionnement dans l’écosystème logiciel actuel.
Eléments de base d’un programme C++.
Processus de compilation.
C++ comme un langage multi-paradigme.

Chapitre 2 - Types et variables

Types natifs du langage.
Types composites du langage.
Types structurés.
Qualificateurs.
Inférence de type.

Chapitre 3 - Structures de contrôle

Notion de flots de contrôle.
Bloc conditionnel.
Structure répétitive déterministe.
Structures répétitives conditionnelles.
Bloc de sélection.

Chapitre 4 - Aspects impératifs

Définition et déclaration de fonctions.
Fonctions récursives.
Passage de paramètres.
Paramètres par défaut.
Surcharge de fonctions.
Surcharge d’opérateurs.
Fonctions génériques.
Inférence du type de retour.
Retours multiples.
Gestion des erreurs : codes de retour.
Gestion des erreurs : exceptions.
Gestion des erreurs : valeurs optionnelles.
Espace de noms.
Principe de « argument dependant lookup ».

Chapitre 5 - Entrées/Sorties

Modèles de flux.
Flux console.
Flux de chaîne.
Flux de fichiers textes.
Flux de fichiers binaires.
Manipulations de flux.
Outils pour le formatage.

Chapitre 6 - Structures de données

Structure définie par l’utilisateur.
Interaction avec les fonctions.
Notion de fonctions membres.
Liste d’initialiseurs.

Chapitre 7 - Conteneurs et algorithmes

Conteneurs séquentiels.
Conteneurs associatifs.
Adaptateurs de conteneurs.
Allocateurs.
Itérateurs.
Algorithmes.
Fonctions anonymes.

Chapitre 8 - Programmation orientée objet

Principe d’encapsulation.
Héritage : factorisation de code.
Héritage : support du polymorphisme.
Classes abstraites.
Gestion du polymorphisme : « final » & « override ».
Pattern NVI.
Principe de substitution de Liskov.

Chapitre 9 - Gestion des ressources

lvalue et rvalue.
Sémantique de transfert.
Principe de la RAII.
Pointeur à sémantique riche.

Chapitre 10 - Programmation templates

Rappels sur la généricité.
Template de classe.
Spécialisation et spécialisation partielle.
Guide de déduction
Template variadique.
Perfect Forwarding et Références Universelles.
Alias de type.

Chapitre 11 - La bibliothèque standard

Gestion du temps.
Fonction de hachage.
Outils pour le calcul numérique.
Gestion du système de fichier.
Variant.