Unité GS2 - Elémentsde programmation avancée

Objectif

Les élèves devraient être capables deconcevoir, de programmer et d'évaluer des systèmesd'information relativement complexes qui modélisent desproblèmes redevables d'une approche procédurale dans denombreuses disciplines et de nombreux domaines.

Sous-objectifs

Les élèves devraient être capables:

  1. d'analyser et de modéliser méthodiquement des problèmes redevables d'une approche procédurale, relativement complexes dans toute une série de domaines d'application;
  2. de mettre en oeuvre une analyse et une conception relativement formalisées ainsi que la notion de structures de données abstraites pour concevoir des algorithmes efficaces, des types abstraits et des structures de données relativement sophistiquées;
  3. d'élaborer et de coder des programmes et des sous-programmes (modules) en utilisant un environnement de programmation classique;
  4. de concevoir et d'évaluer des solutions alternatives.

Contexte

Les élèves devraient acquérir descompétences leur permettant de résoudre desproblèmes plus complexes et plus ardus tirés denombreux domaines. L'accent doit être placé sur unemodélisation faisant usage de l'abstraction de données(technique fondamentale pour améliorer la fiabilité etla réutilisation). Une attention particulière devraitêtre portée aux algorithmes et aux stratégiespermettant de simuler des structures de donnéeslinéaires et non linéaires en vue del'implémentation de types de données abstraits.

Contenu

Cette unité se base sur l'unité GS1"Fondements de la programmation et dugénie logiciel" tout en élargissant le propos. Lesélèves auront à résoudre de multiplesproblèmes, de plus en plus complexes, tirésd'applications réalistes.

Analyse

Les élèves mettent au point des modèles pourdes systèmes relativement complexes en utilisant desstratégies de conception comme la modélisation par lebiais de structures de données abstraites. Ils analysent dessystèmes pour en déterminer les objets fondamentaux etles fonctions qui y sont associées.

Conception

Les élèves développent des types dedonnées abstraits représentant les objetsidentifiés, réutilisables dans d'autresdéveloppements impliquant les mêmes objets. Ilsélaborent une solution modulaire où les objets sontmanipulés seulement par le biais des fonctionsprécédemment identifiées. Ils mettent au pointune interface utilisateur adaptée et efficace.

Programmation

Les élèves conçoivent des structures dedonnées complexes, linéaires ou arborescentes, pourreprésenter les types de données abstraits etconçoivent également les fonctions nécessairespour manipuler ces types de données abstraits dans un langagede programmation qui permette le masquage d'informations internes etl'encapsulation, soit directement ou par le biais de simulation. Lesélèves codent cette conception dans le langage deprogrammation.

Implémentation

Les programmes sont implémentés etexécutés dans l'environnement de programmation. Dans unpremier temps, les élèves réalisent, testent etvérifient l'implémentation des types de donnéesabstraits, et seulement par la suite l'entièreté duprogramme.

Evaluation

Les élèves précisent des paramètrespermettant de comparer les algorithmes et pratiquent l'une ou l'autreméthode formelle de vérification de programmes.

Approches alternatives

Si l'on dispose du temps et des ressources nécessaires, onpeut explorer les stratégies de conception en utilisantd'autres paradigmes de développement, tels l'approcheorientée objet ou la programmation logique.

Sujets abordés

Génie logiciel

Analyse

Conception

Algorithmes

Arbres binaires

Evaluation

Eléments relatifs aux langages deprogrammation

Options

  1. Applications graphiques, de robotique ou en intelligence artificielle
  2. Programmation logique ou fonctionnelle
  3. Programmation orientée objet
  4. Programmation parallèle

Ressources

Ressources minimales indispensables:

Un langage de programmation de haut niveau et structuré,qui permette une conception modulaire des programmes etl'implémentation de types de données abstraits.

Livres récents, de niveau intermédiaire, abordantles structures de données abstraites.

Ressources supplémentairesoptionnelles:

Environnements de programmation permettant des approches logique,fonctionnelle, orientée objet ou parallèle.

Liens avec d'autres unités

Conseils méthodologiques

L'accent doit être mis sur les concepts, les théorieset les pratiques de la discipline plutôt que sur uneétude exhaustive de la syntaxe du langage. Il est vivementconseillé d'utiliser si possible le même langage deprogrammation structuré pour les deux unités. Cetteunité a un contenu traditionnel, bien établi etdécrit dans de nombreux textes de niveau avancé sur lesstructures de données. Les enseignants et les personneschargées de l'élaboration du programme de coursdevraient envisager d'utiliser la structure de ces ouvrages commebase pour la création de sous-unités et la mise enoeuvre de programmes d'étude.

Retour Annexe 3

Retour Sommaire