thesis

Pascal/v : un environnement pour l'apprentissage de la programmation par decouverte guidee. reification et interpretation contextuelle du role des variables

Defense date:

Jan. 1, 1994

Edit

Institution:

Paris 6

Disciplines:

Abstract EN:

Pas de résumé disponible.

Abstract FR:

Cette these presente la conception et la realisation de pascal/v, un environnement de programmation permettant d'articuler enseignement et apprentissage et centre sur le role des variables. Il comprend un compilateur pedagogique, un outil de visualisation de trace au pas-a-pas, des inspecteurs specialises pour les types et une aide contextuelle pour les erreurs d'execution. Un grand soin a ete porte a la fidelite conceptuelle des outils interactifs de decouverte. Ils sont souvent le resultat d'un compromis entre besoins didactiques et possibilites techniques des interfaces. Nous considerons que le role d'une variable est une extension de son type et fait le lien entre structure de donnees et traitements. L'implementation fait clairement la distinction entre les verifications de compatibilite de types, effectuees a la compilation et les verifications de contraintes portant sur les sous-types, effectuees a l'execution. Ces dernieres sont la base de l'aide contextuelle qui fournit des suggestions a l'eleve afin de le guider dans son apprentissage. Ces suggestions constituent un element de la representation du domaine sous forme de regles prolog/v et permettent notamment a l'eleve de comprendre le role de l'environnement d'execution dans l'interpretation d'une erreur. Pascal/v est ecrit en smalltalk/v sur macintosh et sa realisation nous a amene a explorer en detail les principes de compilation et de debogage interactif en smalltalk/v afin de construire differentiellement un compilateur pascal, a experimenter les limites de l'architecture d'interface utilisateur mvc de smalltalk dont nous faisons une critique accompagnee de propositions nouvelles et a mettre en avant l'importance des cooperations de classes dans la programmation objet, notamment pour l'organisation systeme et la comprehension de code