🎯 En bref
L'épreuve d'informatique commune (tronc commun) est présente aux concours pour les filières MP, PC et PSI, sous forme d'une épreuve écrite en Python à Centrale-Supélec, Mines-Ponts, CCINP et e3a-Polytech. Elle repose sur le programme d'informatique pour tous : programmation Python, algorithmique (tris, recherche, complexité), un peu de récursivité, et surtout les bases de données / SQL. Le coefficient est modeste (souvent 3 à 6 % de l'admissibilité, indicatif) mais le ratio points/temps est excellent car les questions sont courtes et très codifiées. La clé Majorant : coder à la main sur copie tous les jours et maîtriser une vingtaine de motifs de code qui reviennent chaque année.
ℹ️ Info
Le langage officiel du programme est Python 3. Tu n'as pas à connaître par cœur des bibliothèques exotiques : le sujet fournit toujours les fonctions non triviales dont tu as besoin (ou t'autorise à les supposer écrites). Ton capital, c'est la syntaxe de base : `for`, `while`, `if`, `def`, `return`, listes, dictionnaires, chaînes.
💡 Conseil
Fais-toi une fiche recto-verso : d'un côté les 20 motifs Python qui reviennent (dichotomie, tri par insertion, parcours de matrice, comptage dans un dictionnaire), de l'autre les 10 patrons de requêtes SQL. Cette double fiche, révisée en active recall, couvre l'immense majorité des points de l'épreuve.
ℹ️ Info
Le poids exact et le découpage changent d'une session à l'autre et d'une filière à l'autre : vérifie chaque année le règlement officiel de ta banque de concours. L'ordre de grandeur à retenir : le coefficient est modeste, mais les questions d'informatique sont parmi les plus rentables au temps investi de tout le concours.
💡 Conseil
Écris toujours une ligne de commentaire ou une phrase en français à côté de ta fonction expliquant ce qu'elle fait et sa complexité. Cela montre que tu maîtrises, et cela « sauve » des points même si une ligne de code contient une petite erreur.
ℹ️ Info
Deux pièges classiques : confondre `WHERE` (filtre les lignes *avant* regroupement) et `HAVING` (filtre les groupes *après* `GROUP BY`) ; et oublier la condition de jointure dans un `JOIN`, ce qui produit un produit cartésien géant. Vérifie systématiquement ces deux points.
💡Passe un cap en une semaine intensive avec des mentors X-ENS-Mines qui te font coder et corrigent tes automatismes.
Voir les stages Majorant -->Tu es en MP, PC ou PSI et tu te demandes comment aborder cette épreuve d'informatique commune que beaucoup négligent jusqu'à trois semaines des écrits ? Cet article Majorant réunit l'essentiel : le format des épreuves à Centrale, aux Mines, au CCINP et à e3a, le programme d'informatique pour tous décortiqué (Python, algorithmique, complexité, récursivité, bases de données et SQL), les questions récurrentes, une méthode pour rédiger du Python propre sur copie, les erreurs qui coûtent le plus de points et un plan de préparation réaliste. Je m'appelle Tom, je suis passé par Polytechnique, et avec l'équipe de mentors Majorant (X, ENS, CentraleSupélec, Mines Paris) nous accompagnons chaque année des élèves qui transforment cette épreuve « secondaire » en réserve de points quasi gratuite.
L'épreuve d'informatique commune — aussi appelée informatique du tronc commun — évalue le programme d'informatique pour tous suivi par tous les élèves de CPGE scientifique, quelle que soit leur filière. Elle est distincte de l'épreuve d'informatique spécifique de la filière MPI (qui, elle, va beaucoup plus loin). Ici, on parle du socle commun à MP, PC et PSI : programmer en Python, raisonner sur des algorithmes simples, estimer une complexité et interroger une base de données en SQL.
Concrètement, c'est une épreuve écrite : tu rédiges du code Python sur ta copie, à la main, sans ordinateur. C'est déroutant au début, mais c'est aussi ce qui rend l'épreuve prévisible. On ne te demande pas de produire un logiciel : on te demande d'écrire quelques fonctions courtes, correctes et lisibles, de justifier une complexité, et de manipuler des données.
Le programme commun tient en quelques grands blocs. Connaître leur poids relatif t'évite de te disperser.
Programmation Python de base
C'est le socle non négociable : variables, types (int, float, bool, str), structures conditionnelles, boucles for et while, définition de fonctions, portée des variables. Tu dois savoir manipuler les listes (indexation, tranches, append, parcours, listes de listes vues comme des matrices), les chaînes de caractères et les dictionnaires (accès par clé, parcours, in).
Algorithmique classique
- •Recherche dans une liste : recherche séquentielle, recherche dichotomique dans une liste triée.
- •Tris : tri par insertion, tri par sélection, tri à bulles, et l'idée du tri fusion / tri rapide (diviser pour régner).
- •Parcours et comptages : maximum, minimum, moyenne, recherche d'un motif.
- •Méthodes gloutonnes et notion d'algorithme correct (invariant de boucle, terminaison).
Récursivité et complexité
Tu dois savoir écrire une fonction récursive simple (factorielle, somme, suite de Fibonacci, parcours) et repérer le cas de base. Côté complexité, on attend une estimation en notation grand-O : reconnaître qu'un double for imbriqué est en O(n²), qu'une dichotomie est en O(log n), qu'un parcours simple est en O(n).
Bases de données et SQL
C'est le bloc le plus rentable car le plus codifié. Modèle relationnel (relations, attributs, clés primaires et étrangères), et surtout le langage SQL : SELECT, FROM, WHERE, JOIN, ORDER BY, GROUP BY, fonctions d'agrégation (COUNT, SUM, AVG, MIN, MAX), DISTINCT, LIMIT. Quelques requêtes bien maîtrisées valent beaucoup de points faciles.
Le format varie selon la banque, mais la logique reste la même : des questions courtes intégrées à un problème plus large.
| Concours | Format de l'informatique commune | Remarque |
|---|
| Centrale-Supélec | Souvent intégrée aux épreuves de sciences / à une épreuve dédiée selon l'année | Questions Python + complexité au fil du sujet |
| Mines-Ponts | Informatique commune présente dans le tronc scientifique | Python + algorithmique, parfois SQL |
| CCINP | Épreuve de sciences avec partie informatique, ou questions info intégrées | Bon ratio points/effort |
| e3a-Polytech | Partie informatique dans l'épreuve scientifique | Questions très abordables |
Pour comprendre comment ce coefficient s'insère dans ta stratégie globale d'admissibilité, notre guide sur les barres et coefficients des concours CPGE te donne la grille de lecture. Et pour la vision d'ensemble de chaque banque, consulte nos stratégies dédiées MP, PC et PSI.
Quels types de questions reviennent le plus souvent ?
Après avoir corrigé des centaines de copies, on retrouve toujours les mêmes familles :
- •Compléter ou écrire une fonction : « Écrire une fonction
recherche(L, x) qui renvoie l'indice de x dans la liste L, ou -1 sinon. »
- •Dérouler un programme à la main : donner l'état des variables ou la valeur renvoyée pour une entrée donnée.
- •Justifier une complexité : « Montrer que la fonction précédente est en O(n) dans le pire cas. »
- •Modifier / améliorer un algorithme : passer d'une recherche naïve à une dichotomie, réduire une complexité.
- •Écrire une requête SQL répondant à une question en français (« nom des étudiants inscrits après 2020, triés par âge »).
- •Récursivité : écrire une version récursive d'une fonction, ou compter le nombre d'appels.
C'est là que se gagnent ou se perdent les points « bêtes ». Le correcteur lit vite : ton code doit être immédiatement lisible et exécutable dans sa tête.
La checklist d'une fonction sur copie
- •En-tête complet :
def nom(param): avec les bons paramètres.
- •Indentation nette : dessine mentalement (ou au brouillon) les blocs. Une indentation ambiguë et le correcteur ne peut plus suivre.
- •Un
return explicite : n'oublie jamais de renvoyer le résultat (erreur n°1 sur copie).
- •Initialisation avant la boucle :
s = 0 avant for, res = [] avant d'append.
- •Cas limites : liste vide, élément absent, indice hors bornes.
Exemple : recherche dichotomique bien rédigée
def dichotomie(L, x):
g, d = 0, len(L) - 1
while g <= d:
m = (g + d) // 2
if L[m] == x:
return m
elif L[m] < x:
g = m + 1
else:
d = m - 1
return -1
Cette fonction est en O(log n) : à chaque tour on divise l'intervalle de recherche par deux. Le dire explicitement rapporte les points de la question de complexité.
Pour aller plus loin sur la construction du code et l'algorithmique attendue, notre guide informatique aux concours CPGE en Python détaille les motifs à automatiser.
Le SQL est le meilleur rapport points/effort de l'épreuve, parce qu'il se ramène à une poignée de patrons. La méthode : traduire la phrase française en clauses, dans l'ordre logique.
Le squelette universel d'une requête
SELECT colonnes (ou fonction d'agrégation)
FROM table(s)
JOIN autre_table ON clé = clé_étrangère
WHERE conditions de filtrage
GROUP BY colonne de regroupement
HAVING condition sur les groupes
ORDER BY colonne ASC / DESC
Tu n'utilises que les clauses nécessaires, mais toujours dans cet ordre. Exemple : « nombre d'étudiants par filière, filières de plus de 30 étudiants, triées par effectif décroissant » se traduit directement :
SELECT filiere, COUNT(*)
FROM etudiants
GROUP BY filiere
HAVING COUNT(*) > 30
ORDER BY COUNT(*) DESC
Quelles sont les erreurs classiques qui coûtent des points ?
Chez Majorant, on observe que les mêmes erreurs reviennent copie après copie. Les connaître, c'est déjà les éviter.
- •Oublier le
return : la fonction calcule tout puis ne renvoie rien. Réflexe : relis la dernière ligne.
- •Confondre
= et == : affectation contre test d'égalité.
- •Indice hors bornes : boucler jusqu'à
len(L) inclus au lieu de len(L) - 1.
- •Modifier une liste pendant qu'on la parcourt : source de bugs silencieux.
- •Oublier le cas de base d'une récursion : boucle infinie / dépassement de pile.
- •Complexité annoncée sans justification : écrire « O(n) » sans expliquer pourquoi ne rapporte pas tous les points.
- •SQL : oublier
GROUP BY quand on utilise une fonction d'agrégation avec une colonne non agrégée.
- •Indentation illisible : sur copie, une indentation floue peut faire perdre la question entière.
Ces réflexes se travaillent exactement comme ceux d'un exercice de maths : par répétition. Notre méthode de carnet d'erreurs et de prise de notes s'applique parfaitement ici : chaque bug rencontré à l'entraînement devient une ligne de ta fiche.
La bonne nouvelle : cette épreuve se rattrape vite, parce que le programme est fini et très codifié. La mauvaise : elle ne se rattrape pas la veille, parce que coder à la main est une compétence motrice.
Le plan de préparation Majorant
- •Fiche les motifs (2 à 3 séances) : recherche, tris, parcours de matrice, dictionnaires de comptage, récursivité, requêtes SQL. Une fonction canonique par motif.
- •Code à la main, sur papier (le point crucial) : réécris chaque motif sans regarder, puis vérifie. La mémoire du geste compte plus que la lecture.
- •Fais des annales des trois dernières années de ta banque : repère les questions d'informatique et traite-les en conditions réelles.
- •Chronomètre : une question d'info doit être expédiée vite pour préserver le temps des maths/physique.
- •Révise en active recall ta double fiche Python/SQL une fois par semaine.
| Semaines avant les écrits | Objectif |
|---|
| 8 à 6 | Fiches motifs Python + SQL, réécriture à la main |
| 6 à 3 | Annales par concours, questions d'info isolées |
| 3 à 1 | Conditions réelles, chronométrage, carnet d'erreurs |
| Dernière | Relecture des fiches en active recall, pas de code nouveau |
Pour intégrer ce travail dans un emploi du temps déjà chargé, appuie-toi sur notre méthode d'organisation et planning hebdomadaire en prépa : 30 minutes d'informatique bien placées deux fois par semaine suffisent largement.
Selon les concours et les filières, une épreuve orale d'informatique peut compléter l'écrit à l'admission. Elle prolonge le même programme, mais avec un ordinateur : on te demande de programmer en direct, de tester, de corriger. La préparation est complémentaire de l'écrit — d'où l'intérêt de savoir réellement coder et pas seulement réciter.
Si cet oral te concerne, notre guide dédié à l'oral d'informatique CPGE en Python détaille le format, les attentes de l'examinateur et la méthode. Le socle est identique : les mêmes motifs, la même rigueur, simplement exécutés à la machine.
L'épreuve d'informatique commune est l'une des rares où quelques heures de travail bien ciblées se convertissent presque directement en points. Trois règles à retenir :
- •Code à la main, pas seulement des yeux. La compétence attendue est motrice : réécris les motifs sur papier jusqu'à ce qu'ils sortent sans réfléchir.
- •Sois irréprochable sur les basiques.
return, initialisation, indentation, cas limites : c'est là que se gagnent les points faciles et se perdent les points bêtes.
- •Rentabilise le SQL. Dix patrons de requêtes maîtrisés couvrent presque toutes les questions de bases de données.
En synthèse : traite l'informatique commune comme une réserve de points à haut rendement, pas comme une corvée de fin de programme. Une fiche de motifs, des annales chronométrées et un peu de régularité suffisent à transformer une épreuve négligée par tes concurrents en avantage net. C'est exactement le genre de levier que nos mentors Majorant, passés par Polytechnique, l'ENS, CentraleSupélec et Mines Paris, aident nos élèves à activer chaque année.
FAQ
Oui, le programme d'informatique pour tous est commun aux trois filières. MP, PC et PSI suivent le même socle : Python, algorithmique, complexité, récursivité et bases de données. Seule la filière MPI dispose d'une épreuve d'informatique spécifique, bien plus avancée.
Quel langage de programmation est utilisé aux concours ?
C'est Python 3, le langage officiel du programme. Tu écris tes fonctions en Python sur ta copie, à la main. Aucune autre syntaxe n'est exigée, et les fonctions complexes dont tu as besoin sont généralement fournies par l'énoncé.
Le SQL tombe-t-il vraiment aux concours ?
Oui, les bases de données et le SQL font partie du programme et tombent régulièrement. Ce sont même parmi les questions les plus rentables, car elles se ramènent à une poignée de patrons de requêtes à connaître par cœur : SELECT, WHERE, JOIN, GROUP BY, ORDER BY.
Son coefficient est modeste, souvent quelques pour cent de l'admissibilité selon le concours et la filière. Mais son ratio points/temps est excellent : les questions sont courtes et codifiées. Vérifie chaque année le règlement officiel de ta banque pour le poids exact.
Faut-il un ordinateur pour l'épreuve écrite ?
Non, l'épreuve écrite se rédige entièrement à la main sur copie. Tu écris ton code Python et tes requêtes SQL au stylo. C'est pourquoi il est essentiel de s'entraîner à coder sur papier, et pas seulement devant un écran.
Explique en une ou deux phrases pourquoi ton algorithme a tel comportement, puis conclus en notation grand-O. Par exemple : « à chaque tour de boucle, l'intervalle est divisé par deux, donc la fonction est en O(log n) ». Annoncer la complexité sans justification ne rapporte pas tous les points.
En combien de temps peut-on rattraper cette épreuve ?
Comptez environ six à huit semaines de travail léger mais régulier. Le programme étant fini et codifié, quelques séances de fiches, de réécriture à la main et d'annales suffisent. En revanche, cela ne se rattrape pas la veille : coder à la main est une compétence qui se construit par répétition.
Oui, l'écrit et l'oral d'informatique partagent le même programme. Maîtriser les motifs Python et SQL pour l'écrit te prépare directement à l'oral, où tu programmes cette fois sur machine. La différence tient surtout à l'exécution en direct, pas au contenu.