Unité GS1 - Fondements de la programmation et du génie logiciel

 

Objectif

Les élèves devraient être capables de concevoir et de programmer des systèmes d'information relativement réduits qui modélisent des problèmes redevables d'une approche procédurale.

Sous-objectifs

Les élèves devraient être capables:

  1. d'adhérer aux principes de base du génie logiciel;
  2. d'analyser méthodiquement des problèmes de types procéduraux en les décomposant en leurs différentes étapes;
  3. d'appliquer des méthodologies plus ou moins explicites pour concevoir des algorithmes et des structures de données efficaces;
  4. d'élaborer et de coder des programmes et des sous-programmes (modules) en utilisant un environnement de programmation classique;
  5. d'utiliser un modèle fonctionnel d'un système informatique et son environnement de programmation.

Contexte

Les élèves doivent acquérir des compétences fondamentales en ce qui concerne la science informatique et les diverses étapes du développement de logiciels. Cela implique l'utilisation de méthodes peu ou prou formalisées d'analyse de problèmes et de conception de programmes, en soulignant l'importance de créer des programmes suffisamment clairs, qui rencontrent des spécifications énoncées et dotés d'interfaces utilisateur convenables

Une attention toute particulière doit être portée aux types de problèmes qui peuvent être traités en utilisant des types de données fondamentaux, simples et structurés (caractères, entiers, réels, tableaux, etc.) et des structures de contrôle de base (séquence, sélection [alternative] et répétition) d'un langage de programmation de haut niveau et modulaire.

L'accent doit être mis sur la modélisation par le biais d'une abstraction du processus (décomposition descendante en sous-processus et sous-programmes). Les méthodes d'analyse, les stratégies de conception et l'environnement de programmation devraient servir ce type de modélisation.

Contenu

Les élèves résoudront divers problèmes, de plus en plus complexes. Ces problèmes seront issus de domaines concrets que les élèves pourront aisément comprendre et modéliser. De petits problèmes particuliers seront soigneusement choisis afin d'apprendre à utiliser les nouveaux concepts algorithmiques en les reliant à des éléments déjà connus. Mais d'autres problèmes beaucoup plus complets seront également proposés afin d'obliger les élèves à intégrer tout ce qu'ils ont appris auparavant.

Analyse de problèmes

Les élèves appliquent des techniques non ou peu formalisées pour analyser des problèmes simples redevables d'une approche procédurale dans de nombreux domaines et les décomposer en termes de sous-problèmes et procédures

Conception

Algorithmes: Les élèves mettent au point des solutions modulaires par le biais d'une analyse descendante procédant par affinements successifs. Ils choisissent et précisent des structures de données et des algorithmes qui conviennent. Les structures de données et de contrôle utilisées dans les algorithmes devraient être directement liées aux structures primitives d'un langage de programmation structuré et modulaire.

Interface utilisateur: Les élèves développent une interface utilisateur pour leurs algorithmes sous la forme d'une arborescence d'écrans de dialogue.

Programmation

Les algorithmes et la structure en modules sont codés en un langage de programmation à vocation générale.

Implémentation et évaluation

Le code est ensuite implémenté en un programme sur un système informatique en utilisant un environnement de programmation. Les élèves peuvent alors tester, déboguer et identifier les limites de ces programmes.

Sujets abordés

Génie logiciel

Analyse

Conception

Algorithmes

Implémentation

Evaluation

Environnement de programmation

Eléments du langage de la programmation

Ressources

Ressources minimales indispensables:

Version d'un langage de programmation de haut niveau et modulaire qui permette un style de programmation modulaire et propose les types de données et les structures de contrôle nécessaires.

Ouvrage de niveau élémentaire qui donne des exemples d'applications utilisant le langage de programmation retenu.

La plupart des textes relativement récents d'introduction à l'informatique qui rencontrent les objectifs de cette unité.

Ressources supplémentaires optionnelles:

Documents supplémentaires sur l'architecture et l'organisation matérielle, sur le système d'exploitation, sur les compilateurs et interpréteurs, sur le codage en mémoire des données, sur le génie logiciel et le cycle de vie du logiciel.

Liens avec d'autres unités

Conseils méthodologiques

Les concepts et compétences repris dans cette unité et qui sont ceux habituellement proposés lors d'un premier cours d'informatique à destination des élèves du degré supérieur, seront peut-être considérés par certains pays comme relevant davantage de l'enseignement supérieur que de l'enseignements secondaire. Cette unité est assez exigeante et nécessite un enseignement hebdomadaire pendant une période allant d'un semestre à plus d'une année. Le temps nécessaire dépend des connaissances et expériences antérieures des élèves: quel est leur degré de culture informatique ?, ont-ils abordé la programmation au degré inférieur ? En fonction du niveau du groupe cible, il peut être conseillé de diviser la présente unité, eu égard aux concepts ou aux principes à étudier.

L'accent doit être placé sur la pratique et les applications. Les élèves doivent mettre en pratique des techniques et des principes, en commençant par des problèmes élémentaires et en développant peu à peu leur capacité à traiter des problèmes plus complexes. Les compétences et les concepts appris seront constamment renforcés lors de la rencontre de problèmes inédits impliquant de nouveaux concepts. Des exercices et des projets qui permettent aux élèves de synthétiser et d'intégrer ce qu'ils ont appris sont périodiquement indispensables.

Retour Annexe 3

Retour Sommaire