Développement piloté par les tests I

Description

Introduction à la programmation C++ et au développement piloté par les tests « Test-Driven Development »; fonctionnement des algorithmes; utilisation des instructions; utilisation des caractères.

Objectifs

  • Comprendre les notions de base liées à la programmation et aux algorithmes
    • Définir la programmation structurée, un algorithme, un algorigramme, une instruction et un programme
    • Expliquer les différences entre un langage de bas niveau et un langage de haut niveau
    • Expliquer les différences entre un fichier source et un fichier exécutable
    • Expliquer les différences entre un assembleur, un interpréteur et un compilateur
    • Expliquer les étapes de la conception et de la création d’un programme
    • Expliquer le rôle de l’algorithme logique
    • Décrire les symboles utilisés dans la construction d’un algorigramme
  • Comprendre le fonctionnement des algorithmes
    • Décrire les différentes structures des algorithmes
    • Expliquer le rôle de chacun des éléments d’un algorithme
    • Décrire les caractéristiques des différentes structures de contrôle (séquentielles, conditionnelles, alternatives et répétitives)
  • Comprendre la structure d’un programme
    • Nommer les différentes sections d’un programme
    • Expliquer le rôle des directives au préprocesseur, de la fonction Main( ) et des instructions dans un programme
    • Expliquer les notions de déclaration et d’affectation en programmation
    • Expliquer les différences entre une instruction de déclaration et une instruction exécutable
    • Décrire les caractéristiques des constantes, des variables, des procédures et des fonctions
    • Expliquer le rôle des constantes, des variables, des procédures et des fonctions
    • Décrire le processus d’entrée et de sortie de l’information
  • Comprendre les types de données
    • Expliquer ce qu’est une variable
    • Différencier les attributs d’une variable, soit le type de celle-ci, son nom, son contenu, son adresse et sa taille
    • Reconnaître les données pouvant être interprétées comme un nombre entier
    • Reconnaître les données pouvant être interprétées comme un nombre réel
    • Reconnaître les données pouvant être interprétées comme un caractère
    • Sélectionner le type de données le plus efficace pour représenter une valeur numérique ou un caractère (short int, int, long int, float, double, char)
    • Déclarer des variables permettant de stocker des données de type entier, réel et caractère
    • Expliquer la portée d’une variable « Scope »
    • Déclarer des constantes
    • Distinguer une variable d’une constante
    • Utiliser la conversion explicite pour forcer le type de données résultant d’une expression « Cast »
  • Utiliser les objets de base pour les entrées et sorties
    • Utiliser l’objet « Cout » afin de produire des sorties de différents types de données
    • Utiliser l’objet « Cin » afin de produire des entrées utilisant différents types de données
  • Appliquer les opérateurs arithmétiques
    • Utiliser les opérateurs arithmétiques afin d’écrire des expressions « +, -, *, /, % »
    • Utiliser les opérateurs d’assignation afin d’écrire des expressions « =, +=, -=, *=, /=, %= »
    • Utiliser les opérateurs unitaires afin d’écrire des expressions « +, - »
    • Utiliser les opérateurs d’incrémentation et de décrémentation afin d’écrire des expressions « ++, -- »
    • Décrire les règles de précédence et d’associativité afin de résoudre et d’écrire des expressions.
  • Appliquer des instructions décisionnelles
    • Utiliser les opérateurs logiques afin d’écrire des expressions logiques « !, &&, || »
    • Utiliser les opérateurs relationnels afin d’écrire des expressions logiques « <, >=, >, >=, = =, != »
    • Résoudre des expressions logiques simples et composées
    • Utiliser l’instruction « If » pour écrire des instructions de décision
    • Utiliser l’instruction « Switch » pour écrire des instructions de décision à sélections multiples
  • Appliquer des instructions itératives
    • Différencier une boucle avec prétest d’une boucle avec post-test
    • Utiliser l’instruction « For » pour écrire des instructions de répétitions simples et imbriquées
    • Utiliser l’instruction « While » pour écrire des instructions de répétitions simples et imbriquées
    • Utiliser l’instruction « Do…While » pour écrire des instructions de répétitions simples et imbriquées
    • Utiliser une boucle pour gérer l’exécution d’un programme à l’aide d’un menu
    • Utiliser une variable comme accumulateur
    • Utiliser une variable comme compteur
  • Programmer des fonctions
    • Expliquer l’utilité des fonctions
    • Programmer des fonctions qui ne retournent aucune valeur
    • Programmer des fonctions qui retournent une valeur
    • Programmer des fonctions sans paramètres
    • Programmer des fonctions avec paramètres passés sous forme de valeurs
    • Déclarer des paramètres de référence
    • Déclarer des paramètres par défaut
    • Déclarer des paramètres vides
    • Utiliser des prototypes de fonctions
    • Utiliser la surcharge de fonction
    • Décrire le rôle des principales fonctions prédéfinies
    • Utiliser les fonctions prédéfinies
  • Manipuler des tableaux
    • Expliquer ce qu’est un tableau
    • Déclarer un tableau à une dimension
    • Déclarer un tableau à deux dimensions
    • Initialiser un tableau
    • Lire des données dans un tableau
    • Écrire des données dans un tableau
    • Passer un tableau en paramètre à une fonction
    • Utiliser l’algorithme de recherche séquentielle pour trouver les occurrences d'une valeur dans un tableau
    • Utiliser des algorithmes du tri pour ordonner le contenu d’un tableau
    • Utiliser l’algorithme de recherche binaire pour trouver les occurrences d’une valeur dans un tableau trié
  • Manipuler des chaînes de caractères
    • Expliquer ce qu’est une chaîne de caractères
    • Déclarer une chaîne de caractères
    • Initialiser une chaîne de caractères
    • Déterminer la longueur d’une chaîne de caractères
    • Lire une chaîne de caractères
    • Stocker une chaîne de caractères sous forme de table à une dimension
    • Copier une chaîne de caractères
    • Transformer une chaîne de caractères en paramètre à une fonction
  • Utiliser des structures et énumérations
    • Expliquer ce qu’est une structure 
    • Déclarer une structure
    • Initialiser une structure
    • Accéder aux membres d’une structure
    • Utiliser une structure dans un programme
    • Transformer une structure en paramètre
    • Programmer une fonction qui retourne une structure
    • Expliquer ce qu’est une énumération
    • Déclarer une énumération
    • Utiliser une énumération dans un programme
  • Développer des classes
    • Expliquer le concept de classe
    • Définir une classe
    • Expliquer la portée « Scope » d’une classe
    • Accéder aux membres d’une classe
    • Contrôler l’accès aux membres d’une classe
    • Expliquer le concept d’interface
    • Différencier l’interface de la classe de l’implémentation de la classe.
    • Expliquer le concept d’objet
    • Expliquer ce qu’est un constructeur
    • Initialiser un objet de classe à partir d’un constructeur
    • Expliquer ce qu’est un destructeur
    • Utiliser un destructeur
    • Utiliser des membres de données « Data Members »
    •  Utiliser des fonctions membres « Member Functions »
    • Déclarer des objets constants à partir du qualificateur const
    • Déclarer des fonctions membres constantes à partir du qualificateur const
    • Déclarer une fonction friend
    • Déclarer une classe friend
    • Utiliser le pointeur this
    • Attribuer de la mémoire dynamiquement avec les opérateurs new et delete
    • Déclarer des membres static
    • Expliquer l’abstraction de données et le masquage de l’information
    • Expliquer ce qu’est une classe de contenu « Container Class »
    • Expliquer ce qu’est un itérateur
  • Utiliser la classe string pour la gestion de flux de chaînes de caractères
    • Expliquer les caractéristiques d’une chaîne
    • Déclarer une chaîne
    • Concaténer des chaînes
    • Comparer des chaînes
    • Rechercher dans une chaîne
    • Insérer des caractères dans une chaîne
    • Convertir une chaîne de caractère « String » de C++ en chaîne char * de style C
    • Utiliser des itérateurs de chaînes
  • Déboguer un programme
    • Différencier les erreurs de syntaxe, les erreurs d’exécution et les erreurs de logique
    • Nommer les méthodes à utiliser pour la détection de différents types d’erreurs
    • Utiliser le débogueur pour suivre l’exécution des instructions d’un programme
    • Utiliser le débogueur pour suivre le contenu d’une variable en cours d’exécution
    • Utiliser le débogueur pour changer le contenu d’une variable en cours d’exécution
  • Comprendre le développement piloté par les tests
    • Expliquer la méthode de développement piloté par les tests « Test-Driven Development »
    •  Expliquer le cycle de la méthode de développement piloté par les tests « TDD »
  • Développer des tests unitaires
    • Écrire un test unitaire
    • Vérifier qu’un test unitaire échoue avec du code inexistant pour la vérification que le test est valide 
    • Vérifier que le test passe avec un code simple et suffisant pour passer le test
    • Vérifier que le test passe avec un code réusiné tout en gardant la même fonctionnalité

Aperçu du contenu

  • Programmation de base en C++
  • Développement d’algorithmes
  • Développement de fonctions
  • Manipulation de structures de données statiques
  • Développement de classes
  • Débogage d’un programme
  • Développement piloté par les tests
  • Développement de tests unitaires