Ismail Ben Alla

Code-Hinter

Correction par IA intégrée à VS Code

Applications LLM · avr. 2025 · Terminé

Des exercices de programmation créés, soumis et corrigés par IA sans quitter VS Code.

Construit avecTypeScriptVS Code APIPythonFlaskNext.jsHugging Face TransformersSupabase

Code-Hinter — vue d’ensemble

Présentation

Dans un cours de programmation, les exercices vivent généralement à un endroit, le code des étudiants à un autre et la correction à un troisième. Pour un projet d’équipe à l’École Centrale de Lyon, nous nous sommes demandé si toute la boucle pouvait se dérouler dans l’éditeur que les étudiants utilisent déjà, tout en laissant le professeur décider de ce qui constitue une bonne réponse.

Nous avons construit Code-Hinter : une extension VS Code, un backend Python/Flask et une application web Next.js complémentaire. Les professeurs définissent des exercices avec une solution de référence et les concepts attendus ; les étudiants se connectent, choisissent un exercice, puis évaluent ou soumettent leur code depuis la palette de commandes. Un petit modèle ouvert (SmolLM2-1.7B-Instruct) vérifie le code au regard des concepts du professeur et note sa proximité avec la solution de référence.

Ce projet m’a appris que le retour d’une IA n’inspire confiance que lorsque les critères sont explicites et maîtrisés par l’enseignant. Il est resté un projet académique et n’a pas été déployé au-delà du cours.

La question

La correction assistée par IA peut-elle s’intégrer là où les étudiants travaillent déjà — l’éditeur — tout en laissant aux professeurs le contrôle des critères d’évaluation ?

Fonctionnalités clés

Comment ça marche

  1. Le professeur définit l’exercice

    Chaque exercice stocke le code de référence du professeur et les concepts qu’une bonne réponse doit faire apparaître, reliés aux professeurs et aux étudiants dans un modèle relationnel simple.

  2. L’étudiant travaille dans l’éditeur

    L’extension lit le fichier ouvert et l’envoie à l’API Flask (evaluate_code, compare_code ou complete_code) avec l’exercice sélectionné.

  3. Le modèle évalue selon les critères

    Le backend interroge SmolLM2-1.7B-Instruct via Hugging Face Transformers pour vérifier chaque concept, ou pour renvoyer un unique score de similarité de 0 à 100 par rapport à la solution de référence.

  4. Le résultat revient dans VS Code

    La réponse est affichée à l’étudiant dans l’éditeur, et l’application web offre aux enseignants et aux étudiants une vue tableau de bord des exercices.

Exemples

Démo de l’extension VS Code : choix d’un exercice depuis la palette de commandes et évaluation du code. (voir sur YouTube)
Démo de l’application web Next.js complémentaire pour les enseignants et les étudiants. (voir sur YouTube)
Le modèle de données du backend tiré du dépôt : les professeurs créent des exercices et supervisent des étudiants, et chaque tentative d’un étudiant est suivie avec son score, son statut et le code soumis.
Le modèle de données du backend tiré du dépôt : les professeurs créent des exercices et supervisent des étudiants, et chaque tentative d’un étudiant est suivie avec son score, son statut et le code soumis.

Entrée

POST /api/evaluate_code with the exercise's concepts and the student's code, e.g. "print([x for x in range(10)])"

Sortie

One line per concept in the format the grading prompt requires: "[nbr]) [yes/no], [explanation in 6 words]", with any syntax or logic error called out.

Le contrat d’évaluation entre l’extension et le backend, tiré de l’API et du prompt du dépôt.

Stack technique

Ce que j’ai appris

Limites