Stages de Pré-Rentrée — Inscriptions ouvertes, places très limitées ! S'inscrire

Annale · 2021Session du 29 avril 2021

Informatique Mines-Ponts PC 2021 — sujet, corrigé et rapport jury

Marches : randonnée, mouvement brownien et chemins auto-évitants. Sujet d'informatique commune (MP/PC/PSI) en trois parties indépendantes axées chacune sur un type de marche. Première partie : étude d'une randonnée concrète via bases de données (SQL) et algorithmes……

Mohamed K.

Mohamed K.

Centralien · MPSI puis MP · Recherche ML santé

Session 2021 :

InfoChimieMaths IMaths II
Aperçu rapide

Top piège du sujet : Initialisation L=[] suivie de L[i] = elt provoque une erreur

Analyse

Ce qu'a observé le jury

Synthèse Hadamard du rapport officiel — citations, chiffres et conseils du jury.

Présentation du sujet

Sujet d'informatique commune (MP/PC/PSI) en trois parties indépendantes axées chacune sur un type de marche. Première partie : étude d'une randonnée concrète via bases de données (SQL) et algorithmes (distance, dénivelé). Deuxième partie : marche aléatoire sur un réseau modélisant le mouvement brownien d'une particule en suspension dans un fluide. Troisième partie : génération de chemins auto-évitants dans Z².…

Structure de l'épreuve

  1. Partie IPartie 1 — Randonnée : SQL et algorithmes (Q1-Q9)(Q1-Q9)Niveau attendu

    Bases de données (Q1-Q4) : SELECT et fonctions d'agrégation (AVG, GROUP BY), jointures (Q3-Q4), confusion HAVING/WHERE. Q5 readline/readlines/split, conversion str→float. Q6 initialisation max à 0 erronée. Q7 dépassements d'indices et signe du dénivelé.…

  2. Partie IIPartie 2 — Mouvement brownien : marche aléatoire (Q10-Q12)(Q10-Q12)Difficile

    Q10 syntaxe « à la numpy » impossible avec des listes. Q11 projeter l'équation différentielle, force aléatoire (uniform/gauss génèrent des valeurs différentes à chaque appel). Q12 méthode d'Euler — utiliser les fonctions précédentes (vma, derive).

  3. Partie IIIPartie 3 — Chemins auto-évitants dans Z² (Q13-Q23)(Q13-Q23)Difficile

    Q13 voisins en diagonale non à considérer, conditionnelles elif inadaptées. Q14 CAE avec point en trop ou oubli de moitié des cas. Q15 confusion liste vide [] avec None. Q16 complexité au pire cas — pas toujours O(n^k). Q18 complexités tri rapide O(n²) vs tri-fusion O(n log n).…

Analyse globale du jury

« Si certaines copies sont très faibles (voire presque vides), certaines sont excellentes et frisent parfois la perfection. La longueur et la difficulté du sujet étaient ainsi tout à fait adaptées à ce type d'épreuve, ce qui a permis de classer les candidats. Le jury souligne l'importance de la présentation : un nombre trop important de ratures nuit à la lecture des codes Python et peut provoquer des erreurs de syntaxe. »

Top pièges sanctionnés

  • Initialisation L=[] suivie de L[i] = elt provoque une erreur-1 pts

    « L'initialisation d'une liste L = [] suivie, dans une boucle for, d'une affectation L[i] = elt provoque une erreur. »

  • Syntaxe à la numpy sur des listes Python-2 pts

    « L'addition terme à terme de deux listes de même taille (respectivement la multiplication terme à terme d'une liste par un flottant ou un entier) ne peut pas se faire à l'aide d'une syntaxe du type L1 + L2 (respectivement a * L), réservée aux tableaux numpy. L'accès à un élément d'une liste de listes se fait quant à lui via une syntaxe du type L[i][j], et pas L[i, j]. »

  • L1 = L2 ne crée pas une copie indépendante-1 pts

    « Le caractère modifiable des listes ; il s'agit d'un aspect subtil de Python, dont les candidats doivent avoir pris conscience au cours de leur formation. Par exemple, quand l'énoncé demande de créer une nouvelle liste, on ne peut pas juste modifier la liste entrée en paramètre d'une fonction ; de même, l'affectation L1 = L2 ne permet pas de créer une copie indépendante de la liste L2. »

  • for elt in L : elt = float(elt) ne modifie pas L-1 pts

    « La modification des éléments d'une liste ; la commande for elt in L : elt = float(elt) n'apporte par exemple aucun changement à la liste L. »

  • Complexité au pire toujours en O(n^k) (Q16)-2 pts

    « Comme souvent, la détermination rigoureuse de la complexité (dans le cas le pire) d'une fonction a beaucoup posé problème. Trop de candidats pensent qu'une telle complexité est toujours en O(n^k), où k est le nombre de boucles for présentes dans la fonction. »

  • SQL : 1998 < ne < 2004 ne fonctionne pas-1 pts

    « Trop de candidats oublient le SELECT quand ils utilisent une fonction d'agrégation. De plus, la syntaxe 1998 < ne < 2004 ne permet pas de répondre à la question ; on préférera écrire par exemple ne > 1998 AND ne < 2004, ce qui n'est pas équivalent en SQL. »

  • Liste vide [] confondue avec None-1 pts

    « Beaucoup de candidats ont confondu la liste vide [] avec la valeur spéciale None. »

Chapitres clés à maîtriser

Bases de données — SQL (SELECT, GROUP BY, jointures)
Manipulation des listes Python (append, copie indépendante)
Méthode d'Euler et résolution d'équations différentielles
Complexité algorithmique (au pire cas)
Tris (rapide, fusion) et leurs complexités

Ressources

Téléchargements

Sujet officiel, corrigé Hadamard et rapport jury — tout en un endroit.

FAQ

Questions fréquentes — 2021

Partager

Préparation Mines-Ponts · Info PC

Bossez ce sujet 2021 avec un ancien taupin

Nos professeurs analysent votre copie sur ce sujet, identifient vos faiblesses et structurent votre révision pour la session 2022.

Sujet