Analyse
Ce qu'a observé le jury
Synthèse Hadamard du rapport officiel — citations, chiffres et conseils du jury.
Présentation du sujet
Sujet de communication numérique évaluant la capacité des candidats à relier différentes notions du programme aux problèmes concrets d'une communication. Longueur et difficulté tout à fait adaptées, ce qui a permis de bien classer les candidats. Si certaines copies sont très faibles (voire presque vides), d'autres sont excellentes et frisent parfois la perfection.
Structure de l'épreuve
- Partie I — Partie 1 — Compression du message(Q1-Q9)Niveau attendu
Q1 ambiguïté du décodage rarement détectée. Q2 syntaxe Python (= au lieu de ==, confusion variable c / chaîne 'c'). Q3 oubli des guillemets pour chaînes. Q4 complexités souvent en n seul au lieu de (n, k). Q7 manipulation des dictionnaires (clés, keys()). Q8-Q9 SQL : DISTINCT, jointures, GROUP…
- Partie II — Partie 2 — Décodage Viterbi (programmation dynamique)(Q10-Q25)Difficile
Q11 dépaquetage de t-uples mal compris. Q14 condition d'arrêt while souvent incorrecte ; append utilisé sur chaîne (interdit). Q15 erreurs dans le dénombrement des arcs. Q16 erreurs de calcul sur probabilités. Q17 manque de justification sur l'impossibilité d'une exploration exhaustive.
Analyse globale du jury
« L'épreuve abordait un large éventail de notions étudiées durant les deux années de préparation tout en évaluant la capacité des candidats à relier ces notions aux problèmes concrets rencontrés lors de la mise en œuvre d'une communication numérique. Elle a permis d'évaluer et de classer l'ensemble des candidats. Le jury déplore des confusions liées à l'utilisation des types (utilisation de append réservé aux listes avec chaînes ou dictionnaires). La notion de complexité semble ne pas être acquise pour une partie des candidats. Certains candidats, de manière quasi systématique, ne traitent pas les questions Python — manque d'entraînement. »
Top pièges sanctionnés
Utiliser append (réservé aux listes) avec des chaînes de caractères ou dictionnaires-2 pts
« Le sujet requiert l'utilisation de différents types de variables (chaines de caractères, dictionnaires, listes…). Le jury déplore le nombre important de confusions liées à leur utilisation. En particulier, un nombre important de candidats utilise append, réservé aux listes, avec des chaines de caractères ou des dictionnaires. »
Q4 : complexités exponentielles pour un programme avec une seule boucle for-2 pts
« La notion de complexité semble ne pas être acquise pour une partie des candidats qui ne maîtrise pas l'utilisation de O. L'absence de justification a été sanctionnée. Le jury note aussi l'absence d'esprit critique de certains candidats qui proposent des complexités exponentielles pour un programme ne comportant qu'une boucle for. »
Q9 : sous-requêtes alors que UNE requête est demandée ; confusion WHERE/HAVING, SUM/COUNT-2 pts
« Plusieurs candidats proposent des sous-requêtes alors que le sujet demande explicitement UNE requête. L'utilisation des jointures est assez peu maitrisée. Erreurs de syntaxe SQL récurrentes : confusion entre WHERE et HAVING ; confusion entre SUM et COUNT ; utilisation de attribut.table au lieu de table.attribut ; mauvaise maîtrise de GROUP BY. »
Q11 : dépaquetage de t-uples — appeler la fonction deux fois (coûteux)-1 pts
« La méconnaissance du dépaquetage d'un t-uple et de la syntaxe d'assignation de plusieurs variables de manière simultanée est la source de nombreuses erreurs : l'instruction t = codeCar(c, g, d) suivie par g = t[0] et d = t[1] est correcte alors que l'instruction g = codeCar(c, g, d)[0] suivi de d = codeCar(c, g, d)[1] ne l'est pas. »
Q14 : appels redondants à une fonction au lieu de stocker le résultat dans une variable-1 pts
« Certains candidats font des appels multiples et coûteux de la fonction decodeCar. Il est préférable de stocker le résultat de l'appel d'une fonction dans une variable plutôt que d'appeler une fonction de manière redondante. »
Ne pas traiter les questions Python par manque d'entraînement-3 pts
« Certains candidats, de manière quasi systématique, ne traitent pas les questions nécessitant d'écrire un programme dans le langage Python. Cela montre un manque d'entraînement à [la programmation en Python]. »
Chapitres clés à maîtriser
Ressources
Téléchargements
Sujet officiel, corrigé Hadamard et rapport jury — tout en un endroit.
FAQ

