chatbot_nsi_8b / documents /programme_NSI_terminale.md
dav74's picture
Upload 7 files
3929adf verified
|
raw
history blame
11 kB
## NSI programme de la classe de terminale
### Rubrique transversale de l’histoire de l’informatique
- **Événements clés de l’histoire de l’informatique.**
> Ces repères viennent compléter ceux qui ont été introduits en première. [commentaire]
>
> Ces repères historiques sont construits au fur et à mesure de la présentation des concepts et techniques. [commentaire]
- Situer dans le temps les principaux événements de l’histoire de l’informatique et leurs protagonistes.
- Identifier l’évolution des rôles relatifs des logiciels et des matériels.
### Structures de données
- **Structures de données, interface et implémentation.**
> L’abstraction des structures de données est introduite après plusieurs implémentations d’une structure simple comme la file (avec un tableau ou avec deux piles). [commentaire]
- Spécifier une structure de données par son interface.
- Distinguer interface et implémentation.
- Écrire plusieurs implémentations d’une même structure de données.
- **Vocabulaire de la programmation objet : classes, attributs, méthodes, objets.**
> On n’aborde pas ici tous les aspects de la programmation objet comme le polymorphisme et l’héritage. [commentaire]
- Écrire la définition d’une classe.
- Accéder aux attributs et méthodes d’une classe.
- **Listes, piles, files : structures linéaires.**
> On distingue les modes FIFO (*first in first out*) et LIFO (*last in first out*) des piles et des files. [commentaire]
- Distinguer des structures par le jeu des méthodes qui les caractérisent.
- Choisir une structure de données adaptée à la situation à modéliser.
- Distinguer la recherche d’une valeur dans une liste et dans un dictionnaire.
- **Dictionnaires, index et clé.**
- Distinguer des structures par le jeu des méthodes qui les caractérisent.
- Choisir une structure de données adaptée à la situation à modéliser.
- Distinguer la recherche d’une valeur dans une liste et dans un dictionnaire.
- **Arbres : structures hiérarchiques.**
> On fait le lien avec la rubrique « algorithmique ». [commentaire]
- Identifier des situations nécessitant une structure de données arborescente.
- **Arbres binaires : nœuds, racines, feuilles, sous-arbres gauches, sous-arbres droits.**
- Évaluer quelques mesures des arbres binaires (taille, encadrement de la hauteur, etc.).
- **Graphes : structures relationnelles.**
- Modéliser des situations sous forme de graphes.
> On s’appuie sur des exemples comme le réseau routier, le réseau électrique, Internet, les réseaux sociaux. [commentaire]
- **Sommets, arcs, arêtes, graphes orientés ou non orientés.**
- Écrire les implémentations correspondantes d’un graphe : matrice d’adjacence, liste de successeurs/de prédécesseurs. Passer d’une représentation à une autre.
> Le choix de la représentation dépend du traitement qu’on veut mettre en place : on fait le lien avec la rubrique « algorithmique ». [commentaire]
### Bases de données
- **Modèle relationnel : relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel.**
- Identifier les concepts définissant le modèle relationnel.
> Ces concepts permettent d’exprimer les contraintes d’intégrité (domaine, relation et référence). [commentaire]
- **Base de données relationnelle.**
> On privilégie la manipulation de données nombreuses et réalistes. [commentaire]
- Savoir distinguer la structure d’une base de données de son contenu.
> La structure est un ensemble de schémas relationnels qui respecte les contraintes du modèle relationnel. [commentaire]
- Repérer des anomalies dans le schéma d’une base de données.
> Les anomalies peuvent être des redondances de données ou des anomalies d’insertion, de suppression, de mise à jour. [commentaire]
- **Système de gestion de bases de données relationnelles.**
- Identifier les services rendus par un système de gestion de bases de données relationnelles : persistance des données, gestion des accès concurrents, efficacité de traitement des requêtes, sécurisation des accès.
> Il s’agit de comprendre le rôle et les enjeux des différents services sans en détailler le fonctionnement. [commentaire]
- **Langage SQL : requêtes d’interrogation et de mise à jour d’une base de données.**
- Identifier les composants d’une requête.
- Construire des requêtes d’interrogation à l’aide des clauses du langage SQL : `SELECT`, `FROM`, `WHERE`, `JOIN`.
> On peut utiliser `DISTINCT`, `ORDER BY` ou les fonctions d’agrégation sans utiliser les clauses `GROUP BY` et `HAVING`. [commentaire]
- Construire des requêtes d’insertion et de mise à jour à l’aide de : `UPDATE`, `INSERT`, `DELETE`.
### Architectures matérielles, systèmes d’exploitation et réseaux
- **Composants intégrés d’un système sur puce.**
- Identifier les principaux composants sur un schéma de circuit et les avantages de leur intégration en termes de vitesse et de consommation.
> Le circuit d’un téléphone peut être pris comme un exemple : microprocesseurs, mémoires locales, interfaces radio et filaires, gestion d’énergie, contrôleurs vidéo, accélérateur graphique, réseaux sur puce, etc. [commentaire]
- **Gestion des processus et des ressources par un système d’exploitation.**
- Décrire la création d’un processus, l’ordonnancement de plusieurs processus par le système.
> À l’aide d’outils standard, il s’agit d’observer les processus actifs ou en attente sur une machine. [commentaire]
- Mettre en évidence le risque de l’interblocage (*deadlock*).
> Une présentation débranchée de l’interblocage peut être proposée. [commentaire]
- **Protocoles de routage.**
- Identifier, suivant le protocole de routage utilisé, la route empruntée par un paquet.
> En mode débranché, les tables de routage étant données, on se réfère au nombre de sauts (protocole RIP) ou au coût des routes (protocole OSPF). [commentaire]
>
> Le lien avec les algorithmes de recherche de chemin sur un graphe est mis en évidence. [commentaire]
- **Sécurisation des communications.**
- Décrire les principes de chiffrement symétrique (clef partagée) et asymétrique (avec clef privée/clef publique).
> Les protocoles symétriques et asymétriques peuvent être illustrés en mode débranché, éventuellement avec description d’un chiffrement particulier. [commentaire]
- Décrire l’échange d’une clef symétrique en utilisant un protocole asymétrique pour sécuriser une communication HTTPS.
> La négociation de la méthode chiffrement du protocole SSL (*Secure Sockets Layer*) n’est pas abordée. [commentaire]
### Langages et programmation
- **Notion de programme en tant que donnée.**
- Comprendre que tout programme est aussi une donnée.
> L’utilisation d’un interpréteur ou d’un compilateur, le téléchargement de logiciel, le fonctionnement des systèmes d’exploitation permettent de comprendre un programme comme donnée d’un autre programme. [commentaire]
- **Calculabilité, décidabilité.**
- Comprendre que la calculabilité ne dépend pas du langage de programmation utilisé.
- Montrer, sans formalisme théorique, que le problème de l’arrêt est indécidable.
- **Récursivité.**
- Écrire un programme récursif.
- Analyser le fonctionnement d’un programme récursif.
> Des exemples relevant de domaines variés sont à privilégier. [commentaire]
- **Modularité.**
- Utiliser des API (Application Programming Interface) ou des bibliothèques [fusionné, ndr] [et] exploiter leur documentation.
- Créer des modules simples et les documenter.
- **Paradigmes de programmation.**
- Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet.
- Choisir le paradigme de programmation selon le champ d’application d’un programme.
> Avec un même langage de programmation, on peut utiliser des paradigmes différents. Dans un même programme, on peut utiliser des paradigmes différents. [commentaire]
- **Mise au point des programmes.**
> On prolonge le travail entrepris en classe de première sur l’utilisation de la spécification, des assertions, de la documentation des programmes et de la construction de jeux de tests. [commentaire]
- **Gestion des bugs.**
- Dans la pratique de la programmation, savoir répondre aux causes typiques de bugs : problèmes liés au typage, effets de bord non désirés, débordements dans les tableaux, instruction conditionnelle non exhaustive, choix des inégalités, comparaisons et calculs entre flottants, mauvais nommage des variables, etc.
> Les élèves apprennent progressivement à anticiper leurs erreurs. [commentaire]
### Algorithmique
- **Algorithmes sur les arbres binaires et sur les arbres binaires de recherche.**
> Une structure de données récursive adaptée est utilisée. [commentaire]
>
> L’exemple des arbres permet d’illustrer la programmation par classe. [commentaire]
- Calculer la taille et la hauteur d’un arbre.
- Parcourir un arbre de différentes façons (ordres infixe, préfixe ou suffixe ; ordre en largeur d’abord).
- Rechercher une clé dans un arbre de recherche, insérer une clé.
> La recherche dans un arbre de recherche équilibré est de coût logarithmique. [commentaire]
- **Algorithmes sur les graphes.**
> L’exemple des graphes permet d’illustrer l’utilisation des classes en programmation. [commentaire]
- Parcourir un graphe en profondeur d’abord, en largeur d’abord.
- Repérer la présence d’un cycle dans un graphe.
- Chercher un chemin dans un graphe.
> Le parcours d’un labyrinthe et le routage dans Internet sont des exemples d’algorithme sur les graphes. [commentaire]
- **Méthode « diviser pour régner ».**
- Écrire un algorithme utilisant la méthode « diviser pour régner ».
> La rotation d’une image bitmap d’un quart de tour avec un coût en mémoire constant est un bon exemple. [commentaire]
>
> L’exemple du tri fusion permet également d’exploiter la récursivité et d’exhiber un algorithme de coût en $n \log n$ dans les pires des cas. [commentaire]
- **Programmation dynamique.**
- Utiliser la programmation dynamique pour écrire un algorithme.
> Les exemples de l’alignement de séquences ou du rendu de monnaie peuvent être présentés. [commentaire]
>
> La discussion sur le coût en mémoire peut être développée. [commentaire]
- **Recherche textuelle.**
- Étudier l’algorithme de Boyer-Moore pour la recherche d’un motif dans un texte.
> L’intérêt du prétraitement du motif est mis en avant. [commentaire]
>
> L’étude du coût, difficile, ne peut être exigée. [commentaire]