Modèle EIAH'2003 - SourceSup
Sujet 3 (examen 1er session, Déc. 2009, temps indicatif : 10 min) : Spécifiez et ...
d'une spécification, l'évocation de schéma d'algorithme, les étudiants semblent ...
part of the document
Évaluations de solutions dexercices dalgorithmique « à la main » versus « automatiques par jeux dessai »
Denis Bouhineau*, François Puitg*
* Laboratoire dInformatique de Grenoble (LIG)Université de Grenoble (Grenoble-I, Univ. J. Fourier)Denis.Bouhineau@imag.fr, Francois.Puitg@imag.frRÉSUMÉ. Nous avons entrepris une analyse qualitative portant sur lactivité de correction de copies dalgorithmique « à la main » pour servir de repère et permettre une comparaison avec une correction automatique de productions détudiants en algorithmique en utilisant des jeux dessai envisagée pour la mise en place dun EIAH de lalgorithmique comportant une base dexercices. La mise en place de la base dexercices et des jeux dessai est également rapportée. La communication comporte également quelques éléments relatifs à la motivation des étudiants et la remédiation des erreurs dans une démarche semi-automatique associant les enseignants.
MOTS-CLÉS : algorithmique, programmation, Prolog, programmation déclarative, récursivité, évaluation, auto-évaluation, indicateur, diagnostic, rétroaction, correction de copies, correction automatique, jeux dessai, test, mise en place, collaboratif, acteur, apprenant, enseignant.
Introduction
Évaluer les productions délève, « corriger des copies », pour vérifier, voire certifier des apprentissages, orienter la suite des cours et des apprentissages,
est une pratique professionnelle usuelle mais complexe et lourde du point de vue des enseignants correspondant souvent à un vécu difficile pour les élèves [Veslin & Veslin - 92]. Elle peut prendre des noms variés et avoir des objectifs contradictoires : depuis lévaluation dembauche ou les concours avec des visées de sélection et de classement élitiste ; en passant par lévaluation pronostique en début de cycle ou lévaluation sommative ou certificative en fin de cycle, pour le brevet des collèges ou le baccalauréat ou en fin de semestre à luniversité ; jusquà lévaluation formative en cours de formation pour donner un retour à lapprenant sur le niveau quil a atteint ou déstabiliser ses conceptions erronées et permettre à lenseignant de prendre le pouls de sa classe pour organiser la suite de ses enseignements. Souvent, pour se restreindre à lécole et au travail quotidien dans les classes, lévaluation est une pratique qui vise à comparer la production dun élève avec une solution, ou une famille de solutions de référence, correspondant aux attentes du professeur. Malgré les efforts dobjectivité engagés depuis 1950-60, cest toujours lié à un contrat didactique. Cest une activité subjective. Plus récemment, les chercheurs et pédagogues en évaluation ont cherché une plus grande précision descriptive pour les démarches évaluatives. En cernant des notions indépendantes dun enseignant ou dune matière enseignée, mais liées au savoir plus généralement, à cheval sur plusieurs matières éventuellement et donc enseignées par plusieurs enseignants, dans un référentiel commun à lensemble des enseignements (cf. le socle commun), sont donc apparues les compétences donnant lieu à une nouvelle forme dévaluation, lévaluation par compétences [Gérard - 09]. Daucuns verront là linfluence de travaux en informatique ou des sciences cognitives pour diagnostiquer objectivement et séparément des capacités et compétences délèves en cernant autant déléments que nécessaire. Lhistoire des formes dévaluation nest pas finie, gageons quil y aura dautres formes dévaluation à venir.
Considérons maintenant les EIAH. La question de lévaluation des productions délèves, si elle nest pas aussi rébarbative que la correction de copies (dans lhypothèse où elle peut être automatisée et que ce peut être lordinateur qui sattaque aux piles de copies), elle est, pour les concepteurs dEIAH, tout aussi complexe et, pour les enseignants et les apprenants, porteuse dautant dattentes que dans la classe. Un espoir, comme linformatique en a fait naître de nombreux, serait que cette évaluation soit effectivement pleinement confiée à lordinateur, et libère lenseignant de ces longues séances de correction de copies. À noter que cela serait au détriment du retour que lenseignant obtient en corrigeant ses copies pour organiser la suite de son cours et la connaissance quil acquiert ainsi directement sur le profil de chaque élève. Lobjectivité de la correction ne serait pas pour autant garantie. En effet, lenseignant, à travers ses choix pour paramétrer ou orienter la correction automatique, et linformaticien dans ses mises en uvre introduisent leur subjectivité. Mais lespoir dune correction complètement automatisée est encore loin. Le plus souvent, cest plutôt linverse qui sopère. Lévaluation automatique étant une affaire délicate, le plus simple pour un EIAH naissant, ou une plateforme denseignement moderne (i.e. informatique, accessible par internet,
) se voulant générique, consiste à proposer des activités qui sévaluent facilement de manière générique (QCM, Phrases à trous, etc. [HotPot]) ou par le biais dappels aux enseignants pour effectuer ces évaluations [Moodle]. Certaines matières cependant sen sortent mieux. Ainsi, pour les sciences dures, il peut sembler plus facile de trouver des modalités de validation automatique des réponses délèves sans en être réduit à des activités « fermées ». Cest le cas pour une grande partie de la géométrie [Bouhineau - 1997] ou de lalgèbre [Bouhineau & al. - 03] comme le projet Aplusix a su lexploiter. Notons, au passage, pour tirer quelques leçons de lexpérience du projet Aplusix, que lévaluation automatique de la progression ou de la validité dune réponse délève par lordinateur permet plusieurs déplacements vis-à-vis de lévaluation dans la classe :
automatique, elle peut être calculée plusieurs fois et pas uniquement à la fin de lexercice, donnée à chaque instant ou presque au cours de lexercice, elle peut devenir une rétroaction permanente non intrusive, guidant la résolution de lexercice.
Lévaluation ayant perdu son caractère négatif (conclusif et définitif), elle peut changer de statut et sinscrire parmi les étayages, au delà des évaluations formatives.
La disponibilité de cette évaluation est un nouveau paramètre pédagogique. Lenseignant peut jouer sur ce paramètre, lui donner un coût, pour renforcer des apprentissages au niveau des contrôles et des stratégies. Sous forme de rétroaction permanente gratuite, cela peut dispenser lélève de développer ses propres contrôles ; coûteuse ou limitée, elle impose à lélève un effort pour atteindre le même résultat et favorisera des apprentissages stratégiques.
Dans la mesure où létudiant ne se sert pas dune rétroaction permanente pour « tricher », et que la possibilité dune avancée par essais (aléatoires)/erreurs est faible, ce que lévaluation perd, elle ne le perd pas en efficacité et ne fausse pas les règles de lexercice, mais le statut de lerreur change, il y a un « après » lerreur où lapprenant change celle-ci en réponse juste, lélève a ainsi le droit aux essais et aux erreurs.
Enfin, lévaluation automatisée favorise lautonomie des élèves.
Peut-être est-ce lié, lutilisation dune évaluation automatique des réponses délèves dans le cadre du projet Aplusix a permis dobserver non seulement un glissement du statut de lerreur mais aussi un glissement du statut de celui qui lannonce (sous leffet Cassandre) :
la confiance en lordinateur étant grande, quand celui-ci dit que la réponse est fausse, les discussions possibles entre enseignant et élève ou entre élèves sur la justesse dune solution se terminent rapidement. Il faut cependant tempérer ce résultat, la confiance dans lordinateur peut disparaitre avec lapparition de bugs visibles.
Lordinateur semble plus objectif, il ne semble pas répondre à un contrat didactique qui refuserait une réponse valide pour des critères pédagogiques. Cependant croire en lobjectivité de lordinateur cest oublier que le programme utilisé est un artefact humain et que les programmeurs, même en ayant une volonté de réaliser un environnement neutre du point de vue didactique ou pédagogique, se concentrant uniquement sur les mathématiques, ont aussi, malgré tout et malgré eux, leurs a priori et les ont fait passer dans lobjet produit [Traglova & al. - 09].
Dégagé de la responsabilité de lannonce de lerreur, lenseignant (qui a gagné par ailleurs le temps de la vérification de la production de lélève) est plus facilement, face à lordinateur, du même coté que lélève, dans une position moins frontale pour apporter son savoir, son expertise, ou plus simplement dispenser son aide, proposer un conseil.
Linformatique en général et lalgorithmique en particulier sont sans nulle doute à classer parmi les sciences dures. Lobtention de méthodes automatiques de validation de productions délèves peut sembler envisageable. Cependant, il va falloir cerner quel type de production peut être validée et voir si lon échappe aux écueils particuliers de linformatique concernant les problèmes de calculabilité et dindécidabilités découverts par Gödel et ses successeurs. En effet, en informatique, il existe de nombreux théorèmes limitant les espoirs de preuves automatiques. Ainsi est-il impossible de déterminer automatiquement dans le cas le plus général (c'est-à-dire par un programme-démonstrateur général fonctionnant pour toutes les données-programmes possibles) si un programme donné va sarrêter ou non, si deux programmes sont équivalents ou non, etc. (ce qui légitime que les étudiants doivent faire des preuves à la main, de la correction et de la complétude de leurs programmes). Deux types dévaluation sont menés habituellement [Skupiene - 10] : dune part, une évaluation sémantique qui concerne le « fond », i.e. une évaluation pour assurer la correction des programmes, c'est-à-dire leur bonne adéquation pour la résolution dun problème donné ; dautre part, une évaluation plus syntaxique de la forme de ces programmes, i.e. le respect de normes de programmation concernant le nom des variables, lemploi de commentaires, ainsi que dautres éléments liés à lalgorithmique et aux structures de données et de contrôle employées et définissant des métriques du code.
La suite de cet article va se concentrer sur lanalyse du « fond », c'est-à-dire de la correction. Deux approches vont être comparées : celle « à la main » et celle « automatisée par jeux dessai ». Pour cette dernière, des pistes de comparaison avec lévaluation « à la main » seront évoquées, des questions de mise en uvres seront soulevées : un outil dévaluation automatique par jeux dessai peut-il exister, et à quel coût ? Comment comparer cet outil à la pratique dévaluation usuelle que les enseignants connaissent ? Le cadre de cette analyse qualitative est donné par la mise en place dun EIAH de lalgorithmique (EDBA : Exercises DataBase about Algorithms) proposant un mode dévaluation de productions algorithmiques par jeux dessai.
Analyse à la main
Pour servir de support à une description du travail habituel de correction de copies dalgorithmique, quatre questions dexamen ou de contrôle continu de licence dinformatique (L3-IMA-MIAGE à lUniversité Joseph Fourrier Grenoble 1) ont été analysées avec un recul méthodologique pour une population denviron 45 élèves par question, sujets étalées sur 3 ans, avec 2. Les questions sélectionnées portaient sur lécriture de programmes élémentaires, premières questions dun exercice comportant, en plus de la demande du programme, lécriture dune spécification associée à des jeux dessai. La programmation logique (ou déclarative) avec contraintes était lobjet de lenseignement dispensé, Prolog était le langage utilisé. Lenseignement abordait, entre autres, la question de la récursivité, pour un volume horaire de 12 semaines comportant 1h30 de cours et 1h30 de TD. Les étudiants, pour la plupart, découvraient ainsi un troisième paradigme de programmation et tous renforçaient leur connaissance dans le domaine de la récursivité. Lune des difficultés de cet enseignement venait du changement de paradigme de programmation, supposant labandon des mécanismes acquis en algorithmique avec les paradigmes précédents pour ceux ayant cours dans le paradigme présent, et les changements de vocabulaire associés (ex. : en Programmation logique, la notion de programme ou de fonction est remplacée par celle de prédicat). La maîtrise de la récursivité représentait lautre difficulté, même si cette notion avait été abordée précédemment. Cest une notion difficile.
Corpus des sujets dexamen
Sujet 1 (examen 1er session, Déc. 2008, temps indicatif : 10 min) : cet exercice porte sur des listes de 0 et de 1, ex. : [0,0,1,0,1]. Spécifiez, réalisez et donnez des exemples dutilisation dun prédicat « rangListe » qui donne le rang du premier 1 dans une liste de 0 et de 1 (le premier élément de la liste est au rang 0). Variante 2 : sur le dernier 1 (à la place du premier 1).
Sujet 3 (examen 1er session, Déc. 2009, temps indicatif : 10 min) : Spécifiez et réalisez un prédicat qui détermine le nombre N doccurrences dune valeur E donnée dans une liste L donnée également. Variante 4 : une réponse booléenne pour indiquer la présence ou labsence de 1 dans une liste.
Analyse a-priori
Les attentes des enseignants en algorithmique recouvrent en partie les productions des étudiants : lorsquil sagit décrire des programmes (ou des algorithmes), tout va bien. Quand une question est plus molle et concerne la description dun programme, lécriture dune spécification, lévocation de schéma dalgorithme, les étudiants semblent oublier la question. Ex : pour le sujet 4, 23 copies sur 45 comportent uniquement le programme demandé, avec deux arguments, sans même une explication sur ces deux arguments. Centrons-nous donc sur les programmes. Les sujets proposés visaient lévaluation des deux éléments constituant lenseignement : la maîtrise du paradigme de programmation déclarative et la maîtrise de la récursivité. Les sujets proposés ne posaient pas de réelle difficulté sur le plan algorithmique.
Pour la maîtrise du paradigme de programmation, certains aspects syntaxiques permettaient dapprécier la connaissance des principes de haut niveau mis en uvre dans la programmation déclarative (disjonction des cas à travers la rédaction de différentes règles, conjonction des prédicats à travers la juxtaposition de ces différents prédicats dans la rédaction dune règle,
). Dautres aspects syntaxiques plus immédiats, propres au langage Prolog associé à ce paradigme de programmation, pouvaient être évalués directement sur les productions (distinction entre constantes et variable, manipulation des listes, arithmétique, notion de relation (prédicat) vs fonction).
Pour la maîtrise de la récursivité, il sagissait de vérifier, au niveau conceptuel, la mobilisation de cette forme de programmation dans les différents sujets, la bonne compréhension du découpage en cas de base et cas de propagation (ou dinduction). Au niveau plus technique, la justesse des choix des différents cas pouvait être évaluée.
Pour lévaluation de la maîtrise du paradigme de programmation et de la récursivité, une hiérarchie des erreurs était possible : erreurs conceptuelles, erreurs techniques (au niveau algorithmique), erreurs syntaxiques. La correction pouvait tenir compte de cette hiérarchie pour sabstraire des erreurs de bas niveau afin dévaluer les concepts de plus haut niveau.
Au cours de la correction
Que ce passe-t-il pendant la correction des copies ? Quels sont les processus mentaux mis en uvre par le correcteur lors de cette correction ? Cest un sujet rarement abordé si ce nest pour évoquer la complexité de la tâche et ses aspects fastidieux imparfaitement compensés par les retours que lenseignant en obtient. Cette section sera donc assez courte. Notons, pour lalgorithmique, la mobilisation probable de plusieurs types de processus :
des processus de contrôle syntaxique des productions,
des processus de vérification formelle de la correction, de la complétude et de la terminaison des productions, quand la logique de la production existe et atteignable,
des processus de validation par lexemple, ou la recherche de contre-exemple, cherchant à analyser « par lexécution » ces productions,
des processus d'appréciation de l'élégance, de l'originalité des productions.
Retour des corrections
Pour lessentiel, la correction de copies a apporté les éléments attendus : un lot derreurs syntaxiques (essentiellement pour la manipulation des listes et le prédicat dévaluation effective dexpressions « is ») ; des faiblesses du coté des utilisations de la récursivité (oubli dappels récursifs) ; une maîtrise globale satisfaisante du paradigme de programmation déclarative et parfois, pour quelques questions, une solution originale.
Pour les découvertes, non imaginées avant la correction, il y a une utilisation erronée récurrente de larithmétique. La partie arithmétique dun programme est souvent une partie délicate, elle concentre les calculs du programmes, il est donc naturel quelle comporte des erreurs. Dans le cas de Prolog, le prédicat « is » présente plusieurs pièges : au niveau syntaxique, il ne se comporte pas comme les autres prédicats ; proche de laffectation, ce prédicat ne doit pourtant pas lui être confondu (N is N+1 na pas de sens). Compte-tenu de ces difficultés, une attention particulière lui est consacrée lors de lenseignement.
Cette étude de la pratique de correction de copies apporte aussi confirmation de la diversité algorithmique des solutions (et des erreurs) pour un problème donné. Plus exactement, elle précise que si les solutions à un problème donné ne sont pas uniques (il y a eu 2-5 solutions pour les sujets proposés), elles se concentrent tout de même essentiellement sur la ou les solutions attendues, à des variations syntaxiques mineures près, le tout représentant un tiers à la moitié des copies. Du coté des erreurs, la correction montre la grande dispersion des erreurs sur tout la gamme typologique (erreurs syntaxiques, erreurs algorithmiques, mauvaise compréhension du sujet, solution inachevée
) Elle montre que les erreurs offrent une diversité beaucoup plus grande que les solutions (il y a en général plus de 20 variantes erronées pour les sujets proposés, représentant lautre partie des copies). Il ne semble pas que 40 copies suffisent à faire le tour de lensemble des propositions incorrectes possibles. Cette grande diversité sexplique par le grand nombre derreurs « atomiques » possibles (il semble quil puisse y en avoir une vingtaine par sujet ; au bout de 40 copies, le décompte de ces erreurs atomiques semble converger) et la combinatoire exponentielle des assemblages des erreurs entre elles. Remarque : déterminer si deux propositions (justes ou erronées) sont identiques nest pas immédiat, il faut en outre définir ce que signifie lidentité, on peut par exemple prendre une identité modulo une classe déquivalence donnée : par exemple modulo le nom des variables et quelques constructions syntaxiques équivalentes.
Considérant que les sujets proposés étaient très proches les uns des autres, il peut venir à lesprit lidée de construire une grille dévaluation systématique descriptive et critériée de ce genre dexercice. Les apports de ce type de grille dévaluation sont, par exemple, une plus grande objectivité de la correction, une plus grande masse dinformations disponible pour létudiant. Cependant, ce travail nest pas si immédiat comme [Scallon - 04] le signale. Il faut, de plus, prendre en compte le rapport entre le coût de cette mise en place et ce quelle va rapporter. Les sujets considérés ne représentaient que 10% (en moyenne) de lévaluation ; ce serait peut-être une attention disproportionnée pour lexercice. De plus, lutilisation de ce type de grille dévaluation est souvent associée à une correction nécessitant autant de passes que de critères étudiés, ce qui multiplie le temps de correction.
À noter : la relecture des copies, seconde correction-analyse, a pointé des erreurs (parfois volontaires) lors de la correction initiale. Dans tous les cas observés (2-3 cas pour chaque paquet de 45 copies), il sagissait derreur de correction en faveur des étudiants : des erreurs détudiants navaient pas été vues. En général, il sagissait doublis en faveur de bonnes copies.
Un exemple danalyse automatique par jeux dessai
Lanalyse de programme par jeux dessai est une pratique courante et ancienne en algorithmique et dans lindustrie du logiciel. Critiquée depuis longtemps pour vérifier la correction dun programme, « Program testing can be used to show the presence of bugs, but never to show their absence! » [Dijkstra 69], elle permet cependant davoir à faible coût une idée rapide dune production algorithmique ; aussi est-elle utilisée dans la plupart des sites de concours dalgorithmique (ex : www.spoj.pl) ou les EIAH dalgorithmique [Douce & Al. 05], en particulier pour les premiers apprentissages [Pears & Al. 07]. Dans le cas des concours dalgorithmique ou des EIAH dalgorithmique, ces tests ont à valider une très grande variété de programmes différents (même sils ont la même spécification !), pour la plupart comportant des erreurs, dont des erreurs immédiates. Des allers-retours entre tests et programmes peuvent avoir lieu au cours du temps, les premiers programmes pouvant servir à construire des tests pour les programmes suivants. La variante utilisée ici fait partie des tests dits de « boite noire », c'est-à-dire ne supposant pas la connaissance du programme testé (la spécification seule est supposée connue). Elle peut comporter des tests positifs, fonctionnels ou de conformité (test cherchant à vérifier les résultats attendus sur des données correctes, usuelles), des tests aux limites (pour des données correctes inhabituelles) et de tests négatifs, de vulnérabilité ou de tolérance aux fautes (avec des données incorrectes). Ils sont constitués de couples (donnée, résultat) correspondant aux spécifications et sont effectués en exécutant une production détudiant sur la donnée dun test puis la comparaison des résultats effectifs avec les résultats de références. La version initiale de ces tests peut être rédigée à partir dune analyse a priori du problème, selon les solutions attendues, les objectifs dapprentissages visés et les erreurs courantes connues. Les versions suivantes des tests peuvent tirer profit des productions évaluées précédemment.
La passation dun jeu dessai suppose que la production à tester correspond à un programme suffisamment correct sur le plan syntaxique pour que son exécution soit possible et que la signature du programme corresponde à la spécification donnée pour les jeux dessai. Le résultat de la passation dun jeu dessai sur une production est avant tout binaire : le test est passé correctement si les résultats obtenus correspondent aux résultats de référence (un test dégalité souple peut être mis en place pour permettre des fluctuations entre les résultats obtenus et les résultats de référence : ordre sur les résultats indifférent, noms des variables internes indifférent,
). Lors de la passation dun ensemble de jeux dessai, le résultat est sous la forme dun vecteur de résultats binaires. Sur une production détudiants ayant passé tous les tests correctement, il ne peut être affirmé positivement que la production est correcte, mais sur une production ayant échoué à un test (même à un seul), il est possible daffirmer que la production comporte une erreur ou nest pas optimale (dans lhypothèse où les tests sont eux-mêmes justes).
Exemple de jeux dessai pour le sujet 3 (a-priori), avec la spécification suivante, nombreDOccurence(E,L,N) est vrai ssi le nombre doccurrence de E dans la liste L est N :
Jeux dessai : Donnée (E,L,N) : Résultat :3.1 (1,[],0) true3.2 (0,[],1) fail3.3 (2,[0,1,1,0,1,1,0],R) R = 0; 3.4 (0,[0,1,1,0,1,1,0],R) R = 3; 3.5 (1,[0,1,1,0,1,1,0],R) R = 4; 3.6 (1,[0,1,1,1,0,0,1],R) R = 4 ; 3.7 (0,[0,1,1,1,0,0,1],R) R = 3;
Analyse par jeux dessai vs/en appui dune analyse à la main
Analyse à la main de copies dexamen et analyse par jeux dessai sont deux outils très différents dans leur mise en uvre, pour les objets sur lesquels ils sappliquent et dont les enseignants et les étudiants peuvent attendre des retombées différentes. Dun coté, un processus expert humain lent sur une production papier définitive riche ; de lautre coté une exécution rapide dun test dégalité pouvant être effectué sur des productions intermédiaires pour obtenir des rétroactions immédiates au cours dun travail de rédaction. Prenons pour hypothèse que les productions écrites sujettes à une correction manuelle de la section 1 soient disponibles sous format électronique et puissent subir des tests par jeux dessai.
La correction « à la main » visait la vérification de la bonne compréhension du paradigme de programmation déclarative dun coté et de la récursivité de lautre coté. Pour la validation de lapprentissage de la programmation Prolog, lanalyse par jeux dessai fournit un verdict rapide pour les aspects syntaxiques : tant que la production de létudiant nest pas suffisamment correcte dun point de vue syntaxique et ne permet pas son exécution, lexécution des jeux dessai est impossible. Heureusement, daprès létude « à la main », lapprentissage de la syntaxe Prolog est assez bonne (la syntaxe prolog est assez simple). Le nombre de copies mises à lécart est donc faible. Pour le correcteur humain, ces copies peuvent cependant être étudiées en faisant abstraction des erreurs de syntaxes. Daprès lexpérience en TP de programmation, nous pouvons ajouter que les erreurs de syntaxe sont rarement indépassables pour les étudiants, dès linstant que ces erreurs ont été signalées. Nous pouvons donc supposer que le diagnostic automatique est adéquat. Observons la validation de lapprentissage de la récursivité. « À la main », il sagit dobserver les cas de base et les cas de propagation. Lensemble des jeux dessai retrouve cette séparation entre cas de base et cas de propagation en proposant des tests correspondant aux cas de base (tests positifs et tests négatifs), et des tests nécessitant des cas de propagation (tests positifs et tests négatifs). Les appels récursifs se terminant toujours par des appels aux cas de base, il est clair que la correction des cas de base sera nécessaire à lévaluation des cas de propagation. Prenons un exemple. Pour le sujet 3, les tests concernant des cas de base sont potentiellement les tests 3.1 et 3.2. Ces deux tests correspondent au cas de base attendu sur une liste vide. Le seul test 3.1 naurait pas suffit, car il ne permet pas de mettre en défaut le cas de base erroné trouvé dans plusieurs copies « nombreDOccurence(E, [], N). ». En effet, la réponse à lexécution sur le test 3.1 est correcte sur ces deux cas de base. Létude « à la main » des copies a montré lutilisation dun cas de base sur la liste singleton [E]. Ce cas de base est moins judicieux, car il nexonère pas létudiant de lécriture du cas de base sur liste vide. Par ailleurs, si létudiant met les deux, il obtient des résultats redondants. Lajout de jeux dessai pour ce cas de base pourrait être judicieux. Le choix des jeux de tests est délicat, il peut aider à cerner quelques points, mais le nombre de tests aura tendance à augmenter à mesure que lon veut cerner avec plus de précision différents cas de figures. Cependant, la combinatoire nest pas nécessairement en défaveur du testeur, avec N tests binaires, 2N cas de figures différents peuvent être isolés. Létude des cas réels a montré la très grande dispersion des erreurs. Le coût pour distinguer lensemble de ces cas réels peut donc savérer tout de même important. Par ailleurs, la connaissance des tests peut engendrer des failles et permettre à des étudiants de frauder (quelque soit le nombre de ces tests).
Dun autre coté, regardons ce quapporte la correction automatique. En continuant avec lexemple du sujet 3 (avec le jeu de tests initial), lanalyse automatique par jeux dessai coupe le paquet de copies en 5 tas (avec une analyse après coup des tas obtenus) :
Avec 0 test passé correctement (sur 7 tests, 5 copies) : Les copies ayant un problème important de syntaxe empêchant lexécution des tests
Avec 1 test passé correctement (sur 7 tests, 18 copies) : les copies nayant pas résolu le problème (cas de base incorrect)
Avec 2 et 3 tests passés correctement (sur 7, tests, 7 copies) : les copies ayant un cas de base satisfaisant, mais une propagation incorrecte
Avec 5 tests passés correctement (sur 7 tests, 3 copies) : les copies ayant une solution juste mais pas optimale (cas de redondance dans les cas de base).
Avec 7 tests passés correctement (sur 7 tests, 10 copies) : les copies parfaitement justes.
Lanalyse par jeux dessai na pas mis en évidence de production vérifiant 4 ou 6 tests correctement (et seulement 4 ou seulement 6). Ce qui suggère une structure implicite engendrée par le choix des jeux dessai. De même, il est intéressant de constater que pour les productions détudiants ayant validé seulement 2 tests, ces 2 tests sont toujours exactement les mêmes : 3.1 et 3.2. Idem pour le tas de production ayant validé 3 tests : les deux tests précédents et un test supplémentaire. Ceci conforte lidée que le choix des jeux dessai induit une structure sur les séparations possibles entre différentes productions. Cette structure regroupe certains tests comme équivalents pour un point de vue particulier et définit des relations dinclusion entre ces groupes. La sémantique derrière ces regroupements et inclusions nest pourtant pas évidente, mais elle semble justifier lanalyse a postériori effectuée en ce début de paragraphe (qui part dun a priori qui se trouve ainsi validé : lexistence dune telle structure induisant une sémantique interprétable en terme épistémiques, didactiques ou cognitifs). Enfin, il est à noter que le paquet comportant 7 tests passés correctement sur 7 correspond effectivement aux productions correctes. Malgré les avertissements de E.W. Dijkstra, les tests par jeux dessai ne sont pas si mauvais.
Il est clair que lanalyse des productions détudiants à laide de jeux dessai permettrait une correction plus aisée et plus sûre, peut-être même moins fastidieuse, entre autres en attirant lattention du correcteur directement vers des paquets de copies relativement homogènes. Ces deux outils de corrections ne sont pas nécessairement si éloignés lun de lautre. La rédaction de jeux dessai se rapproche de la mise en place de grilles dévaluation descriptives systématiques et critériées avec la même contrainte que pour la mise en place de ces dernières : il se peut que cela soit réservé aux experts et dune mise au point coûteuse. Mais, à la différence de lemploi des grilles dévaluation où une correction effective est nécessaire et reste coûteuse, avec des jeux dessai, la phase de passation des tests peut être automatisée. Cependant, rappelons que la correction cest aussi un temps où lenseignant redécouvre sa matière via le filtre de ses étudiants. Outre les découvertes de détails sur ce qui passe bien ou pas, cest le moment où peuvent se régler des choix de haut niveau vis-à-vis des éléments enseignés.
Analyse par jeux dessai dans un exerciseur dalgorithmique (EDBA)
Changeons de contexte et considérons maintenant lEIAH dont la mise en place a servi de contexte à cette réflexion sur la correction de copies : lapplication web EDBA, Exercises DataBase about Algorithms (www.noe-kaleidoscope.org/public/people/DenisB/EDBA). Lobjectif dEDBA est de fournir une application web sous la forme dun éditeur de code intégrant les interpréteurs nécessaires à lexécution du code, un moteur de test accédant à une base de données dexercices et de jeux dessai permettant de sexercer sur des problèmes algorithmiques de tous niveaux, quel que soit le langage de programmation ou la langue maternelle, avec des rétroactions sur les aspects syntaxiques et la correction des productions (à base dévaluation par jeux dessai). À ce jour, plus de 200 exercices sont disponibles dans EDBA avec près de 1500 jeux dessai, soit environ 7 tests par exercice. Plus de détails sur la mise en uvre dans [Bouhineau - 11].
Depuis 2009, quelques étudiants ont pu travailler avec les premières versions dEDBA : lensemble de la promotion de L3-MIAGE-IMA de 2009-2010 et de 2010-2011 (en cours), soit environ 45 étudiants chaque année, ont eu un libre accès à EDBA. Seuls une vingtaine a saisi cette opportunité (+10 simples curieux nayant effectué quune visite rapide inférieure à 1/2h) avec des durées de travail entre 1h30 et 15h, pour un total de plus de 100h. Lobservation des logs de ces étudiants montre des enchainements de phases de rédaction de programmes se concluant par des phases de test-rédaction. Après la phase de rédaction, le premier test est rarement concluant (moins dun cas sur 10 avec les premiers tests justes à 100%, ces cas rares correspondent à des phases de tests se terminant souvent dès le premier test), il sensuit des recherches damélioration visibles par dautres test, en général améliorant le taux de réussite par à-coups (ex : 1 test ok sur 5, puis 4/5, puis encore 4/5, puis 5/5 et arrêt des tests), jusquà un plateau proche ou égal à 100% de tests réussis. Létude de ces parcours confirme le fait que tous les cas de figure de test réussis ne sont pas observés. Il y a concentration sur un petit nombre de sous-ensembles de tests réussis. La progression dans les tests, le fait que le travail de rédaction des étudiants ne sarrête pas avec le premier test, mais se poursuive jusquà un taux de réussite de 100% ou proche de 100%, semblent montrer que les étudiants trouvent là une motivation pour prolonger leur travail. Un système à points (points dexpertise distribués en fonction du nombre de tests réussis lors dune passation, dépendant du niveau de difficulté de lexercice, et capitalisés par létudiant pour pouvoir accéder à des exercices de plus grande difficulté) renforce probablement cette motivation. Lors dentretiens informels, ces tests et ce système à points sont ressortis comme des éléments positifs de lapplication. Lorganisation du travail semble également modifiée : les étudiants ne découpent pas leur travail en deux phases, une phase de rédaction de tous les programmes, puis une phase de test et de correction globale, comme on peut lobserver couramment dans dautres contextes denseignement de linformatique (TP sur machine par exemple). Les étudiants ne passent à la rédaction de lexercice ou du programme suivant quaprès une phase concluante de test de lexercice courant.
Coté enseignant, ou rédacteur dexercice/jeux dessai, lun des objectifs dEDBA est de permettre dintroduire un exercice et les jeux dessai associés en moins de 10 minutes (pour un exercice facile) et de pouvoir améliorer lensemble si nécessaire en moins de temps. Pour arriver à ce temps réduit, un minimum dinformations est demandé par EDBA au rédacteur pour introduire un exercice : un énoncé informel de lexercice, une spécification formelle et des jeux dessai. Aucune solution de lexercice nest demandée. Pour mettre au point lexercice, le rédacteur peut programmer une solution dans EDBA et celle-ci peut alors servir à la rédaction des jeux dessai. Pour améliorer lexercice et les jeux dessai, le rédacteur dun exercice a accès aux codes des étudiants ayant essayé de résoudre lexercice ainsi quaux exécutions des jeux dessai. À travers lanalyse de ces premières productions, le rédacteur peut observer les premières tendances et solutions ou erreurs apparaissant et adapter lénoncé ou les jeux dessai en fonction. La section précédente danalyse par jeux dessai vs/en appui dune analyse à la main a montré quil y avait là une nécessité davoir des outils pour faciliter ce travail. Une vision globale du cycle de vie de lexercice semble donc encourager cet aller-retour entre rédacteurs et étudiants. On retrouve là une problématique connue au démarrage des EIAH [McLaren & Al. 04].
Coté concepteur de lEIAH, deux versants ont été considérés : dun coté, comment mettre en place une base de jeux dessai ; de lautre, comment faire passer ces tests. Les sections précédentes ont montré que la mise en place dune base de jeux dessai tire un grand profit dune intervention experte des enseignants apportant les exercices, non seulement à lintroduction initiale de lexercice, mais aussi après, au cours de la vie de lexercice, à la suite de premières tentatives de résolution de lexercice. Lintroduction de tests génériques a été envisagée pour simplifier lintroduction initiale dun exercice, mais abandonnée car cela signifie remplacer la rédaction des tests par une rédaction dune solution. Il nest pas sûr que le rédacteur y gagne au change. Au final, leffort du concepteur sest orienté vers la mise en place dune interface facilitant lintroduction de jeux dessai contraints par un objectif global : pouvoir rédiger un exercice et ses jeux dessai en moins de 10 minutes. Cet objectif étant atteint, la voie des tests génériques a été laissée de coté, ce qui nous a épargné la vérification de lhypothèse de lexistence de données génériques. Pour la passation des tests, comme il a été déjà écrit ici et ailleurs, divers aménagements sont nécessaires pour assurer une bonne passation des tests (souplesse des comparaisons entre résultats de référence et résultats effectifs) et protéger lEIAH (limitation des ressources et du temps alloué pour éviter les boucles infinies introduites par erreurs par les étudiants). Enfin, une exigence supplémentaire était imposée au concepteur dans EDBA : que la notion dexercice et que les jeux dessai soient indépendants dun langage de programmation, de telle sorte que EDBA soit réellement un EIAH de lalgorithmique et pas seulement un EIAH de Prolog. Pour vérifier la possibilité de cette indépendance vis-à-vis des langages de programmation, un second langage est disponible dans EDBA (Caml, dautres sont susceptibles dêtre ajoutés dans la mesure où ils possèdent un interpréteur en Javascript, ce qui est le cas de Basic, Forth, Javascript, Lisp, Logo, Php, Ruby, Scheme, Smalltalk, X86,
pour ne citer que les langages les plus connus pour lesquels je connaisse un interpréteur Javascript) et deux types des traitements sont effectués pour utiliser les jeux dessai disponibles (en Prolog) : dune part des transformations syntaxiques simples (par exemple pour faire coïncider la syntaxe des listes Prolog avec celle des listes Caml) et dautre part lutilisation de filtres pour éliminer la passation de tests qui nont pas de sens en CAML (CAML étant un langage fonctionnel, sont passés uniquement les jeux dessai comportant comme « résultat » une et une seule variable, ex : jeux dessai 3.3,
, 3.8). A ce stade du développement dEDBA, il sagit cependant là plus dune preuve de concept que dune mise en place éprouvée.
Conclusion, perspectives
LEIAH pour lalgorithmique EDBA étant dans une phase de mise en place, il fallait pouvoir déterminer si une évaluation de production détudiant par jeux dessai était possible. Létude qualitative qui est reproduite ici semble montrer que correction « à la main » et correction « automatique par jeux dessai » peuvent atteindre les objectifs de validation des productions détudiant que poursuivent les enseignants. Pour les aspects syntaxiques, cette analyse repose sur les interpréteurs des langages de programmation intégrés à EDBA. Pour les aspects plus sémantiques, cette validation nest pas immédiate, les premiers jeux dessai peuvent reposer sur les exemples et contre-exemples quune correction « à la main » peuvent mobiliser a priori. Pour une analyse plus fine, le choix des jeux dessai doit être lobjet dun travail supplémentaire prenant en compte les erreurs effectivement observées après lobtention des première productions dapprenant afin de mieux faire coïncider erreurs réelles et jeux dessai. Dautres analyses, à base dobservations syntaxiques (par ex. : présence et décompte des cas de base et de propagation) peuvent être mises en uvre (dautres modules dEDBA le font), mais dépendent des langages de programmation utilisés, à la différence de létude des réponses aux jeux dessai qui peut se faire indépendamment des langages utilisés.
Au delà de lanalyse des productions par jeux dessai qui fournit à létudiant des exemples (contre-exemples) où la solution proposée est mise en échec, des diagnostics plus signifiants peuvent être visés, voire des propositions de correction des erreurs, ou des exercices de remédiation en utilisant le même principe didentification dune production avec une production erronée de référence par lobservation de coïncidence des comportements sur un ensemble de jeux dessai (partageant les mêmes « données » que lexercice de référence, mais dont les « résultats » seraient spécifiques de chaque erreur de référence). Cependant, létude préliminaire donnée en 1 montre une grande dispersion des erreurs, une analyse a priori risque de naborder quune petite partie de lespace des possibles. Une piste serait peut-être de faire des regroupements sur les tests erronés détudiants pour repérer les cas les plus courants. Ainsi, lenseignant naura pas à écrire les programmes erronés de référence (ils seraient donnés par les étudiants), par contre, lenseignant aurait à déterminer les ensembles de cas intéressants pour les prendre en compte. Mais, même dans cette démarche, le coût humain risque dêtre très élevé pour atteindre une bonne représentativité des erreurs (sans parler de complétude). Aussi, lappel à une démarche participative, associant le rédacteur initial et dautres experts ou étudiants plus avancés dans leur apprentissage est envisagée.
Références (pages web accédées en novembre 2010)
[Bouhineau 97] Denis Bouhineau. Construction automatique de figures géométriques et programmation logique avec contraintes, Thèse Univ. Joseph-Fourier - Grenoble I. 1997.
[Bouhineau & al. - 03] Denis Bouhineau, Alain Bronner, Hamid Chaachoua et Thomas Huguet. Analyse didactique de protocoles obtenus dans un EIAH en algèbre. Actes dEIAH 2003.
[Bouhineau - 11] Denis Bouhineau, Ajax pour EIAH ? Actes dEIAH 2011.
[Dijkstra 69] Edsger Wybe Dijkstra. Notes on structured programming. Technological University Eindhoven, Netherlands Department of Mathematics. 1969.
[Douce & Al. 05] Christopher Douce, David Livingstone, and James Orwell. Automatic test-based assessment of programming: A review. Jal on Edal Resources in Computing, (5)3. 2005.
[Gérard 09] François-Marie Gérard. Evaluer des compétences. Ed. de Boeck Univ., Bruxelles. 2009.
[McLaren & Al. 04] McLaren, B.M., Koedinger, K.R., Schneider, M., Harrer, A., & Bollen, L. Bootstrapping Novice Data: Semi-Automated Tutor Authoring Using Student Log Files. Proc. of ITS-2004, wp on Analyzing student-tutor interaction logs to improve edal outcomes. 2004.
[Pears & Al. 07] Arnold Pears, Stephen Seidman, Lauri Malmi, Linda Mannila, Elizabeth Adams, Jens Bennedsen, Marie Devlin, and James Paterson. A survey of literature on the teaching of introductory programming. SIGCSE (39)4. 2007.
[Scallon - 04] Gérard Scallon. Lévaluation des apprentissages dans une approche par compétences. Edition de Boeck Université, Bruxelles. 2004.
[Skupiene - 10] Jurate Skupiene, Improving the evaluation model for the lithuanian informatics olympiads. Informatics un education. Vol 9.1. Vilnius. 2010.
[Veslin & Veslin - 92] Odile et Jean Veslin. Corriger des copies, évaluer pour former. Pédagogie pour demain, Nouvelles approches. Hachette éducation, Paris. 1992.
PAGE 12 Environnements Informatiques pour lApprentissage Humain, Mons 2011
Évaluation de solutions algorithmiques PAGE 11
PAGE 1
Environnements Informatiques pour lApprentissage Humain, Mons 2011