Terminale NSI
Info :
Tous les documents de cours ou de TP présents sur
cette
page sont librement utilisables. Plusieurs de ces documents sont inspirés des partages des
enseignants de
NSI, et je le remercie tous ici (difficile de nommer chacun individuellement). Je me suis
également à
plusieurs reprises appuyé sur les cours de mon collègue et ami Olivier Lécluse qui nous a
tristement quitté
peu après la rentrée scolaire 2020. Son site perso est
toujours
actif et plein de ressources.
Programme de Term NSI
Programme officiel + commentaires.
Epreuves pratiques
P01 - Structure de données
- Structures linéaires : listes, piles, files.
- Dictionnaires.
- TP : Dictionnaires : efficacité de recherche. Attention, nécessite de télécharger le fichier annexe de contacts P1-3-carnet-2048.
- Programmation orientée objet POO.
- Arbres.
- TP
: Manipulation d'arbres binaires complets, implémentés par des
listes-Pythons spécifiques.
Remarque : Les arbres en POO sont vus dans la partie 5 : algorithmique.
- TP
: Manipulation d'arbres binaires complets, implémentés par des
listes-Pythons spécifiques.
- Graphes.
P02 - Base de données
Mes cours :
- Modèle relationnel.
- Contraintes d'une base de données.
- Système de gestion de bases de données SGBD.
- Langage SQL.
- TP : découverte du language SQL. Interrogation et modification d'une base de donnée. (fichier 1 BDD à télécharger pour la partie 1, fichier 2 BDD à télécharger pour la partie 2).
- Version Online du TP : partie 1
- Version Basthon du TP1 : Depuis le site Basthon SQL, charger le fichier Enoncé ainsi que le fichier Base de données.
- Version Online du TP : partie 2
- Mémento SQL.
Quelques liens pour faire du SQL online :
- Tutoriels de la W3Schools
- TP du CNAM
- Cours/exos COLIBRI Strasbourg
- TP SQL du lycée Colbert de Lorient
- Cours/TP SQL
Version "perso" des TP du lycée Colbert de Lorient (info prof):
- Démarrer une série de TP sur la gestion d'une agence de location.
- Démarrer une série de TP sur un championnat de foot.
- Énoncé/BDD à charger depuis des fichiers locaux.
P03 - Architectures matérielles, systèmes d’exploitation et réseaux
- System On Chip SOC.
- Gestion des processus. (TP à réaliser en local Processus et interblocage).
- Routage.
- Routage : compléments.
- Sécurisation des communications.
P04 - Langages et programmation
- Calculabilité, décidabilité.
- Récursivité.
- Modularité.
- Paradigmes (cours). Paradigmes (TD).
P05 - Algorithmique
- Algorithmes sur les arbres.
- Algorithmes sur les graphes.
- Diviser pour régner.
- Programmation dynamique.
- Recherche textuelle.
Sujets de l'épreuve expérimentale de Term NSI
Pour s'éxercer sur d'autres sujets créés par des collègues à travers toute la France : e-nsi : site d'exercices d'entrainement à l'épreuve pratique de Terminale. Excellent !!!
Liste des sujets sur Eduscol (actualisés chaque année).
Liste des sujets au format Jupyter notebook (dans Basthon) :
Sujets de la session 2022
- Sujet
n°01 :
1) Compter le nombre d’un caractère dans une chaine de caractères.
2) Algo de rendu de monnaie glouton. (Pb : l’énoncé écrit une liste vide en paramètre par défaut !). - Sujet
n°02 :
1) Calculer une moyenne pondérée à partir d’une liste de couples (note, coefficient).
2) Construire une liste contenant un triangle de Pascal par programmation dynamique. - Sujet
n°03 :
1) Parcours de tableau pour enregistrer des écarts de valeurs entre 2 positions successives du tableau.
2) Parcours en profondeur infixe d’un arbre. Récursivité. POO à lire et à utiliser (pas à écrire). Arbre de calcul. Pas très facile ! ERREUR D'ENONCE !!! - Sujet
n°04 :
1) Rechercher des couples d'entiers consécutifs dans un tableau d'entiers.
2) Écrire une fonction récursive “de propagation” de valeur dans un tableau (à la manière du jeu “Démineur”). - Sujet
n°05 :
1) Chercher le maximum, et le minimum dans un tableau. Présenter la réponse dans un dictionnaire.
2) Compléter une classe jeu de carte. Écrire des assertions. - Sujet
n°06 :
1) Chercher le maximum, et l’indice du maximum, dans un tableau.
2) Recherche d’un motif dans une chaine de caractères. (algo naif, ce n’est pas Boyer-Moore) - Sujet
n°07 : HORS PROGRAMME !
1) Convertir un nombre décimal en binaire, représenté sous forme de liste de bits.
2) Écrire une fonction de tri à bulles (sans aucune explication : hors programme !!!) - Sujet
n°08 :
1) Recherche la première occurrence d’un élément dans un tableau.
2) Insérer un élément à sa place dans un tableau trié. - Sujet
n°09
1) Écrire une fonction qui définit une suite récurrente, telle que le terme de rang n dépend de a parité du terme de rang n-1.
2) Manipulation de dictionnaire et de chaine de caractères. Énoncé un peu alambiqué, mais bien expliqué. - Sujet
n°10
1) Compter le nombre d’occurences d’un caractère dans une chaine et enregistrer les résulats dans un dictionnaire.
2) Ecrire une fonction de fusion de 2 tableaux triés en un seul tableau trié. - Sujet
n°11
1) Écrire une fonction de recherche dichotomique dans un tableau trié : la fonction renvoie l’indice de l’élément recherché.
2) Écrire une fonction de chiffrement de César. - Sujet
n°12 :
1) Calcul d'une moyenne. Remarque : mélange un print ou un return dans la même fonction (mauvaise pratique).
2) Tri de 0 et de 1 au sein d’un tableau. Algo (assez simple) expliqué dans l’énoncé. - Sujet
n°13 :
1) Écrire une fonction de rendu de monnaie selon un algorithme glouton.
2) Compléter les méthodes d'une classe Fille (en POO). Une classe Maillon annexe est fournie.
Remarque : c'est un sujet un peu plus difficile que d'autres. - Sujet
n°14 :
1) Parcours de chaine de caractères et comparaison avec des “jokers *”.
2) Analyse de dictionnaire pour trouver un cycle. (Énoncé un peu compliqué à comprendre !) - Sujet
n°15 :
1) Compter le nombre d’occurrences d’un élément dans une liste.
2) Écrire une fonction de conversion d’un nombre décimal en binaire (la méthode est rappelée). - Sujet
n°16 :
1) Chercher le maximum, et l’indice du maximum, dans un tableau.
2) Extraire les nombres positifs d’une pile, implémentée par une liste Python. - Sujet
n°17 :
1) Compter le nombre d’espaces dans une chaine de caractères.
2) Parcours et recherche dans ABR en POO. Passage d’une liste vide en paramètre par défaut. - Sujet
n°18 :
1) Cherche le minimum dans un tableau et trouve la correspondance indicielle dans un autre tableau associé.
2) Ecrire des fonctions pour tester si un nombre est un palindrome. - Sujet
n°19 :
1) Multiplication de deux entiers relatifs par additions ou soustractions.
2) Recherche dichotomique d'une valeur dans un tableau trié (fonction récursive). - Sujet
n°20 :
1) Créer un tableau de xor bit à bit à partir de 2 tableaux de bits.
2) Construire une fonction qui teste si un carré nXn est magique. Le carré est défini dans une classe POO. - Sujet
n°21 :
1) Multiplication de deux entiers relatifs par additions ou soustractions.
2) Recherche dichotomique d'une valeur dans un tableau trié (itératif). - Sujet
n°22 :
1) Inverser une chaîne de caractères ("bonjour" -> "ruojnob").
2) Chercher les nombres premiers inférieur à N avec le crible d'Eratosthène. - Sujet
n°23 :
1) Travail sur les dictionnaires.
2) Compléter une fonction qui évalue une expression arithmétique en notation postfixe (décrite par un tableau des termes et des opérateurs). La fonction utilise une classe Pile qui est fournie. - Sujet
n°24
1) Écrire une fonction qui renvoie le maximum d'un tableau d'entiers.
2) Vérifier un bon parenthésage à l'aide d'une pile. (attention : le sujet d'origine sur Eduscol comporte plusiseurs erreurs !!!). - Sujet
n°25
1) Manipulation de liste de dictionnaires : extraire les dictionnaires de la liste pour lesquels une clef satisfait une condition donnée.
2) Dichotomie originale : le découpage ne se fait pas au milieu (amusant, ça change un peu...). - Sujet
n°26
1) Écrire une fonction qui renvoie l’indice de la 1ère occurrence du minimum d’un tableau de nombres.
2) Compléter une fonction qui trie un tableau de 0 et 1 en mettant tous les 0 au début et tous les 1 à la fin. - Sujet
n°27
1) Parcours d’arbre implémenté par un dictionnaire pour déterminer la taille de l’arbre.
2) Compléter un algorithme de tri de tableau (non connu) mais décrit et expliqué dans l’énoncé. - Sujet
n°28
1) Écrire une fonction qui calcule la moyenne d’un tableau de nombres.
2) Compléter une fonction de conversion d’un nombre décimal en nmobre binaire (sous forme de chaine de caractères). - Sujet
n°29
1) Écrire une fonction de calcul de la suite de Fibonacci, sans récursivité, mais en programmation dynamique.
2) Parcours de listes et recherche de maxima. (plutôt simple). - Sujet
n°30
1) Programmer une fonction de fusion de deux tableaux triés (pour algo tri fusion).
2) Conversion de nombre en caractères Romain vers un nombre en base 10. Récursivité ! Utilise les dictionnaires. Utilise les slices. - Sujet
n°31
1) Écrire une fonction qui renvoie le nombre d’occurrences d’une valeur dans un tableau.
2) Rendu de monnaie suivant un algorithme glouton. - Sujet
n°32
1) Recherche de l'indice de dernière occurrence dans un tableau.
2) Compléter une classe AdresseIPv4 dont la spécification est donnée. - Sujet
n°33 :
1) Écrire la “conversion” d’un tableau de bits (0 ou 1) représentant un nombre binaire en sa valeur décimale.
2) Compléter une fonction de tri par insertion. - Sujet
n°34 :
1) Compter le nombre d’occurrences d’une lettre dans une chaine de caractères en s’appuyant sur des listes.
2) Construire le négatif d’une image, ou une valeur binarisée par rapport à un seuil. Une image est définie par une liste de listes définissant des pixels en niveaux de gris. - Sujet
n°35 :
1) Calcul d’une moyenne de tableau d’entiers. (Pb : il y a des tests d'égalité de flottants.)
2) Recherche dichotomique d'une valeur dans un tableau trié (itératif). (distinction des cas où la valeur n’est pas présente dans le tableau). - Sujet
n°36 :
1) Recherche dernière occurrence dans un tableau.
2) Recherche du point le plus proche d'un autre de référence. Utilise la distance entre 2 points (formule donnée). Écriture d'asserts. - Sujet
n°37
1) Vérifier qu’un tableau est bien trié dans l’ordre croissant.
2) Création et manipulation de dictionnaires. (Les fonctions proposées ne sont pas idéales à mon goût, mais bon, pourquoi pas… ). - Sujet
n°38
1) Écrire une fonction de tri par sélection. Le principe de l’algorithme est rappelé.
2) Compléter une fonction qui fait jouer au jeu du “plus ou moins” (il faut deviner un nb entre aléatoire entre 1 et 99). - Sujet
n°39
1) Ecrire une fonction qui calcule la moyenne de nombres dans un tableau.
2) Compléter des fonctions de manipulations de listes de listes. - Sujet
n°40
1) Rechercher une valeur dans un tableau et renvoyer le tableau des indices où cet élément apparait.
2) Calculer une moyenne pondérée à partir de données (élève, devoir, note, coefficient) qui sont fournies dans un dictionnaire.
Documentation et ressources
Voir l'accueil généraliste de NSI
Projets
- Projet Tic Tac Toe en ligne (Javascript) : Présentation du jeu et de son code possible en JavaScript et Python.
- Convertisseur décimal binaire : micro projet HTML/CSS/Javascript