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 fondements de l'informatique. Il prépare à la poursuite d'études dans l'enseignement supérieur en développant des compétences en programmation, algorithmique et architecture des systèmes.

01Représentation des données : types et valeurs de base
Étude de la manière dont les données fondamentales (nombres, textes) sont codées et représentées dans la mémoire d'un ordinateur.
Étude de la représentation binaire et hexadécimale des entiers naturels. Introduction à la représentation des entiers relatifs par le complément à deux.
Découverte de la représentation en virgule flottante. Compréhension des limites et des erreurs d'arrondi liées à cette représentation.
Exploration des différentes normes d'encodage des caractères, de l'ASCII à l'Unicode (UTF-8). Analyse des problèmes d'interopérabilité.

02Représentation des données : types construits
Découverte des structures de données permettant de regrouper et d'organiser des informations complexes.
Utilisation des p-uplets (tuples) et des tableaux pour regrouper des données de même type ou de types différents. Manipulation par itération.
Introduction aux dictionnaires (tableaux associatifs) pour stocker des données sous forme de paires clé-valeur. Application à des problèmes concrets.
Lecture, écriture et manipulation de données structurées au format CSV. Opérations de recherche, de tri et de filtrage sur des tables.

03Algorithmique
Conception, implémentation et analyse de la complexité des algorithmes classiques de recherche et de tri.
Écriture d'algorithmes de base pour la recherche d'une occurrence, d'un extremum ou le calcul d'une moyenne dans un tableau.
Étude et implémentation des algorithmes de tri par insertion et par sélection. Analyse de leur complexité temporelle.
Découverte de l'algorithme de recherche dichotomique dans un tableau trié. Comparaison de sa complexité avec la recherche séquentielle.
Résolution de problèmes d'optimisation à l'aide d'algorithmes gloutons, comme le problème du rendu de monnaie.

04Langages et programmation
Apprentissage des concepts fondamentaux de la programmation en Python, de la structuration du code aux tests.
Maîtrise des structures de contrôle fondamentales en Python : affectations, conditionnelles et boucles bornées ou non bornées.
Création de fonctions avec paramètres et valeurs de retour. Compréhension de la portée des variables (locales vs globales).
Rédaction de la documentation (docstrings) et utilisation d'assertions pour tester les fonctions. Méthodes de débogage.

05Architecture matérielle et systèmes d'exploitation
Compréhension du fonctionnement interne des ordinateurs, des réseaux de communication et des systèmes d'exploitation.
Étude des composants principaux d'un ordinateur (CPU, mémoire, bus). Compréhension de l'exécution des instructions machine.
Découverte des principes de l'encapsulation des données et du routage dans les réseaux. Étude des protocoles TCP/IP.
Rôle du système d'exploitation dans la gestion des ressources. Manipulation des fichiers et répertoires via l'interface en ligne de commande (Linux).