Statistiques jury
Comment les candidats s'en sont sortis
Notes brutes officielles publiées par le jury — non harmonisées.
Moyenne
10.40
Médiane
10.4
Écart-type
3.30
Q1 (25%)
8.2
Q3 (75%)
12.6
Candidats présents
—
Analyse
Ce qu'a observé le jury
Synthèse Hadamard du rapport officiel — citations, chiffres et conseils du jury.
Présentation du sujet
Sujet Python de 2h. Structure de données 'texte' = liste de caractères. Partie I : différentiels par positions fixes (textes de même taille) — comparaison, dictionnaires de différences, application/retrait de différences, historique. Partie II/III : distance de Levenshtein (édition) — programmation dynamique en matrice (n+1)×(m+1), reconstruction du chemin optimal, modélisation comme plus court chemin, Dijkstra avec file de priorité.
Structure de l'épreuve
- Partie I — Partie I — Différentiels par positions fixes (textes de même taille)(Q1-Q9)Niveau attendu
Test d'égalité (Q1), comparaison caractère par caractère (Q2), dictionnaire de différences (Q3), construction de tranches modifiées (Q4-Q5), application sans modification en place (Q5-Q6), historique avec append/pop (Q7). Q1-Q9 : 88-100 % de copies, moyennes 0.64-0.93/1.
- Partie II — Partie II — Distance d'édition (Levenshtein) en programmation dynamique(Q10-Q13)Difficile
Matrice de coûts (n+1)×(m+1) — erreur fréquente de travailler sur n×m. Q9 : récurrence à 3 cas. Q11 : reconstruction du chemin en partant de (n+1, m+1) et remontant, pas de (0,0). Q10 : 74,8 % traitée, moyenne 0,57.
- Partie III — Partie III — Modélisation graphe et plus court chemin (Dijkstra)(Q14-Q17)Très difficile
Caractérisation des sommets visités par Dijkstra. Pondérations des arcs : coût d'édition = 1, M ne sert pas. Files de priorité avec ajoute() et extraire_min() — log à inclure dans la complexité. Q13-Q17 : 2,5-25 % traitée, peu réussies (moyennes 0,15-0,55).
Analyse globale du jury
« Sujet Python obligatoire sur la gestion de versions de grands textes. Note moyenne des candidats français admissibles : 10,40/20, écart-type 3,30. En grande majorité, la syntaxe Python est maîtrisée. Toutes les questions se résolvaient en style impératif (boucles for, quelques while) — les candidats utilisant un style récursif ont majoritairement échoué. Lisibilité importante : noms de variables aidant le lecteur. Cas de base inutiles (texte vide) à éviter. Dépassements de bornes fréquents : while texte1[i] == texte2[i] and i < len(texte1) — la comparaison est exécutée avant la vérification de la borne. Utiliser les fonctions début(tr), avant(tr) et non les indices. »
Top pièges sanctionnés
Style récursif au lieu d'impératif — majoritairement échoué-2 pts
« Toutes les questions de ce sujet se résolvaient naturellement avec des fonctions écrites en style impératif : boucles for, quelques boucles while. Les candidats qui ont tenté d'utiliser un style récursif pour certaines questions ont majoritairement échoué. »
Dépassement de bornes : comparaison avant test d'index dans while-2 pts
« Il faut veiller aux dépassements de bornes de listes. Attention, dans while texte1[i] == texte2[i] and i < len(texte1) : il y a un dépassement puisque la comparaison texte1[i] == texte2[i] est exécutée avant d'avoir vérifié la borne. »
Modifier le texte en place au lieu de le recopier (Q5)-2 pts
« La fonction ne doit pas modifier le texte en place, mais le recopier. Attention, l'instruction texte2 = texte1 ne recopie pas le texte1. »
Complexité O(len(texte1)*len(diff)) au lieu de O(len(texte1)) (Q5)-2 pts
« Certains candidats donnent une complexité en O(len(texte1)*len(diff)). Il faut remarquer que, même s'il y a deux boucles imbriquées, le nombre total de passages dans la boucle la plus interne est bien O(len(texte1)). »
Récurrence Levenshtein incorrecte M[i+1][j+1] = M[i+1][j] + M[i][j+1] - M[i][j] (Q9)-3 pts
« La solution proposée par plusieurs copies 'quand texte1[i] != texte2[i], M[i+1][j+1] = M[i+1][j] + M[i][j+1] - M[i][j]' est fausse. Contre exemple : texte1 = ['e', ' ', 'c', 'h', 'a', 't'], texte2 = ['h', 'i', 'e'] — cette approche donne 3, la bonne réponse est 5. »
Chapitres clés à maîtriser
Ressources
Téléchargements
Sujet officiel, corrigé Hadamard et rapport jury — tout en un endroit.
FAQ

