Apprentissage de la programmation par les problèmes : génération automatique d'exercices et recommandation - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2023

- Learning problem-based programming : automatic generation of exercises and recommendations.

Apprentissage de la programmation par les problèmes : génération automatique d'exercices et recommandation

Théo Barollet
  • Fonction : Auteur
  • PersonId : 1385329
  • IdRef : 278397387

Résumé

Teaching computer science is an important issue as more and more people need to use programming or computer science skills in their jobs.When programming, it is inevitable that some bugs occur.Debugging is a main task in programming and is seldom taught in computer science curricula.We usually learn debugging the hard way and become more efficient after gaining more experience.In this thesis, we will try to teach debugging and provide training exercises for novice programmers.There are already several Intelligent Tutoring Systems (ITS) on simpler topics like secondary school algebra.They host an exercise database and provide a recommendation on the next exercise to do.We will see that it might be too difficult to adapt these recommendation systems to a database of debugging exercises provided the complexity of the debugging activity.We will briefly study the automatic generation of debugging exercises.This will prove to have results far from the expectation and will require a change in the approach to teaching debugging.We present agdbentures, a debug practicing game that features increasing difficulty and carefully designed debugging exercises.Each exercise takes the form of a small mini-game that is impossible to win without fixing some bugs in the source code.Many efforts were made to increase the engagement of learners.The first experimental results of agdbentures with CS1 students are encouraging as they indeed enjoyed very much searching and fixing the bugs in agdbentures exercises.While developing agdbentures, we realized that the monitoring of an exterior program is a common task in many computer science teaching applications, for example, all visualization teaching tools.We developed easytracker, a framework to monitor program execution with a language-agnostic API for C (or any GDB-supported language) and Python.easytracker is used as a library to abstract many of agdbentures engineering regarding monitoring.We developed several other tools based on easytracker that we use in lectures to show program execution to demonstrate the benefits of easytracker when writing such a tool because all the effort can be put into visualization from a memory model.
L'enseignement de l'informatique est une tâche importante puisque de plus en plus de personnes doivent utiliser ces compétences dans leur travail.En programmation il est impossible d'éviter l'apparition de bugs. Le debug est une tâche primordiale en programmation et n'est pourtant que peu enseignée dans les cursus d'informatique.On apprend principalement le debug par l'expérience et la pratique en dehors des cursus scolaires et on devient plus efficace avec le temps.Dans cette thèse, nous essayons d'enseigner le debug et fournir des exercices de debug à destination des programmeurs novices.Il y a aujourd'hui déjà plusieurs Système de Tutorat Intelligent (ITS en anglais) sur des sujets plus simples comme l'algèbre au collège.Ces systèmes hébergent une base de données d'exercices et fournissent une recommandation sur le prochain exercice à effectuer.Nous verrons qu'il est probablement trop difficile d'adapter ces systèmes de recommandation à une base d'exercices de debug étant donnée la complexité du processus de debug.Nous étudierons à côté brièvement la génération automatique d'exercices de debug.Cela montrera des résultats loin des attentes et va nécessiter un changement d'approche pour notre enseignement du debug.Nous présentons Agdbentures, un jeu d'entrainement au debug avec une difficulté croissante et des exercices désigné manuellement.Chaque exercice prend la forme d'un mini-jeu qu'il est impossible de terminer sans corriger un ou plusieurs bugs dans le code source.Beaucoup d'efforts ont été faits pour accroitre l'engagement des apprenants.Les premiers résultats expérimentaux d'Agdbentures avec des étudiants de L2 sont engageants. Ils montrent en effet que les étudiants apprécient chercher et résoudre les bugs dans l'environnement d'Agbentures.Pendant le développement d'Agdbentures, nous avons réalisé que le monitoring d'un programme externe est en fait une tâche plus générale en enseignement de l'informatique, par exemple pour des outils de visualisation.Nous avons développé Easytracker, un framework pour monitorer l’exécution d'un programme de manière agnostique au langage de programmation utilisé pour C (ou n'importe quel langage supporté par GDB) et Python.Easytracker est utilisé en tant que bibliothèque pour abstraire beaucoup de l'ingénierie requise pour le développement d'Agdbentures vis à vis du monitoring du programme source.Nous avons développé plusieurs autres outils basés sur Easytracker que nous utilisons en cours pour montrer l'exécution pas à pas d'un programme et démontrer les bénéfices d'Easytracker en écrivant ces outils puisque tout l'effort a pu être mis dans la visualisation du modèle mémoire directement.
Fichier principal
Vignette du fichier
BAROLLET_2023_archivage.pdf (5.14 Mo) Télécharger le fichier
Origine Version validée par le jury (STAR)

Dates et versions

tel-04586998 , version 1 (24-05-2024)

Identifiants

  • HAL Id : tel-04586998 , version 1

Citer

Théo Barollet. Apprentissage de la programmation par les problèmes : génération automatique d'exercices et recommandation. Intelligence artificielle [cs.AI]. Université Grenoble Alpes [2020-..], 2023. Français. ⟨NNT : 2023GRALM067⟩. ⟨tel-04586998⟩
0 Consultations
0 Téléchargements

Partager

Gmail Mastodon Facebook X LinkedIn More