Spaces:
Sleeping
Sleeping
Delete documents/programme_NSI_terminale.md
Browse files
documents/programme_NSI_terminale.md
DELETED
@@ -1,140 +0,0 @@
|
|
1 |
-
## NSI programme de la classe de terminale
|
2 |
-
|
3 |
-
### Rubrique transversale de l’histoire de l’informatique
|
4 |
-
|
5 |
-
- **Événements clés de l’histoire de l’informatique.**
|
6 |
-
> Ces repères viennent compléter ceux qui ont été introduits en première. [commentaire]
|
7 |
-
>
|
8 |
-
> Ces repères historiques sont construits au fur et à mesure de la présentation des concepts et techniques. [commentaire]
|
9 |
-
- Situer dans le temps les principaux événements de l’histoire de l’informatique et leurs protagonistes.
|
10 |
-
- Identifier l’évolution des rôles relatifs des logiciels et des matériels.
|
11 |
-
|
12 |
-
### Structures de données
|
13 |
-
|
14 |
-
- **Structures de données, interface et implémentation.**
|
15 |
-
> 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]
|
16 |
-
- Spécifier une structure de données par son interface.
|
17 |
-
- Distinguer interface et implémentation.
|
18 |
-
- Écrire plusieurs implémentations d’une même structure de données.
|
19 |
-
- **Vocabulaire de la programmation objet : classes, attributs, méthodes, objets.**
|
20 |
-
> On n’aborde pas ici tous les aspects de la programmation objet comme le polymorphisme et l’héritage. [commentaire]
|
21 |
-
- Écrire la définition d’une classe.
|
22 |
-
- Accéder aux attributs et méthodes d’une classe.
|
23 |
-
- **Listes, piles, files : structures linéaires.**
|
24 |
-
> On distingue les modes FIFO (*first in first out*) et LIFO (*last in first out*) des piles et des files. [commentaire]
|
25 |
-
- Distinguer des structures par le jeu des méthodes qui les caractérisent.
|
26 |
-
- Choisir une structure de données adaptée à la situation à modéliser.
|
27 |
-
- Distinguer la recherche d’une valeur dans une liste et dans un dictionnaire.
|
28 |
-
- **Dictionnaires, index et clé.**
|
29 |
-
- Distinguer des structures par le jeu des méthodes qui les caractérisent.
|
30 |
-
- Choisir une structure de données adaptée à la situation à modéliser.
|
31 |
-
- Distinguer la recherche d’une valeur dans une liste et dans un dictionnaire.
|
32 |
-
- **Arbres : structures hiérarchiques.**
|
33 |
-
> On fait le lien avec la rubrique « algorithmique ». [commentaire]
|
34 |
-
- Identifier des situations nécessitant une structure de données arborescente.
|
35 |
-
- **Arbres binaires : nœuds, racines, feuilles, sous-arbres gauches, sous-arbres droits.**
|
36 |
-
- Évaluer quelques mesures des arbres binaires (taille, encadrement de la hauteur, etc.).
|
37 |
-
- **Graphes : structures relationnelles.**
|
38 |
-
- Modéliser des situations sous forme de graphes.
|
39 |
-
> On s’appuie sur des exemples comme le réseau routier, le réseau électrique, Internet, les réseaux sociaux. [commentaire]
|
40 |
-
- **Sommets, arcs, arêtes, graphes orientés ou non orientés.**
|
41 |
-
- É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.
|
42 |
-
> 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]
|
43 |
-
|
44 |
-
### Bases de données
|
45 |
-
|
46 |
-
- **Modèle relationnel : relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel.**
|
47 |
-
- Identifier les concepts définissant le modèle relationnel.
|
48 |
-
> Ces concepts permettent d’exprimer les contraintes d’intégrité (domaine, relation et référence). [commentaire]
|
49 |
-
- **Base de données relationnelle.**
|
50 |
-
> On privilégie la manipulation de données nombreuses et réalistes. [commentaire]
|
51 |
-
- Savoir distinguer la structure d’une base de données de son contenu.
|
52 |
-
> La structure est un ensemble de schémas relationnels qui respecte les contraintes du modèle relationnel. [commentaire]
|
53 |
-
- Repérer des anomalies dans le schéma d’une base de données.
|
54 |
-
> Les anomalies peuvent être des redondances de données ou des anomalies d’insertion, de suppression, de mise à jour. [commentaire]
|
55 |
-
- **Système de gestion de bases de données relationnelles.**
|
56 |
-
- 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.
|
57 |
-
> Il s’agit de comprendre le rôle et les enjeux des différents services sans en détailler le fonctionnement. [commentaire]
|
58 |
-
- **Langage SQL : requêtes d’interrogation et de mise à jour d’une base de données.**
|
59 |
-
- Identifier les composants d’une requête.
|
60 |
-
- Construire des requêtes d’interrogation à l’aide des clauses du langage SQL : `SELECT`, `FROM`, `WHERE`, `JOIN`.
|
61 |
-
> On peut utiliser `DISTINCT`, `ORDER BY` ou les fonctions d’agrégation sans utiliser les clauses `GROUP BY` et `HAVING`. [commentaire]
|
62 |
-
- Construire des requêtes d’insertion et de mise à jour à l’aide de : `UPDATE`, `INSERT`, `DELETE`.
|
63 |
-
|
64 |
-
### Architectures matérielles, systèmes d’exploitation et réseaux
|
65 |
-
|
66 |
-
- **Composants intégrés d’un système sur puce.**
|
67 |
-
- Identifier les principaux composants sur un schéma de circuit et les avantages de leur intégration en termes de vitesse et de consommation.
|
68 |
-
> 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]
|
69 |
-
- **Gestion des processus et des ressources par un système d’exploitation.**
|
70 |
-
- Décrire la création d’un processus, l’ordonnancement de plusieurs processus par le système.
|
71 |
-
> À l’aide d’outils standard, il s’agit d’observer les processus actifs ou en attente sur une machine. [commentaire]
|
72 |
-
- Mettre en évidence le risque de l’interblocage (*deadlock*).
|
73 |
-
> Une présentation débranchée de l’interblocage peut être proposée. [commentaire]
|
74 |
-
- **Protocoles de routage.**
|
75 |
-
- Identifier, suivant le protocole de routage utilisé, la route empruntée par un paquet.
|
76 |
-
> 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]
|
77 |
-
>
|
78 |
-
> Le lien avec les algorithmes de recherche de chemin sur un graphe est mis en évidence. [commentaire]
|
79 |
-
- **Sécurisation des communications.**
|
80 |
-
- Décrire les principes de chiffrement symétrique (clef partagée) et asymétrique (avec clef privée/clef publique).
|
81 |
-
> Les protocoles symétriques et asymétriques peuvent être illustrés en mode débranché, éventuellement avec description d’un chiffrement particulier. [commentaire]
|
82 |
-
- Décrire l’échange d’une clef symétrique en utilisant un protocole asymétrique pour sécuriser une communication HTTPS.
|
83 |
-
> La négociation de la méthode chiffrement du protocole SSL (*Secure Sockets Layer*) n’est pas abordée. [commentaire]
|
84 |
-
|
85 |
-
### Langages et programmation
|
86 |
-
|
87 |
-
- **Notion de programme en tant que donnée.**
|
88 |
-
- Comprendre que tout programme est aussi une donnée.
|
89 |
-
> 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]
|
90 |
-
- **Calculabilité, décidabilité.**
|
91 |
-
- Comprendre que la calculabilité ne dépend pas du langage de programmation utilisé.
|
92 |
-
- Montrer, sans formalisme théorique, que le problème de l’arrêt est indécidable.
|
93 |
-
- **Récursivité.**
|
94 |
-
- Écrire un programme récursif.
|
95 |
-
- Analyser le fonctionnement d’un programme récursif.
|
96 |
-
> Des exemples relevant de domaines variés sont à privilégier. [commentaire]
|
97 |
-
- **Modularité.**
|
98 |
-
- Utiliser des API (Application Programming Interface) ou des bibliothèques [fusionné, ndr] [et] exploiter leur documentation.
|
99 |
-
- Créer des modules simples et les documenter.
|
100 |
-
- **Paradigmes de programmation.**
|
101 |
-
- Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet.
|
102 |
-
- Choisir le paradigme de programmation selon le champ d’application d’un programme.
|
103 |
-
> 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]
|
104 |
-
- **Mise au point des programmes.**
|
105 |
-
> 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]
|
106 |
-
- **Gestion des bugs.**
|
107 |
-
- 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.
|
108 |
-
> Les élèves apprennent progressivement à anticiper leurs erreurs. [commentaire]
|
109 |
-
|
110 |
-
### Algorithmique
|
111 |
-
|
112 |
-
- **Algorithmes sur les arbres binaires et sur les arbres binaires de recherche.**
|
113 |
-
> Une structure de données récursive adaptée est utilisée. [commentaire]
|
114 |
-
>
|
115 |
-
> L’exemple des arbres permet d’illustrer la programmation par classe. [commentaire]
|
116 |
-
- Calculer la taille et la hauteur d’un arbre.
|
117 |
-
- Parcourir un arbre de différentes façons (ordres infixe, préfixe ou suffixe ; ordre en largeur d’abord).
|
118 |
-
- Rechercher une clé dans un arbre de recherche, insérer une clé.
|
119 |
-
> La recherche dans un arbre de recherche équilibré est de coût logarithmique. [commentaire]
|
120 |
-
- **Algorithmes sur les graphes.**
|
121 |
-
> L’exemple des graphes permet d’illustrer l’utilisation des classes en programmation. [commentaire]
|
122 |
-
- Parcourir un graphe en profondeur d’abord, en largeur d’abord.
|
123 |
-
- Repérer la présence d’un cycle dans un graphe.
|
124 |
-
- Chercher un chemin dans un graphe.
|
125 |
-
> Le parcours d’un labyrinthe et le routage dans Internet sont des exemples d’algorithme sur les graphes. [commentaire]
|
126 |
-
- **Méthode « diviser pour régner ».**
|
127 |
-
- Écrire un algorithme utilisant la méthode « diviser pour régner ».
|
128 |
-
> La rotation d’une image bitmap d’un quart de tour avec un coût en mémoire constant est un bon exemple. [commentaire]
|
129 |
-
>
|
130 |
-
> 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]
|
131 |
-
- **Programmation dynamique.**
|
132 |
-
- Utiliser la programmation dynamique pour écrire un algorithme.
|
133 |
-
> Les exemples de l’alignement de séquences ou du rendu de monnaie peuvent être présentés. [commentaire]
|
134 |
-
>
|
135 |
-
> La discussion sur le coût en mémoire peut être développée. [commentaire]
|
136 |
-
- **Recherche textuelle.**
|
137 |
-
- Étudier l’algorithme de Boyer-Moore pour la recherche d’un motif dans un texte.
|
138 |
-
> L’intérêt du prétraitement du motif est mis en avant. [commentaire]
|
139 |
-
>
|
140 |
-
> L’étude du coût, difficile, ne peut être exigée. [commentaire]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|