Unité Pr2 - L'approche descendante [Top Down] en programmation

 

Objectif global de l'unité

Les élèves devraient être capables de concevoir, programmer et évaluer des algorithmes structurés pour des problèmes nécessitant une approche descendante.

Contexte

Après un premier contact avec la conception d'algorithmes simples et leur programmation à travers l'unité Pr1 "Introduction à la programmation", les élèves devraient apprendre à pratiquer l'approche descendante, en utilisant les mêmes instruments de conception et le même environnement de programmation. Au fur et à mesure que les problèmes deviennent plus complexes, le besoin de l'approche descendante se fait davantage sentir. La programmation descendante est la méthode habituelle de conception et de production des logiciels commerciaux.

Résumé du contenu de l'unité

Cette unité comporte essentiellement trois activités: la conception descendante d'algorithmes, la traduction des algorithmes ainsi conçus en programmes et la mise en oeuvre de ces programmes. Comme avec l'unité Pr1 "Introduction à la programmation", ces trois activités se feront successivement et seront intimement liées. Bien que les descriptions suivantes envisagent chaque activité séparément, l'ordre de présentation ne doit pas nécessairement être l'ordre dans lequel ces activités seront enseignées.

1. Conception descendante (Top-Down) des algorithmes

Objectifs

Les élèves devraient être capables de:

  1. décrire et préciser la tâche à faire faire;
  2. concevoir des algorithmes corrects et efficaces de résolution d'un problème en utilisant l'approche descendante, par affinements successifs.

Contenu

Au départ, l'enseignant propose la résolution de quelques problèmes complexes, mais pour lesquels des procédures correspondant à des parties ou à des sous-problèmes du problème original sont disponibles et peuvent donc être intégrées à la solution. Dans un deuxième temps, les élèves analyseront ces procédures et en construiront aussi eux-mêmes.

Certains problèmes concerneront le traitement de chaînes de caractères, en utilisant les outils offerts par le langage de programmation disponible. Ce type d'algorithmes est important car il souligne le fait que l'on ne peut attendre que des traitements formels de la part de l'ordinateur. Voici quelques exemples de problèmes concernés: concaténation, comptabilisation du nombre de mots dans un texte, écriture d'un texte à l'envers, changement de toutes les voyelles d'un texte, recherche d'un mot dans un texte.

Il est important de pointer des problèmes débordant ces possibilités formelles, comme : la traduction d'un texte, sa correction ou son résumé.

2. Traduction de l'algorithme en un programme

Objectifs

Les élèves devraient être capables de:

  1. comprendre qu'un ordinateur ne traite que des "objets formels";
  2. transformer leurs algorithmes en programmes, exprimés dans un langage procédural, en utilisant des procédures ou des fonctions;
  3. produire un programme structuré par l'emploi de procédures, lisible, compréhensible et interactif.

Contenu

Il est important de transformer les algorithmes conçus de manière descendante en programmes utilisant des procédures et des fonctions, afin que les élèves prennent conscience de la nécessité de ces outils conceptuels.

Avant que le programme ne soit vraiment écrit, les élèves devraient évaluer et déboguer, pas à pas, un algorithme donné morcelé en blocs; ils devraient créer leurs propres jeux de données et tester les différentes parties de l'algorithme, mais également l'algorithme dans son ensemble.

Les élèves devraient utiliser les outils de programmation suivants: procédure, fonction, variables globales et locales, paramètres. Il faudrait leur proposer des procédures et des fonctions de manipulation de chaînes de caractères qu'ils utiliseront pour résoudre des problèmes de traitements de textes.

3. Mise en oeuvre du programme réalisé (Implémentation)

Objectifs

Les élèves devraient être capables:

  1. d'utiliser un environnement de programmation classique pour éditer, compiler, corriger [déboguer], mettre au point et faire exécuter les programmes qu'ils ont conçus;
  2. de fournir une description écrite utile et significative du fonctionnement de leur programme.

Contenu

Les élèves devraient stocker des programmes sur disque et les récupérer, pour des utilisations et des modifications ultérieures. Ils devraient apprendre à faire la différence entre des erreurs de syntaxe et des erreurs d'exécution; et identifier les causes potentielles de chaque type d'erreur.

Les élèves devraient tester leurs programmes avec des jeux de données imposés ou imaginés par eux, afin d'en déterminer la correction et les limites; ils devraient apprendre à obtenir à la fois des sorties imprimées de leurs programmes et l'impression des textes de ces derniers.

Les enseignants devraient s'assurer qu'une documentation claire et adéquate accompagne chaque programme afin que d'autres utilisateurs puissent en comprendre le fonctionnement et y apporter d'éventuelles modifications.

Ressources

Ressources minimales indispensables:

Ressources supplémentaires optionnelles:

Liens avec d'autres unités

Cette unité constitue une préparation essentielle aux modules général et optionnel destinés à l'enseignement de degré supérieur.

Retour Annexe 1

Retour Sommaire