Épreuve pratique d'algorithmique et de programmation du concours commun des écoles normales supérieures

Pour la session 2025, l'épreuve aura lieu à l'ENS Paris-Saclay.

L'image disque utilisée est celle de la session 2024.

Modalités de l'épreuve (à lire attentivement)

Rappel : une pièce d'identité et la convocation sont indispensables pour passer les épreuves.

L'épreuve se déroulera à l'École normale supérieure de Paris-Saclay pendant le mois de juin 2025 (les 13, 14, 20 et 21 juin pour la filière MPI et le 27 juin pour la filière MP).

Comme lors des éditions précédentes, l'épreuve comporte trois parties :

1. Installation devant l'ordinateur et familiarisation avec l'environnement (10 min)

Ces 10 minutes permettent au candidat de se familiariser avec la machine et l'environnement de programmation. Il peut alors poser librement toutes les questions qu'il souhaite, en particulier sur les langages et interfaces.

2. L'épreuve sur ordinateur (3 h 30 min)

Après les 10 minutes d'installation, les sujets sont distribués et l'épreuve démarre. Le texte du sujet est accompagné d'une fiche réponse où devront être consignés les résultats numériques demandés dans le sujet, dans les cases correspondantes. Le sujet est aussi accompagné d'une clé USB, qui faudra rendre avec la fiche réponse.
Durant cette partie de l'épreuve, le candidat répond aux questions numériques en remplissant la fiche et prépare l'interrogation orale qui va suivre.
Des feuilles de brouillon sont tenues à la disposition des candidats. Nous recommandons à chaque candidat de recopier proprement sur ces feuilles les algorithmes qu'il aura mis en œuvre pour pouvoir les présenter clairement et rapidement à la demande de l'examinateur lors de l'oral qui suivra.

3. Remise de la fiche réponse et présentation orale des résultats lors d'un entretien individuel au tableau (20 min)

À l'issue des 3h30, le candidat est accompagné à la salle d'interrogation avec ses notes de brouillon et sa fiche. Il remet à l'examinateur sa fiche réponse et l'oral commence.
La présentation orale du candidat se fait sous la conduite de l'examinateur qui pourra, par exemple, en fonction des résultats de la fiche, demander au candidat de décrire précisément les algorithmes mis en œuvre sur telle ou telle question, d'en donner leur analyse de complexité (en temps ou espace) et éventuellement proposer au candidat de corriger tel algorithme s'il s'avère faux.
Cet oral permet au candidat de pouvoir présenter les algorithmes qu'il a mis en œuvre. Il ne s'agit pas d'un oral d'algorithmique indépendant de l'implémentation sur machine. L'évaluation est basée avant tout sur la résolution effective des problèmes posés.
TRÈS IMPORTANT : étant donné la durée très courte de l'oral, chaque candidat doit impérativement préparer soigneusement cet oral pendant la partie sur machine en rédigeant proprement sur les feuilles (de brouillon à sa disposition) les algorithmes qu'il a conçus pendant la préparation sur machine, afin de n'avoir qu'à les recopier au tableau, si l'examinateur les lui demande. Les candidats peuvent (et doivent) emporter avec eux tout ce qu'ils ont écrit au brouillon pour passer l'oral.
Remarquez également que cet oral est trop court pour que le candidat puisse concevoir l'algorithme au vol, ou même prendre le risque de ne pas se souvenir correctement de ce qu'il a fait.

Objectifs de l'épreuve

L'objectif de cette épreuve est d'évaluer les capacités des candidats à mettre en œuvre la chaîne complète de résolution d'un problème informatique : analyse des spécifications abstraites, conception d'un algorithme et choix des structures de données, évaluation de sa complexité (coût en temps et en mémoire), programmation sur machine dans l'un des langages proposés, test des programmes sur des petites valeurs des paramètres, et exécution sur des valeurs précises des paramètres. À la fois algorithmique et pratique, cette épreuve est donc transversale et permet de tester la maîtrise du candidat sur la résolution concrète d'un problème informatique.

Déroulement de l'épreuve

À l'entrée dans la salle, les candidats sont invités à prendre place face à l'ordinateur où leur nom est indiqué (voir la description de la configuration logicielle plus bas).

L'épreuve dure 4h10 en tout. Les 10 premières minutes permettent au candidat de s'installer et de se familiariser avec le système. À l'issue de ces 10 minutes, l'épreuve commence par 3h30 de préparation sur machine pendant lesquelles le candidat répond aux questions sur la fiche réponse et prépare la présentation orale de ses résultats. Il doit sauvegarder son travail sur la clé USB. À la fin des 3h30, le candidat est accompagné avec sa fiche réponse, sa clé USB et ses notes à la salle d'interrogation orale où il présente ses résultats sous la conduite d'un examinateur.

Principe des sujets. Les questions portant sur les applications numériques sont posées de façon à pouvoir estimer la qualité et l'efficacité de la programmation : pour répondre juste aux questions portant sur des petites valeurs des paramètres, un programme simple et peu efficace suffit (voire pas de programme du tout) ; en revanche, pour les plus grandes valeurs des paramètres, un programme efficace (en temps et/ou en mémoire) est nécessaire.

Chaque candidat travaille sur des données différentes, générées à partir d'un nombre qui lui est donné individuellement au début de l'épreuve.

Dispositif de sauvegarde. Une clé USB (fixe) sera disponible sur chaque machine pour permettre aux candidats de sauvegarder régulièrement leur travail, afin de limiter les conséquences d'une éventuelle (bien que peu probable) défaillance matérielle ou logicielle. Les candidats doivent sauvegarder leur travail sur cette clé à la fin de la phase de préparation sur machine. La clé est récupérée par les examinateurs en fin d'épreuve.

Réinitialisation des machines. Les disques durs des ordinateurs sont systématiquement restaurés dans leur état initial entre deux sessions. Ainsi tous les candidats travaillent sur une configuration identique quoi qu'ait pu faire le candidat précédent.

IMPORTANT. Il est strictement interdit d'importer des données (ou fichiers de configuration) sous quelque forme que ce soit (clés USB, bluetooth, airport,...) dans les ordinateurs du concours, sous peine d'exclusion immédiate du concours.

Configuration logicielle

Système : Linux Debian avec l'environnement graphique XFCE.

Les langages proposés sont les suivants :

  • Python,
  • Objective Caml,
  • C.

Une documentation est disponible ici : langages.pdf.

Image disque d'entraînement

L'image disque suivante vous permettra de vous mettre en condition pour l'épreuve. Il est vivement conseillé de l'utiliser afin d'éviter de perdre du temps sur des problèmes techniques lors de l'épreuve.

Image disque : tp-algo-2024.iso (l'identifiant et le mot de passe sont tous les deux "tpalgo") et sa documentation : doc-image-iso.pdf (voir ci-dessus pour une documentation des langages et logiciels disponibles).

Archives

Concours 2024

MPMPI
Rapport du juryRapport du jury
Affectation de maisonsLumière (+dossier «base»)
Calculs et tableursRéécriture (+dossier «base»)

Concours 2023

MPMPI
Rapport du juryRapport du jury
Charge de cavalerieOrdre de visite (+dossier «base»)
Des marches dans des graphesRecherche efficace de séquences ADN (+dossier «base»)

Et avant 2023

Pour les archives complètes du concours avant l'édition 2023, consultez l'ancien site de l'épreuve.

Les écoles normales supérieures

Les départements d'enseignement en informatique des écoles normales supérieures ont pour vocation première de former des chercheurs ou enseignants-chercheurs de haut niveau en informatique. Cette formation conduit naturellement aux métiers de la recherche, publique (université, CNRS, INRIA, etc.) ou privée (recherche, ou recherche et développement).

Département d'informatique de l'ENS Lyon

Département d'informatique de l'ENS Paris

Département d'informatique de l'ENS Paris-Saclay (ex. ENS Cachan)

Département d'informatique de l'ENS Rennes

Le site global du concours commun des écoles normales supérieures : https://banques-ecoles.fr/ et pour les départements d'informatique : https://diplome.di.ens.fr/informatique-ens/.