Choisissez votre langue
Formation en programmation C/C++
Plus de 2 millions d'étudiants dans le monde

Formation en programmation C/C++

Maîtrisez C et C++ de A à Z, en couvrant tout, de la mémoire brute et des pointeurs aux fonctionnalités modernes de C++20, aux patrons de conception et aux systèmes concurrents. Ce cours vous donne la profondeur technique que les développeurs professionnels et les ingénieurs système utilisent réellement au travail. Que vous visiez le firmware embarqué, les applications haute performance ou les entretiens techniques, vous repartirez avec de véritables compétences prêtes pour la production.

Dedika pour les entreprises

Ce que vous allez apprendre:

Vous construirez une base complète dans la syntaxe de C et C++, la gestion de la mémoire et la programmation orientée objet avant de passer aux templates, à la bibliothèque standard de templates et aux fonctionnalités modernes de C++17/20. Le cours couvre les structures de données et les algorithmes implémentés à partir de zéro, vous donnant les compétences en résolution de problèmes nécessaires pour les entretiens techniques et le travail système. Vous apprendrez également à utiliser des outils standard de l'industrie, notamment CMake, GDB, Google Test et les analyseurs statiques. Les sujets de programmation embarquée et de bas niveau vous préparent au développement de firmware et de bas niveau. À la fin, vous serez équipé pour concevoir, construire et livrer des logiciels C++ robustes dans des environnements professionnels.

Comment vous étudiez de façon pratique Formation en programmation C/C++

Comment vous pratiquez Formation en programmation C/C++

Pour vous, entreprise, qui souhaitez former votre équipe

Avec Dedika pour les entreprises, le cours inclut des exercices et des exemples adaptés à votre propre activité et aux besoins spécifiques de votre entreprise.

Cliquez ici

Contenu du cours

8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Bases de l'environnement et de la syntaxe C/C++

  • Leçon 1 • Variables, types et littéraux

    Présente les types de données primitifs, la déclaration de variables et les valeurs littérales. La maîtrise de ces concepts permet une représentation correcte des données tout au long du cours.

  • Leçon 2 • Fondamentaux des entrées-sorties

    Enseigne les E/S console avec printf/scanf en C et cin/cout en C++. Permet de créer les programmes interactifs nécessaires dans chaque exercice pratique.

  • Leçon 3 • Opérateurs et expressions

    Couvre les opérateurs arithmétiques, relationnels, logiques et binaires avec les règles de précédence. Développe la compétence d'écriture d'expressions nécessaire pour tous les flux de contrôle et algorithmes.

  • Leçon 4 • Syntaxe de base et structure du programme

    Couvre les tokens, les instructions, les blocs et l'anatomie d'un fichier source C/C++. Se connecte directement à l'écriture de tout programme valide dans les chapitres suivants.

  • Leçon 5 • Configuration de l'environnement de développement

    Installer et configurer les compilateurs, éditeurs et outils de construction pour C/C++. Fournit la base technique dont dépend chaque chapitre suivant.

Chapitre 2Voir les détails

Flux de contrôle et fonctions

  • Leçon 1 • Déclaration et définition de fonctions

    Présente les prototypes de fonctions, les définitions et les mécanismes d'appel en C/C++. Établit les principes de conception modulaire utilisés tout au long du cours.

  • Leçon 2 • Portée, durée de vie et classes de stockage

    Explique les variables locales, globales et statiques ainsi que leur durée de vie. Empêche les bugs courants liés aux variables non initialisées ou à la portée incorrecte.

  • Leçon 3 • Fondamentaux de la récursivité

    Couvre la conception de fonctions récursives, les cas de base et le comportement de la pile. Prépare les étudiants aux algorithmes récursifs et aux structures de données dans les chapitres suivants.

  • Leçon 4 • Instructions conditionnelles

    Couvre les constructions if, else-if et switch pour la prise de décision. Permet directement la création de programmes pilotés par la logique, utilisée dans chaque chapitre

  • Leçon 5 • Boucles et itération

    Enseigne les boucles for, while et do-while ainsi que les instructions de contrôle de boucle. L'itération est la pierre angulaire des algorithmes et du traitement de données abordés plus tard.

Chapitre 3Voir les détails

Tableaux, chaînes de caractères et pointeurs

  • Leçon 1 • Chaînes de style C et fonctions de chaînes

    Enseigne les tableaux de caractères terminés par null et les fonctions standard de la bibliothèque de chaînes. Fournit les bases des chaînes C nécessaires avant l'introduction de std::string en C++.

  • Leçon 2 • Allocation dynamique de mémoire

    Enseigne malloc/free en C et new/delete en C++ pour la gestion du tas. Jette les bases des structures de données dynamiques abordées dans le chapitre suivant.

  • Leçon 3 • Tableaux à une et plusieurs dimensions

    Couvre la déclaration de tableaux, l'initialisation et les modèles d'accès aux éléments. Les tableaux sous-tendent presque toutes les structures de données introduites plus tard dans le cours.

  • Leçon 4 • Pointeurs et fonctions

    Couvre le passage de pointeurs aux fonctions et le retour sécurisé de pointeurs. Permet une manipulation efficace des données sans copie inutile.

  • Leçon 5 • Notions de base sur les pointeurs et arithmétique des adresses

    Introduit la déclaration de pointeurs, le déréférencement et l'arithmétique des pointeurs. Les pointeurs sont centraux pour la mémoire dynamique et la programmation de bas niveau dans les chapitres suivants.

Chapitre 4Voir les détails

Structures, unions et énumérations

  • Leçon 1 • Énumérations et alias de types

    Couvre les enums C, les enum class C++ et les déclarations typedef/using. Améliore la clarté du code et la sécurité de type dans tous les projets suivants.

  • Leçon 2 • Champs de bits et données compressées

    Introduit les membres de struct en tant que champs de bits pour une représentation compacte des données. Pertinent pour l'analyse de protocoles et le mappage de registres matériels dans les sujets avancés.

  • Leçon 3 • Pointeurs vers des structures

    Enseigne l'accès aux structures par pointeur et l'allocation dynamique de structures. Permet la création de structures de données chaînées dans le chapitre sur les algorithmes.

  • Leçon 4 • Unions et partage de mémoire

    Explique la sémantique des unions, le chevauchement de stockage et les cas d'utilisation valides. Fournit une compréhension de la mémoire de bas niveau pertinente pour la programmation embarquée et système.

  • Leçon 5 • Définition et utilisation des structures

    Couvre la déclaration de struct, l'accès aux membres et les structs imbriquées. Les structures sont le précurseur direct des classes C++ introduites dans le chapitre suivant.

Chapitre 5Voir les détails

Programmation orientée objet en C++

  • Leçon 1 • Polymorphisme et fonctions virtuelles

    Introduit les fonctions virtuelles, les fonctions virtuelles pures et les classes abstraites. Permet des modèles de dispatch à l'exécution, centraux pour la conception de logiciels extensibles.

  • Leçon 2 • Héritage et hiérarchies de classes

    Couvre l'héritage simple et multiple, l'accès aux classes de base et le chaînage des constructeurs. Développe les compétences de conception de hiérarchie nécessaires au polymorphisme.

  • Leçon 3 • Encapsulation et principes de conception

    Applique les principes SOLID et les stratégies d'encapsulation à la conception de classes. Prépare les étudiants à écrire du code C++ maintenable et testable dans les chapitres avancés.

  • Leçon 4 • Surcharge d'opérateurs

    Enseigne la surcharge des opérateurs arithmétiques, de comparaison et de flux pour des types personnalisés. Permet une syntaxe intuitive pour les classes définies par l'utilisateur utilisées dans les projets ultérieurs.

  • Leçon 5 • Classes et objets

    Couvre la déclaration de classe, les spécificateurs d'accès et l'instanciation d'objets. Établit le modèle de classe que toutes les fonctionnalités POO de ce chapitre étendent.

Chapitre 6Voir les détails

Templates, STL et programmation générique

  • Leçon 1 • Algorithmes STL

    Couvre sort, find, transform, accumulate et d'autres algorithmes standard. L'application des algorithmes STL remplace les boucles manuelles sujettes aux erreurs dans le code de production.

  • Leçon 2 • Templates de fonctions et de classes

    Couvre la syntaxe des templates, les paramètres de type et l'instanciation des templates. Les fonctions et classes génériques réduisent la duplication de code dans tous les projets futurs.

  • Leçon 3 • Conteneurs STL

    Introduit vector, list, deque, map, set et leurs variantes non ordonnées. Choisir le bon conteneur est essentiel pour les performances dans la conception d'algorithmes.

  • Leçon 4 • Expressions lambda et foncteurs

    Introduit la syntaxe lambda, les captures et les objets foncteurs à utiliser avec la STL. Permet une personnalisation concise et expressive des algorithmes en C++ moderne.

  • Leçon 5 • Itérateurs et plages

    Enseigne les catégories d'itérateurs, l'arithmétique des itérateurs et les boucles for basées sur une plage. Les itérateurs sont l'interface universelle entre les conteneurs et les algorithmes.

Chapitre 7Voir les détails

Gestion de la mémoire et sécurité des ressources

  • Leçon 1 • Gestion des exceptions et sécurité

    Couvre la syntaxe try/catch/throw, les hiérarchies d'exceptions et les garanties de sécurité vis-à-vis des exceptions. Une gestion robuste des erreurs empêche les fuites de ressources dans des conditions exceptionnelles.

  • Leçon 2 • RAII et propriété des ressources

    Explique l'idiome RAII et comment les constructeurs/destructeurs imposent la sécurité des ressources. Le RAII est le fondement de toute gestion sûre des ressources en C++ moderne.

  • Leçon 3 • Pointeurs intelligents en profondeur

    Couvre la sémantique et les modèles d'utilisation de unique_ptr, shared_ptr et weak_ptr. Les pointeurs intelligents éliminent les appels manuels à delete et empêchent les erreurs de propriété.

  • Leçon 4 • Sémantique de copie et de déplacement

    Enseigne les constructeurs de copie, l'affectation par copie, les constructeurs de déplacement et l'affectation par déplacement. La règle des cinq régit la conception correcte des classes possédant des ressources.

  • Leçon 5 • Débogage mémoire et profilage

    Introduit les outils pour détecter les fuites, les accès invalides et la corruption du tas. Les compétences en profilage sont essentielles pour maintenir du code C++ de qualité production.

Chapitre 8Voir les détails

E/S de fichiers, concurrence et programmation système

  • Leçon 1 • Multithreading avec std::thread

    Enseigne la création, la jointure et le détachement de threads à l'aide de la bibliothèque de threads C++11. Les fondamentaux de la concurrence permettent la conception de programmes parallèles dans ce chapitre.

  • Leçon 2 • Interfaces de processus et système

    Introduit la création de processus, les variables d'environnement et les appels système. Fournit le contexte au niveau du système d'exploitation nécessaire à l'écriture de programmes C système.

  • Leçon 3 • Notions de base sur la mise en réseau et les sockets

    Introduit l'API socket BSD pour la communication TCP/UDP en C/C++. Les compétences en mise en réseau étendent les applications C/C++ aux contextes distribués et client-serveur.

  • Leçon 4 • Synchronisation et situations de compétition

    Couvre les mutex, les variables conditionnelles et les opérations atomiques pour prévenir les situations de compétition. Une synchronisation sûre est obligatoire pour des programmes concurrents corrects.

  • Leçon 5 • E/S de fichiers en C et C++

    Couvre fopen/fclose en C et fstream en C++ pour la lecture et l'écriture de fichiers. Les E/S de fichiers sont nécessaires pour la persistance des données dans tous les projets de synthèse.

Certification

Votre certificat valide de réussite

Ce cours est pour vous :

  • Étudiants en informatique : cherchant une profondeur pratique au-delà de ce que les salles de classe offrent habituellement.

  • Développeurs Python ou JavaScript : prêts à comprendre ce qui se passe sous la couche d'abstraction.

  • Ingénieurs électriques : ayant besoin de compétences en C pour écrire et maintenir du firmware pour des projets matériels.

  • Reconvertis professionnels : visant des postes système ou embarqués nécessitant une maîtrise de la programmation bas niveau.

  • Développeurs de jeux : souhaitant optimiser le code critique pour les performances écrit en C ou C++.

  • Programmeurs autodidactes : construisant la base rigoureuse que des langages structurés comme C exigent.

Ce que disent nos apprenants

Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Digital
J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika ?

Le certificat est-il valable en Algérie ?

Les cours sont-ils gratuits ?

Quelle est la charge de travail du cours ?

Comment sont les cours ?

Comment fonctionnent les cours ?

Quelle est la durée des cours ?

Quel est le coût ou le prix des cours ?

Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?

Cours PDF