Enseigner Ada, pourquoi ?, à qui ?, comment ? Choisir un langage : entre le tentant et le raisonnable !


précédentsommairesuivant

IV. Pour quels apprenants ?

On trouvera dans les paragraphes ci dessous des témoignages et des contributions d'enseignants utilisant Ada pour leurs enseignements et appréciant ses qualités dans leur différents cursus (forts variés). La Suisse francophone qui est très active (voire même à la pointe de la diffusion d'Ada) présentera ses propositions très intéressantes.

A. Non informaticiens

Enseigner l'informatique à l'intention d'étudiants dont la formation essentielle n'est pas l'informatique a été tenté avec satisfaction par Michel Gauthier (en premier cycle à Limoges) et P. Tarroux en DEA Sciences cognitives à Paris-Sud (Orsay). Ce dernier cite une introduction à l'informatique avec Ada et Java comme supports comparés. L'expérience est instructive concernant la légèreté de Java et la rigueur d'Ada.

B. DEUG

Le langage Ada est utilisé comme support pour les 4 cours d'informatique (sur les 4 semestres) du DEUG MIAS au centre universitaire d'Évreux. Les premiers cours portent sur l'algorithmique classique et l'utilisation des tableaux. Les « facilités » d'Ada (comme l'affectation de partie de tableaux par exemple) sont présentées à la fin des cours, après leur écriture « pour de vrai ». Dès le troisième semestre on commence l'introduction au module avec le développement de plusieurs corps d'un module sur les listes (ou autres). Enfin un projet dans lequel (cela dépend des années) les groupes se réunissent ET définissent les spécifications (.ads) de tous les modules. Ils doivent ensuite respecter ces spécifications pour pouvoir inter-changer des parties du projet.

Des avantages du langage Ada, pour l'enseignement en DEUG, citons :une sémantique très sérieuse,

une égalité des étudiants au départ face aux connaissances antérieures (en effet, certains arrivent en connaissant le C, par exemple),

des concepts de haut niveau faciles pour une sensibilisation au génie logiciel,

l'accent sur le typage et la vérification de type pour l'apprentissage de la rigueur. Côté inconvénients citons le manque de personnels compétents (vacataires, .....) !

Dans l'enseignement en DEUG de nombreux enseignements informatiques se font encore avec Pascal (qui reste, certes, un bon outil pédagogique) mais il y aurait tout à gagner à monter d'un cran encore ces avantages avec la transition vers Ada, sans compter qu'il existe un traducteur Pascal vers Ada (voir plus loin) qui peut faciliter la tâche des pédagogues.

C. IUT (Bac + 2)

Le langage Ada, choisi comme premier langage d'apprentissage par exemple au département informatique de l'I.U.T. d'Aix en Provence (de 1989 à 2003) a permis de résoudre de nombreux problèmes didactiques en fédérant des enseignements modulaires, en permettant l'assimilation de concepts réputés difficiles mais incontournables au 21ième siècle comme ceux évoqués au chapitre « les concepts bien illustrés ».

Le thème de génie logiciel est présent dans tout le programme pédagogique de la formation IUT. L'accent mis sur la qualité est important dans la phase d'apprentissage d'un premier langage (Ada a été enseigné complètement au premier trimestre sur environ 200 heures). Si Ada, langage réputé complexe (donc ..... difficile à enseigner mais ceci n'est pas vrai !), est proposé, dans des formations modestes (DUT = Bac + 2) c'est que leur vocation est de former des techniciens supérieurs capables de réaliser des travaux informatiques concrets en étant rapidement opérationnels, efficaces et méthodiques. Un bon langage devrait permettre de faire assimiler, de façon concrète et élégante les concepts fondamentaux qui résisteront au moins à une décennie de professionnalisme. Beau défi pédagogique mais ..... résolu avec ce langage ! Ada possède tous les avantages pédagogiques de Pascal (ce que ne permet pas le C++ mais ce dernier, très prisé dans la profession est enseigné ensuite avec Java). Les avantages pédagogiques évoqués sont alliés, avec Ada, avec la rigueur et le professionnalisme des langages dédiés au génie logiciel. Le meilleur hommage que font les étudiants en guise de bilan peut se résumer dans ces propos :« Au début, j'ai été très irrité par le compilateur Ada qui ne laissait rien passer, mais, à la fin, quand mes programmes Ada, assez conséquents, tournaient du premier coup j'ai compris que le compilateur était plutôt mon ami ! ».

Notons tout de même un petit bémol quant aux stages de nos étudiants. Le stage de fin d'études I.U.T. étant très court (10 semaines) il est rare d'en trouver en Ada plutôt proposé sur 5 mois (donc destinés aux ingénieurs!).

D. Bac + 4

A l'IUP informatique de Brest le langage Ada 95 propose une approche temps réel complète et intéressante dans un contexte d'enseignement. Elle permet de voir comment un langage et ses constructions peuvent offrir les services et fonctions que traditionnellement le programmeur invoque par des appels de bas niveau (librairie de threads par exemple). La présentation du modèle de tâches Ada est suivie de celle de l'annexe temps réel ce qui permet d'aborder les thèmes avancés du temps réel (ordonnancement, inversion de priorité, par exemple). Des TPs permettent ensuite d'appliquer les concepts vus en cours.

En licence d'informatique à Limoges Ada est utilisé comme support du cours sur la réutilisation. L'argumentaire est que les autres langages ne fournissent pas un outillage de puissance et de souplesses suffisantes pour la mise en œuvre des concepts sans une excessive technicité de langage. Il est à noter que la réutilisation est vue pour elle même indépendamment du concept d'objet dans la mesure où l'on peut faire des objets sans réutilisation et de la réutilisation d'autre chose que des objets.

E. Ingénieurs et BAC + 5

Ada est enseigné à Télécom Paris depuis presque la création du langage. Actuellement, Ada 95 nous permet de montrer à des étudiants de deuxième et troisième années (80 élèves) les différences d'approche entre la programmation structurée et celle orientée objet. Par ailleurs, le langage sert de support à des cours de programmation concurrente et de systèmes temps réel (travaux pratiques sur un serveur sporadique notamment). De nombreux projets d'étudiants et de stages de DEA ont été développés en Ada 95. Les vertus du langage ont permis d'intégrer très facilement ces contributions dans des projets désormais bien connus comme GLADE, AdaBroker, PolyORB, autant de logiciels libres développés à l'ENST. Pour terminer, il faut signaler que dans le cadre d'une collaboration ENST (L. Pautet) - LIP6 (F. Kordon), plusieurs thèses se sont déroulées ou se déroulent sur des thématiques d'intergiciels génériques et temps réel, ceux-ci étant développés en Ada 95. En conclusion, l'enseignement d'Ada 95 à l'ENST rencontre un franc succès, les étudiants s'étant intéressés à ce langage contribuant par la suite activement à la promotion d'Ada 95.

A l'Ensieta Brest (http://www.ensieta.fr/). Le programme est très similaire à celui proposé à l'IUP informatique de Brest mais avec une approche systèmes embarqués. Cet enseignement permet d'aborder ainsi la complémentarité des thèmes temps réel et embarqués.

A l'ENST Bretagne nous présentons l'annexe distribution d'Ada 95 ainsi que les modèles de programmation associés. Ce cours donne un aperçu de la programmation distribuée avec une approche langage et montre comment l'annexe est implantée dans l'environnement GNAT.

F. Professionnels

Ada étant utilisé dans nombre de projets de grande importance, il y a une demande de la part des industriels pour des formations continues d'introduction au langage. Ces formations ont des contraintes différentes du milieu universitaire : - Elles doivent être courtes (le fait qu'un ingénieur soit indisponible coûte plus cher que la formation elle-même). Par exemple, chez Adalog la formation complète dure 6 jours. Chez Aonix, elle est fractionnée en deux cours (élémentaire et avancé) de 5 jours chacun.

- Les stagiaires ont, a priori, des connaissances générales de programmation. - Les industriels veulent que les stagiaires soient directement opérationnels en sortie de formation.

Dans ces conditions, le risque est grand de focaliser le cours sur les aspects syntaxiques ou simplement directement pratiques, en évitant les aspects philosophiques. Bien sûr, les cours dispensés par des entreprises spécialisées en Ada évitent cet écueil, mais il existe des organismes de formation qui ajoutent Ada à leur catalogue sans réelles connaissances du domaine. Adalog a ainsi reçu une fois un groupe de stagiaires qui avaient suivi une formation dans un de ces organismes, et qui, percevant un manque, étaient revenus faire un deuxième stage. Réflexion d'un stagiaire à la fin de la formation: « c'est incroyable, ce n'est pas le même langage ! »

En plus des développeurs, de nombreux stagiaires sont des responsables qualité ou des responsables chargés de recevoir du code développé par des sous-traitants. Leur particularité est qu'ils doivent essentiellement lire du code plutôt que de l'écrire. Ce sont généralement les plus enthousiastes, car les fonctionnalités du langage correspondent très bien à leurs préoccupations.

G. CNAM

Le Cnam utilise le langage Ada pour :

-- l'apprentissage de la programmation et comme support algorithmique : • en premier cycle dans l'UV "Algorithmique et Programmation A " (APA), dans l'UV "Structures de Données" (où une comparaison est faite entre les langages Ada, Java et C++) ainsi que dans une valeur de projets • en second cycle dans l'UV "Accueil et Reconversion à l'Informatique" (VARI) où une synthèse des cours APA et Structures de Données est faite pour des élèves souhaitant se convertir à l'informatique (à partir de Bac + 2)

-- l'apprentissage des mécanismes de synchronisation présents dans les systèmes au second cycle dans la valeur Système Informatique (SIB)

-- l'étude de la programmation concurrente en fin de second cycle dans la valeur "Applications Concurrentes, Conception et Outils de Validation" (ACCOV) où les solutions Ada sont comparées aux solutions Java ou Posix

-- une initiation à la programmation des systèmes temps réel en fin de second cycle dans la valeur "Systèmes Temps Réels" ou en troisième cycle dans la valeur "Micro Informatique"

Toutes ces unités de valeur sont également enseignées dans les centres régionaux du réseau Cnam.

H. Suisse (Bac + 3)

Les HES (Hautes Ecoles Spécialisées) comprenant les Écoles d'ingénieurs comme l'EIG (Ecole d'ingénieurs de Genève), l'EIVD (École d'ingénieurs du canton de Vaud) ou encore l'EIAJ (école d'ingénieurs de l'arc jurassien) dispensent un enseignement de niveau universitaire sur trois ans et trois mois (travail de diplôme à plein temps). L'introduction d'un Mastère est prévue à court terme, en relation avec le modèle de Bologne.

Leur « matériau de base » est formé par des étudiants possédant la maturité (« bac ») professionnelle technique obtenue après (ou pendant) un apprentissage fortement orienté vers la pratique professionnelle. Cette maturité est donc différente de la maturité académique (bac) obtenue dans les gymnases suisses (équivalents aux lycées français). A noter que les porteurs de maturité gymnasiale sont soumis à un stage préalable d'une année. Les porteurs de diplôme IUT sont admis en deuxième année d'études.

Les cours totalisent 34 heures de présence obligatoire par semaine sur 2 semestres de 17 semaines, plus 2 semaines spéciales (séminaires, etc.). Le style d'enseignement se caractérise par un fort encadrement (classes ne dépassant pas 30 étudiants, laboratoires en groupe de 10-15 étudiants et généralement bien équipés).

Le travail de diplôme de trois mois à plein temps est souvent proposé par l'industrie et sa soutenance a lieu en présence d'experts externes provenant des milieux professionnels et académiques. Les filières de formation sont évaluées périodiquement par des commissions d'experts internationaux (Peer Review), mandatées par l'OFFT (Office fédéral de la formation et de la technologie). Sont évaluées les prestations d'enseignement, de Ra&D, de mandats et de contacts avec les industries, la post-formation et les relations internationales.

A l'EIVD, Ada constitue la brique de base de la formation en analyse et programmation, et fournit le (ou un) langage d'application dans des matières comme algorithmes et structures de données, programmation concurrente et temps réel ou encore génie logiciel. D'autres langages viennent ensuite se greffer sur les concepts abordés d'abord en Ada. A la fin de leur cursus, les étudiants de la filière d'informatique orientation logiciel auront étudié et pratiqué Ada pendant 600 heures environ, ceux de la filière d'informatique technique environ 200 heures. Soulignons cependant qu'Ada est enseigné comme premier langage à tous les étudiants de première année (environ 180 personnes) du département E+I qui comprend la formation non seulement en informatique, mais aussi en génie électrique, en électronique et en télécommunications. Ce choix pédagogique est accepté dans le département encore aujourd'hui, même si les pressions de tous ordres pour l'utilisation d'un autre langage existent bien évidemment !

A l'EIG, l'approche générale est analogue à celle de l'EIVD. Ada est enseigné dans deux filières: informatique et télécommunications. Tout comme à l'EIVD, le langage est utilisé pour divers enseignements : algorithmique et programmation, machines abstraites, programmation concurrente et temps réel et génie logiciel (env. 600 heures pour la filière informatique et 380 pour la filière télécommunications). A relever l'utilisation dans le cours de systèmes réactifs d'environnements tels que Statemate MAGNUM, SCADE ou encore Rhapsody in Ada (UML), lesquels permettent de générer du code source Ada.

La formation Ada est également appréciée par nos collègues des systèmes numériques qui enseignent notamment le langage VHDL (description comportementale du matériel). La similitude de ces deux formalismes leur permet d'optimiser leur enseignement.

Particularisme de l'EIG, cette dernière abrite également sur son site une EET (Ecole d'enseignement technique) qui prépare, en trois ans, ses étudiants à l'obtention de la maturité technique et à l'entrée à l'EIG. Historiquement, elle était intégrée dans le cursus des études d'ingénieur. Ce qui explique pourquoi un enseignement Ada y est toujours dispensé. Cet aspect est intéressant à plus d'un titre. Il prouve si besoin était, qu'un enseignement de l'algorithmique et de la programmation en Ada 95 serait judicieux dans les gymnases et les lycées.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2003 Daniel Feneuille Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.