Contribution au développement des compétences de résolution de problèmes durant l'initiation à la programmation.
Abstract
L'initiation à l'algorithmique et à la programmation est fondamentale
dans les formations à vocation scienti que informatique. L'apprenant doit
être capable, à la n de son cours d'initiation, d'analyser un problème algo rithmique simple et de concevoir et d'évaluer une solution à ce problème.
Les taux d'abandon et d'échec sont relativement élevés et la faiblesse des
compétences de résolution de problèmes est vue comme l'une des causes principales. Ces compétences ne sont pas explicitement intégrées dans beaucoup
de curricula et les formateurs se focalisent assez souvent sur la syntaxe des
langages.
Cette thèse s'inscrit dans le cadre des Environnements Informatiques pour
l'Apprentissage Humain (EIAH). Nous proposons un système pour le soutien
au développement des compétences de résolution de problèmes durant l'initiation à l'algorithmique et à la programmation. Notre approche s'appuie sur
deux stratégies :
1. le guidage de l'apprenant et l'explicitation des concepts durant le processus de résolution de problèmes.
2. l'analyse et la comparaison sémantique du code source de l'apprenant
avec un code expert a n de lui proposer un feedback sur la sémantique
de son code source.
Ces deux stratégies ont montré un impact positif sur les compétences de
résolution de problèmes durant l'apprentissage de la programmation.
Le processus de guidage proposé s'est voulu simple et est basé sur une
méthode de conception de programmes guidée par les données et prenant en
compte l'aspect compréhension du problème qui est essentiel.
Pour l'analyse et la comparaison de la sémantique de codes sources, nous
avons proposé une méthode statique automatique basée sur le calcul formel.
Cette méthode a l'avantage de demander moins d'efforts de la part du formateur comparée aux méthodes dynamiques qui se basent sur l'exécution du
code et aux méthodes statiques manuelles basées sur l'analyse du code par
un expert humain.
Nous avons mis en place un prototype du système, IDE4SCAPSS, avec
le langage python pour le guidage, l'analyse et la comparaison sémantique
de programmes codés en Pascal. Le système a été évalué sur des solutions
expertes de problèmes utilisant des structures séquentielles et conditionnelles.