Assistance in learning algorithms: Method and tool for evaluation and feedback
Assistance à l'apprentissage de l'algorithmique : Méthode et outil pour l'évaluation et la rétroaction
Résumé
Mastering the basic concepts of programming and the ability to carry out simple programs are the essential objectives of introductory computer science courses. The teaching and learning of programming is considered complex, which explains the high drop-out rate of these programs, widely documented in the literature. Many works provide learning environments for programming that assist learners in mastering the syntax and semantics of programming languages. However, among the causes of failure, the literature identifies a lack of ability to decompose and formalize a problem in the form of an algorithm.
In the context of this thesis, we are interested in the analysis and algorithmic solution phase. The purpose of this phase is to teach the learner a problem solving and formalization process. In this phase the learner describes or structures his algorithmic solution using a formal notation (pseudo-code) independent of any programming language.
The literature review indicates that improving problem solving skills requires practice. As part of programming for novices, it is necessary to do many exercises (problem solving) with increasing difficulty levels. It is also necessary to provide feedback related to the mistakes made by the learners.
For this purpose we propose AlgoInit, a Web environment for algorithmic learning.
Based on the study of the literature, we defined:
- A modeling based on Bloom's taxonomy to define the cognitive level of the proposed
exercises.
- An evaluation approach based on the comparison of a learning solution to a model
solution. To compare the solutions (learner and models) described in pseudo-code, we
go through a step of transforming solutions into labeled trees built from a rule base.
- Rules for providing feedback and progressive exercises based on the outcome of the
learner's solution assessment.
To evaluate the potential of our prototype, we have conducted two experiments at the University of Djibouti. The first experiment was devoted to evaluating the ability of our prototype to recognize the different algorithmic solutions. The second one was devoted to the evaluation of the educational interest of AlgoInit. These experiments have shown convincing results on the ability of AlgoInit to classify solutions (correct and incorrect) and to provide useful feedback. The results also indicate that our system has a significant influence on students’ problem solving ability.
La maîtrise des concepts fondamentaux de la programmation et la capacité à réaliser des programmes simples sont les objectifs essentiels de l’enseignement dans les cours d’introduction à l’informatique. L’enseignement et l’apprentissage de la programmation sont considérés comme complexes, ce qui explique le taux d’abandon important dans ces filières, largement documenté dans la littérature. De nombreux travaux proposent des environnements d’apprentissage de la programmation assistant les apprenants dans la maîtrise de la syntaxe et de la sémantique des langages de programmation. Toutefois, parmi les causes d’échecs, la littérature identifie un manque de capacité à décomposer et formaliser un problème sous forme d’algorithme.
Dans le cadre de cette thèse, nous nous intéressons à la phase d’analyse et de mise en solution algorithmique. Cette phase a pour rôle de faire acquérir à l’apprenant une démarche de résolution de problème et de formalisation de la solution. Dans cette phase l’apprenant décrit ou structure sa solution algorithmique à l’aide d’une notation formelle (pseudo-code) indépendant de tout langage de programmation.
L’étude de la littérature indique que l’amélioration de la capacité de résolution de problème passe par la pratique. Dans le cadre de la programmation, pour les novices, il est nécessaire de faire de nombreux exercices (résolution de problème) avec des niveaux de difficulté croissants. Il est par ailleurs nécessaire de fournir une rétroaction en rapport avec les erreurs commises par les apprenants.
Dans cet objectif nous proposons AlgoInit, un environnement Web pour l’apprentissage de l’algorithmique. En nous basant sur l’étude de la littérature, nous avons défini :
- Une modélisation basée sur la taxonomie de Bloom pour définir le niveau cognitif des exercices proposés ;
- Une approche d’évaluation basée sur la comparaison de la solution apprenant avec une solution modèle. Pour comparer les solutions (apprenant et modèles) décrites en pseudo-code, nous passons par une étape de transformation des solutions en arbres étiquetés construits à partir d’une base de règles ;
- Des règles pour fournir rétroactions et exercices progressifs en fonction du résultat de l’évaluation de la solution de l’apprenant.
Afin d’évaluer la potentialité de notre prototype, nous avons mené deux expérimentations à l’université de Djibouti. La première expérimentation a été consacrée à l’évaluation de la capacité de notre prototype à reconnaître les différentes solutions algorithmiques. Quant à la deuxième, elle a été consacrée à l’évaluation de l’intérêt pédagogique d’AlgoInit. Ces expérimentations ont montré des résultats probants sur la capacité d’AlgoInit à classer les solutions (correctes et incorrectes) et à fournir des rétroactions utiles. Les résultats indiquent également que notre système à une influence significative sur la capacité de résolution de problèmes des étudiants.
Origine | Fichiers produits par l'(les) auteur(s) |
---|