Pourquoi choisir NSI au Bac 2026 ?
La spécialité Numérique et Sciences Informatiques (NSI) au Bac 2026 est la voie royale pour poursuivre en informatique, data science, cybersécurité ou écoles d’ingénieurs informatiques. Contrairement à Mathématiques, NSI est plus accessible car elle valorise la pratique et la résolution de problèmes plutôt que les calculs purs.
NSI au Bac offre une véritable formation informatique : vous apprenez Python (le langage n°1 en data science et IA), les algorithmes, les structures de données, les bases de données SQL, et les réseaux. Ces compétences sont immédiatement employables et très demandées par les entreprises.
Avec un coefficient 16, NSI pèse lourd dans votre note finale. La bonne nouvelle ? Contrairement aux maths, il y a une épreuve pratique (EP) où vous programmez directement. Si vous êtes à l’aise avec Python, vous pouvez scorer très haut.
Structure du Bac NSI 2026
NSI comprend deux épreuves au Bac 2026 :
- Épreuve écrite : 3h30, coefficient 16. Questions de cours + exercices théoriques
- Épreuve pratique (EP) : 2h, coefficient coefficient du total. Programmation Python directement en machine
Le coefficient total pour NSI est 16 (à raison de 10/16 pour l’écrit et 6/16 pour la pratique). Cela rend l’épreuve pratique très importante : une bonne performance en EP peut rattraper une performance moyenne à l’écrit.
| Épreuve | Durée | Type | Poids |
|---|---|---|---|
| Écrite (QCM + exercices) | 3h30 | Questions de cours + problèmes | ⅔ |
| Pratique (Programmation) | 2h | 2 exercices Python à coder | ⅓ |
| Total | 5h30 | Coef 16 |
Le programme officiel de NSI 2026
Le programme NSI est organisé en 5 thèmes fondamentaux. Vous devez maîtriser chacun d’eux.
Thème 1 : Structures de données
Listes et tableaux : représentation en mémoire, opérations (ajout, suppression), complexité, accès aléatoire vs séquentiel. En Python : les listes (dynamiques), tuples (fixes), et tableaux NumPy.
Piles et files : structure LIFO (Last In First Out) pour les piles, FIFO (First In First Out) pour les files. Applications : vérification de parenthèses, parcours en profondeur d’arbres, gestion des processus.
Arbres binaires et généraux : définitions (nœud, arête, feuille, profondeur, hauteur), parcours (inordre, préordre, postordre), arbres binaires de recherche, arbres équilibrés. Implémentation en Python avec classes.
Graphes : représentation (matrice d’adjacence, liste d’adjacence), propriétés (connexe, cyclique, orienté), poids. Très important pour l’Épreuve Pratique.
Dictionnaires et hash tables : tables de hachage (clés → valeurs), résolution des collisions, complexité moyenne O(1). En Python : le dictionnaire natif utilise le hachage.
Thème 2 : Algorithmes
Recherche et tri : recherche linéaire O(n), recherche dichotomique O(log n), tri par insertion O(n²), tri fusion O(n log n), tri rapide O(n log n) en moyenne. Les tris rapides et fusion sont au programme.
Récursion : fonctions qui s’appellent elles-mêmes, cas de base et cas récursif, pile d’appels. Exercice classique : factorielle, suite de Fibonacci, parcours d’arbre. Crucial pour l’EP.
Programmation dynamique : résolution par mémoïsation, problème du sac à dos, chemin minimal. Moins prioritaire que récursion mais peut apparaître.
Graphes et chemins : parcours DFS (profondeur), BFS (largeur), recherche du plus court chemin (Dijkstra en option). Très attendu au Bac.
Thème 3 : Programmation et langages
Python 3 : syntaxe complète, structures de contrôle (if/else, boucles for/while), fonctions, classes et objets, gestion des exceptions (try/except), modules standard (math, random, collections, heapq).
Bonnes pratiques : lisibilité du code, commentaires, noms de variables explicites, éviter le code dupliqué. À l’examen, les correcteurs apprécient un code propre et lisible.
Débogage : savoir identifier et corriger les bugs, utiliser print() ou un débogueur, tester avec des cas limites. L’EP teste votre capacité à déboguer du code.
Thème 4 : Bases de données
Modèle relationnel : tables, schéma, relations, clés primaires/étrangères, intégrité référentielle. Concept fondamental pour comprendre les bases de données.
SQL : requêtes SELECT, INSERT, UPDATE, DELETE, JOIN (INNER, LEFT, RIGHT), agrégations (COUNT, SUM, AVG, GROUP BY), sous-requêtes. SQL est moins testé que Python mais peut aparaître.
Interactions Python-SQL : se connecter à une base de données SQLite depuis Python, exécuter des requêtes, récupérer les résultats. Peut être testée dans l’EP.
Thème 5 : Réseaux et services informatiques
Architecture Internet : modèle client-serveur, protocoles TCP/IP, adresses IP, ports, DNS. Fonctionnement de requêtes HTTP/HTTPS vers un serveur web.
HTML et CSS : structure d’une page web, balises HTML, feuilles de style CSS. Moins prioritaire mais notion basique.
Programmation d’interfaces : créer des interfaces graphiques (tkinter en Python) ou web (HTML + JavaScript). Peut être testé mais pas systématiquement.
Historique et évolution du numérique : histoire des ordinateurs, d’Internet, du web, des algorithmes. Questions culturelles possibles à l’écrit.
Conseils pour bien réviser NSI
Conseil 1 : Pratiquer Python quotidiennement
NSI n’est pas une matière à apprendre par cœur. Vous devez coder tous les jours. Résolvez des exercices Python : commencez par des exercices simples sur Codingame ou Project Euler, puis progressez vers des algorithmes plus complexes. Lors du Bac, vous aurez besoin de cette fluidité.
Conseil 2 : Maîtriser les 5-6 algorithmes essentiels
80% de l’épreuve pratique teste : (1) parcours de listes/arbres, (2) récursion, (3) tris, (4) recherche, (5) structures de données. Entraînez-vous à implémenter ces algorithmes en Python sans aide jusqu’à la fluidité.
Conseil 3 : Comprendre les structures de données
Ne mémorisez pas la théorie des arbres ou graphes : implémentez-les en Python. Créez une classe Nœud, une classe Arbre, une classe Graphe. Comprenez comment les opérations (ajout, suppression, recherche) fonctionnent. C’est beaucoup plus utile que de réciter des définitions.
Conseil 4 : Résoudre des sujets d’épreuve pratique
Les vrais sujets de l’épreuve pratique sont disponibles en ligne. Résolvez les 5-10 dernières années en conditions d’examen : 2h, pas d’aide, que Python 3 + documentation. Chronométrez-vous pour gérer le temps.
Conseil 5 : Apprendre SQL basique
Bien que moins prioritaire que Python, connaître SQL SELECT, WHERE, JOIN est utile. Pratiquez sur SQLZoo ou w3schools. Vous ne aurez probablement qu’1-2 questions SQL au Bac écrit.
💡 Astuce examen pratique : Lors de l’EP, commencez par lire les deux exercices. Identifiez celui qui vous semble le plus facile et codez-le d’abord. Cela vous donne confiance et points rapides. Ensuite, attaquez le plus difficile avec 45 min de concentration intense.
Les 5 algorithmes incontournables du Bac NSI
1. Tri fusion et tri rapide
Deux algorithmes O(n log n) divisant pour régner. Implémentez-les en Python, comprenez leur complexité et quand les utiliser. Tri rapide est plus rapide en pratique.
2. Recherche dichotomique
Rechercher un élément dans une liste triée en O(log n). Fondamental pour comprendre la différence entre O(n) et O(log n).
3. Parcours d’arbre (DFS)
Parcourir tous les nœuds d’un arbre en profondeur, généralement par récursion. Essentiellement pour les problèmes d’arbres.
4. Parcours de graphe (BFS)
Parcourir un graphe en largeur avec une file. Permet de trouver le plus court chemin en nombre d’arêtes (non-pondéré).
5. Récursion avec memoïsation
Utiliser un dictionnaire pour mémoriser les résultats déjà calculés. Exemple : Fibonacci. Économise une complexité exponentielle.
💻 Code propre
À l’examen pratique, la clarté du code compte. Utilisez des noms de variables explicites et commentez les logiques complexes.
📊 Déboguer
Testez votre code avec des exemples simples en premier. Vérifiez les cas limites (listes vides, élément non trouvé).
⏱️ Gestion du temps
En 2h d’épreuve pratique, vous avez ~60 min par exercice. Allouez 10 min au brouillon, 40 min de coding, 10 min de relecture.
📚 Documentation
À l’examen, une documentation Python est fournie. Entraînez-vous à l’utiliser pour les fonctions natives (sorted, list.append, etc.).