France · Programmes Officiels
Première Numérique et sciences informatiques.
L'enseignement de spécialité Numérique et sciences informatiques (NSI) en classe de première permet aux élèves de s'approprier les concepts fondamentaux de l'informatique. Il vise à développer la pensée algorithmique, la compréhension de la représentation des données et l'architecture des systèmes matériels et logiciels.

01Représentation des données : types et valeurs de base
Cette unité introduit la manière dont les informations fondamentales (nombres, textes) sont codées et manipulées par les machines. Les élèves découvrent les bases de la numération et les limites des représentations informatiques.
Comprendre comment les nombres entiers positifs sont représentés en machine. Apprendre à passer d'une base de numération à une autre.
Étudier le complément à deux pour les entiers négatifs et la représentation en virgule flottante. Identifier et comprendre les limites de ces représentations.
Découvrir les normes d'encodage des caractères, de l'ASCII à l'Unicode. Analyser les problèmes liés aux changements d'encodage dans les documents.

02Représentation des données : types construits
Exploration des structures de données permettant de regrouper des informations. Les élèves apprennent à utiliser les p-uplets, les tableaux et les dictionnaires pour modéliser des données complexes.
Manipuler des structures de données séquentielles pour stocker des collections d'éléments. Comprendre l'indexation, la modification en place et la création par compréhension.
Utiliser des structures de données associatives basées sur des paires clé-valeur. Explorer les avantages de l'accès par clé par rapport à l'accès par index.
Importer, traiter et exporter des données structurées au format CSV. Effectuer des opérations de recherche, de tri et de fusion sur des tables de données.

03Algorithmique
Conception et analyse d'algorithmes classiques pour résoudre des problèmes courants. L'accent est mis sur la correction, la terminaison et l'évaluation de la complexité.
Écrire des algorithmes pour parcourir un tableau à la recherche d'un élément, d'un extremum ou pour calculer une moyenne.
Étudier et implémenter les algorithmes de tri par insertion et par sélection. Analyser leur complexité quadratique et prouver leur terminaison.
Mettre en œuvre l'algorithme de recherche dichotomique dans un tableau trié. Comparer son efficacité logarithmique avec la recherche séquentielle.
Résoudre des problèmes d'optimisation à l'aide d'algorithmes gloutons, en s'appuyant sur l'exemple classique du problème du rendu de monnaie.

04Langages et programmation
Développement des compétences en programmation structurée et en ingénierie logicielle de base. Les élèves apprennent à spécifier, tester et documenter leurs programmes.
Maîtriser les boucles, les conditionnelles et les fonctions. Rédiger la documentation et spécifier rigoureusement les préconditions et postconditions.
Concevoir des jeux de tests pour vérifier le bon fonctionnement des fonctions. Utiliser des assertions pour détecter et corriger les erreurs.
Découvrir l'histoire et la diversité des langages informatiques. Comprendre les différences fondamentales entre langages compilés et interprétés.

05Architectures matérielles et systèmes d'exploitation
Étude du fonctionnement interne des ordinateurs et des réseaux. Les élèves découvrent l'architecture de von Neumann, les systèmes d'exploitation et les protocoles de communication.
Identifier les composants principaux d'un ordinateur selon l'architecture de von Neumann. Comprendre le cycle d'exécution d'une instruction machine.
Explorer les fonctions d'un système d'exploitation et gérer les fichiers, répertoires et processus via l'interface en ligne de commande.
Comprendre la transmission de données en paquets sur un réseau. Étudier les protocoles TCP/IP et les principes de base du routage sur Internet.