Bac NSI - Épreuve pratique

Nouvelle épreuve 2026 : 1h sur ordinateur début juin 2026 / 25% de la note de NSI du baccalauréat.
Le candidat traite un des 23 sujets de la banque nationale publique. Chaque sujet propose un contexte et plusieurs questions indépendantes, d'implémentation d'un algorithme au programme de 1ère ou Tle NSI, de complétion d'un programme fourni (.py), de détection et de correction d'erreurs ou de biais.

Le candidat est évalué à partir du dialogue avec l'examinateur selon les compétences :
  • Produire : Concevoir et traduire des solutions algorithmiques.
  • Autonomie : Faire preuve d'autonomie, d'initiative et de créativité.
  • Comprendre : Comprendre et réutiliser des codes existants, tester et valider des programmes.
  • Oral : Présenter un problème et sa solution et développer un argumentaire.
Il n'est pas nécessaire d'avoir fait toutes les questions pour obtenir tous les points.
L'examinateur peut inviter à passer sur une autre question afin de pouvoir évaluer les quatre compétences.
Site officiel de la banque de sujets : sujets.examens-concours.gouv.fr.
Retrouver les sujets et de nombreuses corrections sur : ecebac.fr.
Sujet : ?
Sujet 01 .py
1 : Occurences d'un caractère
2 : Rendue de monnaie (glouton)
Sujet 02 .py
1 : Calcul d'une moyenne pondérée
2 : Triangle de Pascal
Sujet 03 .py
1 : Codage par différence
2 : Arbre binaire (arithmétique)
Sujet 04 .py
1 : Entiers consécutifs
2 : Codage d'une image
Sujet 05 .py
1 : Recherche min et max
2 : POO (paquet de cartes)
Sujet 06 .py
1 : Max et son indice
2 : Sous-chaîne dans chaîne ?
Sujet 07 .py
1 : Conversion binaire/décimal
2 : Tri à bulles
Sujet 08 .py
1 : Recherche 1re occurrence
2 : Insertion dans une liste triée
Sujet 09 .py
1 : Calcul d'une suite
2 : Dictionnaire (Code parfait)
Sujet 10 .py
1 : Occurrences avec un dictionnaire
2 : Fusion de listes triées
Sujet 11 .py
1 : Recherche dichotomique
2 : Code de César
Sujet 12 .py
1 : Calcul d'une moyenne
2 : Séparation 0 et 1 dans une liste
Sujet 13 .py
1 : Rendu de monnaie
2 : File, Liste chaînée
Sujet 14 .py
1 : Mots correspondants à un motif
2 : Recherche d'un cycle (dictionnaire)
Sujet 15 .py
1 : Nombre de répétitions dans liste
2 : Conversion binaire (suite de div.)
Sujet 16 .py
1 : Max et son indice
2 : Structure de données : piles
Sujet 17 .py
1 : Compter les mots
2 : Arbre binaire de recherche
Sujet 18 .py
1 : Minimum liste de températures
2 : Palindrome ?
Sujet 19 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique récursive
Sujet 20 .py
1 : Opérateur xor
2 : Carré magique
Sujet 21 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique
Sujet 22 .py
1 : Ecriture d'une chaîne de caractères à l'envers
2 : Crible d'Eratosthène
Sujet 23 .py
1 : Maximum dans un dictionnaire
2 : Pile (calcul arithmétique)
Sujet 24 .py
1 : Maximum d'une liste
2 : Pile (bien parenthésé)
Sujet 25 .py
1 : Sélection enclos (dictionnaire)
2 : Trouver l'intrus (liste de triplets)
Sujet 26 .py
1 : 1re occurence du minimum
2 : Séparation des 0 et 1
Sujet 27 .py
1 : Taille d'un ABR (récursif)
2 : Tri par sélection
Sujet 28 .py
1 : Calcul de moyenne
2 : Conversion decimal en binaire
Sujet 29 .py
1 : Suite de Fibonacci
2 : Les maximum dans une liste
Sujet 30 .py
1 : Fusion de tableaux triés
2 : Chiffres romains vers décimal
Sujet 31 .py
1 : Nombre d'occurrence dans liste
2 : Rendu de monnaie (glouton)
Sujet 32 .py
1 : indice dernière occurrence
2 : POO : adresse IPv4
Sujet 33 .py
1 : Conversion binaire décimal
2 : Tri par insertion
Sujet 34 .py
1 : Caractère le + fréquent
2 : Image en 256 niveaux de gris
Sujet 35 .py
1 : Calcul d'une moyenne
2 : Recherche dichotomique
Sujet 36 .py
1 : Dernière occurrence dans liste
2 : Distance + courte entre 2 pts
Sujet 37 .py
1 : Vérifier liste triée
2 : Compter les votes (dictionnaires)
Sujet 38 .py
1 : Tri par sélection
2 : Jeu du + ou -
Sujet 39 .py
1 : Calcul de moyenne
2 : Zoom sur une image
Sujet 40 .py
1 : Indices des occurences
2 : Moyenne pondérée (dictionnaire)
Sujet 01 .py
1 : Vérifier liste triée
2 : Compter les votes (dictionnaires)
Sujet 02 .py
1 : Indices du max
2 : Pile : sélection des positifis
Sujet 03 .py
1 : Calcul de moyenne
2 : Zoom sur une image
Sujet 04 .py
1 : Repérer doublons dans liste
2 : Jeu du démineur
Sujet 05 .py
1 : Paire de 6
2 : Image en 256 niveaux de gris
Sujet 06 .py
1 : Dernière occurrence dans liste
2 : Distance + courte entre 2 pts
Sujet 07 .py
1 : Fusion de tableaux triés
2 : Chiffres romains vers décimal
Sujet 08 .py
1 : Maximum dans un dictionnaire
2 : Pile (calcul arithmétique)
Sujet 09 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique récursive
Sujet 10 .py
1 : Maximum d'une liste
2 : Pile (bien parenthésé)
Sujet 11 .py
1 : Conversion binaire décimal
2 : Tri par insertion
Sujet 12 .py
1 : Ajout dans un arbre binaire
2 : Problème du sac à dos (glouton)
Sujet 13 .py
1 : Nombre d'occurrence dans liste
2 : Rendu de monnaie (glouton)
Sujet 14 .py
1 : Recherche 1re occurrence
2 : Insertion dans une liste triée
Sujet 15 .py
1 : Minimum liste de températures
2 : Palindrome ?
Sujet 16 .py
1 : Recherche d'indices < = >
2 : Moyenne pondérée (dictionnaire)
Sujet 17 .py
1 : Opérateur xor
2 : Carré magique
Sujet 18 .py
1 : Indice 1re apparition du max
2 : Parcours d'une liste (chromosome)
Sujet 19 .py
1 : Recherche dichotomique
2 : Code de César
Sujet 20 .py
1 : Fusion de dictionnaires
2 : Dé 6 faces : piste carrée
Sujet 21 .py
1 : Codage par différence
2 : Arbre binaire (arithmétique)
Sujet 22 .py
1 : Liste puissance
2 : Dictionnaire (Code parfait)
Sujet 23 .py
1 : Sélection enclos (dictionnaire)
2 : Trouver l'intrus (liste de triplets)
Sujet 24 .py
1 : Occurrences avec un dictionnaire
2 : Fusion de listes triées
Sujet 25 .py
1 : Enumération (liste des indices)
2 : POO : Insertion dans arbre binaire
Sujet 26 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique
Sujet 27 .py
1 : 1re occurence du minimum
2 : Séparation des 0 et 1
Sujet 28 .py
1 : Calcul d'une moyenne
2 : Recherche dichotomique
Sujet 29 .py
1 : Taille d'un arbre binaire
2 : Reproduire la méthode insert
Sujet 30 .py
1 : Calcul de moyenne
2 : Conversion binaire (suite de div.)
Sujet 31 .py
1 : Nombre de répétitions dans liste
2 : Conversion binaire (suite de div.)
Sujet 32 .py
1 : Recherche min et max
2 : POO (paquet de cartes)
Sujet 33 .py
1 : Taille d'un ABR (récursif)
2 : Tri par sélection
Sujet 34 .py
1 : Calcul d'une moyenne
2 : Séparation 0 et 1 dans une liste
Sujet 35 .py
1 : Opérateur xor
2 : Carré magique
Sujet 36 .py
1 : Couples d'entiers consécutifs
2 : Propager valeur dans matrice.
Sujet 37 .py
1 : indice dernière occurrence
2 : POO : adresse IPv4
Sujet 38 .py
1 : Mots correspondants à un motif
2 : Recherche d'un cycle (dictionnaire)
Sujet 39 .py
1 : Suite de Fibonacci
2 : Les maximum dans une liste
Sujet 40 .py
1 : Compter les mots
2 : Insertion dans un arbre binaire
Sujet 01 .py
1 : Taille d'un ABR (récursif)
2 : Tri par sélection
Sujet 02 .py
1 : Mots correspondants à un motif
2 : Recherche d'un cycle (dictionnaire)
Sujet 03 .py
1 : Maximum d'une liste
2 : Pile (bien parenthésé)
Sujet 04 .py
1 : Dernière occurrence dans liste
2 : Distance + courte entre 2 pts
Sujet 05 .py
1 : Indice 1re apparition du max
2 : Parcours d'une liste (chromosome)
Sujet 06 .py
1 : Vérifier liste triée
2 : Compter les votes (dictionnaires)
Sujet 07 .py
1 : Conversion binaire décimal
2 : Tri par insertion
Sujet 08 .py
1 : Codage par différence
2 : Arbre binaire (arithmétique)
Sujet 09 .py
1 : Effectif notes puis tri
2 : Conversion binaire vers décimal
Sujet 10 .py
1 : Calcul de moyenne
2 : Zoom sur une image
Sujet 11 .py
1 : Compter les mots
2 : Insertion dans un arbre binaire
Sujet 12 .py
1 : Tri par sélection
2 : Jeu du + ou -
Sujet 13 .py
1 : Recherche 1re occurrence
2 : Insertion dans une liste triée
Sujet 14 .py
1 : Recherche min et max
2 : POO (paquet de cartes)
Sujet 15 .py
1 : Calcul de moyenne
2 : Conversion binaire (suite de div.)
Sujet 16 .py
1 : Conversion binaire
2 : Tri bulles
Sujet 17 .py
1 : Nombre de répétitions dans liste
2 : Conversion binaire (suite de div.)
Sujet 18 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique récursive
Sujet 19 .py
1 : Liste puissance
2 : Dictionnaire (Code parfait)
Sujet 20 .py
1 : Paire de 6
2 : Image en 256 niveaux de gris
Sujet 21 .py
1 : Recherche motif
2 : Parcours en profondeur (Graphe)
Sujet 22 .py
1 : Recherche d'indices < = >
2 : Moyenne pondérée (dictionnaire)
Sujet 23 .py
1 : Ajout dans un arbre binaire
2 : Problème du sac à dos (glouton)
Sujet 24 .py
1 : Parcours largeur d'un arbre
2 : Plus grande somme possible
Sujet 25 .py
1 : Recherche du minimum
2 : Séparation des 0 et des 1 dans une liste
Sujet 26 .py
1 : Fusion de dictionnaires
2 : Dé 6 faces : piste carrée
Sujet 27 .py
1 : Couples d'entiers consécutifs
2 : Propager valeur dans matrice.
Sujet 28 .py
1 : Suite de Fibonacci
2 : Les maximum dans une liste
Sujet 29 .py
1 : Opérateur xor
2 : Carré magique
Sujet 30 .py
1 : Fusion de tableaux triés
2 : Chiffres romains vers décimal
Sujet 31 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique
Sujet 32 .py
1 : Opérateur xor
2 : Carré magique
Sujet 33 .py
1 : Renverser chaîne de caractères
2 : Nombre 1er, crible d'Ératosthène
Sujet 34 .py
1 : Occurrences avec un dictionnaire
2 : Fusion de listes triées
Sujet 35 .py
1 : Minimum liste de températures
2 : Palindrome ?
Sujet 36 .py
1 : Occurrences avec un dictionnaire
2 : Fusion de listes triées
Sujet 37 .py
1 : Couples d'entiers consécutifs
2 : Propager valeur dans matrice.
Sujet 38 .py
1 : Indices du max
2 : Pile : sélection des positifis
Sujet 39 .py
1 : indice dernière occurrence
2 : POO : adresse IPv4
Sujet 40 .py
1 : Sélection enclos (dictionnaire)
2 : Trouver l'intrus (liste de triplets)
Sujet 41 .py
1 : Taille d'un arbre binaire
2 : Reproduire la méthode insert
Sujet 42 .py
1 : Calcul d'une moyenne
2 : Recherche dichotomique
Sujet 43 .py
1 : Repérer doublons dans liste
2 : Jeu du démineur
Sujet 44 .py
1 : Calcul de moyenne
2 : Insertion dans un ABR
Sujet 45 .py
1 : Nombre d'occurrence dans liste
2 : Rendu de monnaie (glouton)
Sujet 46 .py
1 : Recherche dichotomique
2 : Code de César
Sujet 47 .py
1 : Maximum dans un dictionnaire
2 : Pile (calcul arithmétique)
Sujet 48 .py
1 : Liste d'adjacence (graphe)
2 : Lecture d'une suite 1, 11, 21 ...
Sujet 01 .py
1 : Liste d'adjacence (graphe)
2 : Lecture d'une suite 1, 11, 21 ...
Sujet 02 .py
1 : Indice 1re apparition du max
2 : Parcours d'une liste (chromosome)
Sujet 03 .py
1 : Suite de Fibonacci
2 : Les maximum dans une liste
Sujet 04 .py
1 : Conversion binaire
2 : Tri bulles
Sujet 05 .py
1 : Renverser chaîne de caractères
2 : Nombre 1er, crible d'Ératosthène
Sujet 06 .py
1 : Liste puissance
2 : Dictionnaire (Code parfait)
Sujet 07 .py
1 : Occurrences avec un dictionnaire
2 : Fusion de listes triées
Sujet 08 .py
1 : Maximum d'une liste
2 : Pile (bien parenthésé)
Sujet 09 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique
Sujet 10 .py
1 : Recherche dichotomique
2 : Code de César
Sujet 11 .py
1 : Parcours largeur d'un arbre
2 : Plus grande somme possible
Sujet 12 .py
1 : Fusion de tableaux triés
2 : Chiffres romains vers décimal
Sujet 13 .py
1 : Recherche 1re occurrence
2 : Insertion dans une liste triée
Sujet 14 .py
1 : Paire de 6
2 : Image en 256 niveaux de gris
Sujet 15 .py
1 : Multiplications avec + et -
2 : Recherche dichotomique récursive
Sujet 16 .py
1 : Opérateur xor
2 : Carré magique
Sujet 17 .py
1 : Taille d'un arbre binaire
2 : Reproduire la méthode insert
Sujet 18 .py
1 : Calcul d'une moyenne
2 : Recherche dichotomique
Sujet 19 .py
1 : 1re occurence du minimum
2 : Séparation des 0 et 1
Sujet 20 .py
1 : Recherche min et max
2 : POO (paquet de cartes)
Sujet 21 .py
1 : Indices du max
2 : Pile : sélection des positifis
Sujet 22 .py
1 : indice dernière occurrence
2 : POO : adresse IPv4
Sujet 23 .py
1 : Effectif notes puis tri
2 : Conversion binaire vers décimal
Sujet 24 .py
1 : Enumération (liste des indices)
2 : POO : Insertion dans arbre binaire
Sujet 25 .py
1 : Minimum liste de températures
2 : Palindrome ?
Sujet 26 .py
1 : Fusion de dictionnaires
2 : Dé 6 faces : piste carrée
Sujet 27 .py
1 : Vérifier liste triée
2 : Compter les votes (dictionnaires)
Sujet 28 .py
1 : Repérer doublons dans liste
2 : Jeu du démineur
Sujet 29 .py
1 : Sélection enclos (dictionnaire)
2 : Trouver l'intrus (liste de triplets)
Sujet 30 .py
1 : Codage par différence
2 : Arbre binaire (arithmétique)
Sujet 31 .py
1 : Recherche motif
2 : Parcours en profondeur (Graphe)
Sujet 32 .py
1 : Occurrences avec un dictionnaire
2 : Fusion de listes triées
Sujet 33 .py
1 : Ajout dans un arbre binaire
2 : Problème du sac à dos (glouton)
Sujet 34 .py
1 : Tri par sélection
2 : Jeu du + ou -
Sujet 35 .py
1 : Maximum dans un dictionnaire
2 : Pile (calcul arithmétique)
Sujet 36 .py
1 : Compter les mots
2 : Insertion dans un arbre binaire
Sujet 37 .py
1 : Conversion binaire décimal
2 : Tri par insertion
Sujet 38 .py
1 : Calcul de moyenne
2 : Conversion binaire (suite de div.)
Sujet 39 .py
1 : Couples d'entiers consécutifs
2 : Propager valeur dans matrice.
Sujet 40 .py
1 : Recherche d'indices < = >
2 : Moyenne pondérée (dictionnaire)
Sujet 41 .py
1 : Opérateur xor
2 : Carré magique
Sujet 42 .py
1 : Nombre de répétitions dans liste
2 : Conversion binaire (suite de div.)
Sujet 43 .py
1 : Couples d'entiers consécutifs
2 : Propager valeur dans matrice.
Sujet 44 .py
1 : Calcul de moyenne
2 : Zoom sur une image
Sujet 45 .py
1 : Mots correspondants à un motif
2 : Recherche d'un cycle (dictionnaire)
Sujet 46 .py
1 : Nombre d'occurrence dans liste
2 : Rendu de monnaie (glouton)
Sujet 47 .py
1 : Taille d'un ABR (récursif)
2 : Tri par sélection
Sujet 48 .py
1 : Dernière occurrence dans liste
2 : Distance + courte entre 2 pts
Sujet 01 .7z
Codage RLE d'images [PIL*]
1 : Compréhension de l'algorithme
2 : Fonction inverse de décodage
3 : Tester et observer un problème
4 : Corriger un problème
Sujet 02 .7z
Analyse d'écarts de salaires
1 : Calculer une moyenne
2 : Extraction d'un dictionnaire
3 : Assertions et correction
4 : Tester et trouver un biais
Sujet 03 .7z
Cycle menstruel [ics]
1 : Est bissextile
2 : Fonction et assertions
3 : Rédaction de tests
4 : Validation d'un format et correction
Sujet 04 .7z
Croissance des plantes
1 : Moyenne (POO)
2 : Création d'un dictionnaire
3 : Détecter une source d'erreur
4 : Corriger une fonction
Sujet 05 .7z
Empreinte carbone [json]
1 : Sommer des valeurs d'un dictionnaire
2 : Somme des valeurs (récursif)
3 : Détecter et corriger une erreur
4 : Rédaction d'un jeu de tests
Sujet 06 .7z
Smoothies
1 : Rechercher dans une liste (POO)
2 : Lister tous les smoothies possibles
3 : Tester une fonction
4 : Détecter et corriger une erreur
5 : Application
Sujet 07 .7z
Coccinelles / Pucerons (POO)
1 : Utiliser le modèle
2 : Fonction pour simuler
3 : Documenter une méthode
4 : Compléter une méthode
Sujet 08 .7z
Valeurs monétaires
1 : Boucle pour sommer
2 : Convertir binaire en décimal
3 : Détecter et corriger une erreur
4 : Corriger la taille d'une liste
Sujet 09 .7z
Modélisation 3D (POO) [math, matplotlib*]
1 : Calcul de distance
2 : Rechercher sur liste de listes
3 : Calculs simples
4 : Application (instanciation)
5 : Correction d'une méthode (création d'une copie)
Sujet 10 .7z
Compteurs d'eau
1 : Filtrer les données et sommer
2 : Détecter une fuite
3 : Lissage des données
4 : Corriger un cas limite
Sujet 11 .7z
Habitat des renards [math]
1 : Calculer une distance (5 dimensions)
2 : Parcours
3 : Test de fonction
4 : Détecter et corriger une erreur
5 : Application
Sujet 12 .7z
Refuge pour renards (POO) [csv, math]
1 : Compléter le constructeur
2 : Créer une chaîne de caractère
3 : Détecter une erreur (type)
4 : Application et validation
Sujet 13 .7z
Données climatiques
1 : Extraction des données CSV
2 : Convertir Kelvin en Celsius sur liste
3 : Rechercher dans une liste
4 : Rédiger une assertion (précondition)
5 : Tester une fonction
6 : Correction de code HTML
Sujet 14 .7z
Évacuation d'une pièce (POO) [copy, random, tkinter]
1 : Sommer sur liste de listes
2 : Appliquer de la simulation
3 : Compléter une méthode
4 : Détecter et corriger une erreur
Sujet 15 .7z
Cabinet vétérinaire [sqlite3]
1 : Normaliser un numéro de téléphone (str)
2 : Créer une fonction de tests
3 : Extraction de données (SQL)
4 : Expliquer et corriger un problème
Sujet 16 .7z
Bandes de réchauffement [csv, matplotlib*]
1 : Rechercher dans une liste et tests
2 : Appliquer
3 : Détecter et corriger une erreur
4 : Compléter un code, extraire donnée
Sujet 17 .7z
Club de Handball (CSV)
1 : Somme par type et tests avec assertion
2 : Appliquer et valider
3 : Détecter et corriger une erreur
Sujet 18 .7z
Bouées océanographiques en Polynésie
1 : Calculer une moyenne
2 : Filtrer des données selon un seuil
3 : Rédaction des tests
4 : Détecter et corriger une erreur
Sujet 19 .7z
Réservoirs d'eau en Polynésie
1 : Rechercher dans une liste
2 : Sommer par clé
3 : Détecter une erreur, Régiger des assertions
4 : Adapter un code, Proposer une stratégie
Sujet 20 .7z
Empreinte carbone des usages numériques
1 : Calculer une somme pondérée
2 : Trier selon seuils
3 : Rédiger des tests
4 : Détecter et corriger une erreur
Sujet 21 .7z
Boîtes de Leitner (POO)
1 : Créer une méthode
2 : Filtrer des données
3 : Détecter et corriger une erreur de logique
Sujet 22 .7z
QR code
1 : Convertir binaire en décimal
2 : Parcourir liste et appliquer
3 : Détecter et corriger une erreur
4 : Détecter et corriger une erreur de logique
Sujet 23 .7z
Serveur Données Environnementales (POO) [matplotlib*]
1 : Créer des fonctions
2 : Créer une fonction, Valider la parité
3 : Constater et comprendre une erreur
4 : Proposer une correction