Ce qu’on apprend vraiment en Première

La spécialité Numérique et sciences informatiques fait dialoguer quatre idées : les données, les algorithmes, les langages et les machines. Programmer permet d’expérimenter certaines de ces idées. D’autres se comprennent avec des schémas, des tableaux, des simulations ou une démonstration sur papier.

Ce que j’aime transmettre, c’est ce changement de regard : un écran affiche quelque chose, mais on commence à pouvoir expliquer comment et pourquoi. Les cours particuliers servent autant à construire ce regard qu’à débloquer un exercice.

Le bon objectif en Première : ne pas seulement reconnaître une correction, mais savoir expliquer une démarche et la réutiliser quand l’énoncé change. Les élèves de Première de la rentrée 2026 préparent normalement le bac 2028 ; les Terminales préparent le bac 2027.

Le programme complet de NSI Première

Les huit rubriques ci-dessous reprennent toutes les lignes de contenus du programme annexé au BO spécial du 22 janvier 2019 (nouvel onglet), ainsi que les principaux attendus et limites utiles pour travailler. Les explications sont reformulées ; le texte officiel reste la référence. Les rubriques se croisent et ne fixent pas un ordre de cours obligatoire.

Chapitre 1 · Programme officiel

Histoire : les idées avant les machines

L’informatique n’est pas née avec les applications mobiles. Situer une idée dans son histoire aide à comprendre le problème auquel elle répond.

Repères historiques et protagonistes
Relier les grandes étapes des algorithmes, du calcul mécanique, des ordinateurs, des langages et des réseaux aux personnes qui y ont contribué. Ces repères accompagnent les autres chapitres au fil de l’année.

Retrouver ce chapitre dans le programme officiel (PDF, page 3) (nouvel onglet)

Chapitre 2 · Programme officiel

Données : comment tout devient des bits

Un ordinateur stocke aussi bien une couleur qu’un message ou un nombre. Ce qui change, c’est la convention choisie pour interpréter les bits.

Bases 2, 10 et 16
Convertir un entier positif entre les écritures binaire, décimale et hexadécimale. Comprendre la valeur de chaque position : 1011 en base 2 représente 8 + 2 + 1, soit 11.
Entiers relatifs et complément à deux
Déterminer la taille nécessaire à un entier, à une somme ou à un produit ; interpréter les nombres signés sur un nombre fixé de bits. Sur 8 bits, 11111111 représente 255 sans signe, mais -1 en complément à deux. Le contexte est indispensable.
Nombres flottants
Comprendre pourquoi certains réels ne sont représentés qu’approximativement, et pourquoi comparer directement deux résultats flottants peut tromper. La connaissance détaillée de la norme IEEE 754 n’est pas exigée.
Booléens et logique
Construire des tables de vérité, combiner AND, OR et NOT, rencontrer le OU exclusif (XOR), raisonner sur une expression et sur son évaluation séquentielle. Les circuits et l’addition binaire donnent du sens à ces opérations.
Texte et encodages
Comprendre l’intérêt et les différences d’ASCII, d’ISO-8859-1 et d’Unicode ; convertir un fichier texte entre encodages. Un caractère, son numéro et les octets qui le représentent ne sont pas la même chose.

Retrouver ce chapitre dans le programme officiel (PDF, page 4) (nouvel onglet)

Chapitre 3 · Programme officiel

Types construits : organiser plutôt qu’accumuler

Une donnée isolée dit peu de choses. En regroupant des informations, on commence à représenter un élève, une position sur un plateau ou un relevé météo.

P-uplets et enregistrements nommés
Regrouper plusieurs valeurs et écrire une fonction qui renvoie un p-uplet. Un couple de coordonnées a un sens différent de deux nombres sans lien. En Python, les enregistrements nommés peuvent être représentés par des dictionnaires.
Tableaux, indices et compréhensions
Lire et modifier un élément par son indice, parcourir un tableau, construire un tableau par compréhension et utiliser des tableaux de tableaux pour une matrice. Les indices commencent à 0 : le dernier indice est donc la longueur moins un.
Dictionnaires
Associer des clés à des valeurs, ajouter une entrée et parcourir clés, valeurs ou couples avec keys(), values() et items(). On choisit une clé qui donne accès à l’information recherchée.

Retrouver ce chapitre dans le programme officiel (PDF, page 4) (nouvel onglet)

Chapitre 4 · Programme officiel

Tables : faire parler un jeu de données

Une liste de mesures brutes peut devenir une réponse à une question : quelles villes ont dépassé une température donnée, et combien de fois ?

Importation et indexation
Lire un fichier tabulé ou CSV et identifier lignes, colonnes, descripteurs et domaines de valeurs. Distinguer les données réelles de la façon dont elles sont rangées.
Recherche et cohérence
Sélectionner les lignes qui respectent plusieurs critères logiques, rechercher des doublons et repérer des valeurs incohérentes. Une analyse fiable commence par des données compréhensibles.
Tri selon une colonne
Ordonner les lignes selon un descripteur. En triant des records complets, on conserve les associations entre leurs informations. Une fonction de tri intégrée peut être utilisée pour ce travail sur les tables.
Fusion de tables
Rapprocher deux tables grâce à une information commune pour produire une nouvelle table. Cette activité prépare les bases de données de Terminale ; le SGBD et SQL ne sont pas le cadre de ce chapitre de Première.

Retrouver ce chapitre dans le programme officiel (PDF, page 5) (nouvel onglet)

Chapitre 5 · Programme officiel

Web : ce qui se passe quand on clique

Un bouton de réservation, comme celui de ce site, relie une interface, des événements et des échanges entre machines. Comprendre ce trajet change la façon de regarder le Web.

Composants graphiques et événements
Reconnaître les éléments d’une interface, les événements qu’ils peuvent recevoir et les fonctions déclenchées. Distinguer la description d’une page en HTML de ses comportements programmés ; CSS concerne sa présentation.
Interaction dans une page
Lire et modifier le traitement d’un clic, par exemple en JavaScript. L’objectif est de comprendre le mécanisme, sans devenir expert de tout un langage Web.
Dialogue client-serveur et HTTP
Identifier ce que le navigateur exécute, ce que le serveur calcule, l’ordre des échanges et les informations conservées puis retransmises. Reconnaître le rôle du chiffrement lors d’un échange HTTPS.
Formulaires, GET et POST
Analyser un formulaire et comprendre comment ses paramètres sont envoyés. GET et POST organisent différemment cet envoi ; POST, à lui seul, ne chiffre pas les données.

Retrouver ce chapitre dans le programme officiel (PDF, page 6) (nouvel onglet)

Chapitre 6 · Programme officiel

Machines, réseaux et systèmes : derrière l’écran

Un programme n’agit pas dans le vide : un processeur l’exécute, un système lui donne des ressources et un réseau permet ses échanges.

Architecture de von Neumann
Distinguer processeur, mémoire et entrées-sorties, puis suivre une courte séquence d’instructions de type langage machine. Situer architectures mono et multiprocesseur ; relier des circuits combinatoires aux fonctions booléennes.
Transmission en réseau
Comprendre paquets, encapsulation, protocoles et organisation d’un réseau ; relier ces idées à TCP/IP et au rôle des équipements du réseau local. Une simulation permet de suivre le parcours des données.
Perte de paquets et bit alterné
Dérouler un protocole simple de récupération de perte : message, accusé de réception, retransmission et identification des doublons. On peut le jouer avec des cartes, sans écrire une ligne de code.
Systèmes d’exploitation
Identifier les services rendus par le système, utiliser des commandes de base et gérer les droits sur les fichiers. Comprendre la distinction entre logiciels libres et propriétaires en manipulant un système libre.
Périphériques et interfaces
Distinguer capteurs et actionneurs, entrées et sorties, et réaliser une interface répondant à un besoin. Un capteur mesure une température ; un actionneur peut ouvrir une vanne.

Retrouver ce chapitre dans le programme officiel (PDF, page 7) (nouvel onglet)

Chapitre 7 · Programme officiel

Programmation : rendre une idée exécutable et vérifiable

Python est ici un outil d’expression. Ce qui compte, c’est de savoir précisément ce qu’un programme doit faire et comment vérifier son comportement.

Constructions élémentaires
Maîtriser séquences, affectations, conditions, boucles bornées et non bornées, appels de fonctions. Savoir suivre l’état des variables et distinguer affichage et valeur renvoyée.
Diversité des langages
Reconnaître des mécanismes communs dans plusieurs langages, malgré des écritures différentes. Distinguer programmation, description et interrogation de données.
Spécification
Définir les paramètres d’une fonction, les préconditions à respecter et les propriétés attendues du résultat. Des assertions peuvent rendre certaines exigences explicites.
Mise au point et tests
Construire des jeux de tests pertinents, dont des cas limites. Des tests réussis apportent des indices de fiabilité ; ils ne prouvent pas à eux seuls la correction pour toutes les entrées possibles.
Bibliothèques et documentation
Lire une documentation pour utiliser une fonction existante, comprendre ses paramètres et réutiliser une solution au lieu de tout réécrire.

Retrouver ce chapitre dans le programme officiel (PDF, page 8) (nouvel onglet)

Chapitre 8 · Programme officiel

Algorithmique : la stratégie change tout

Deux solutions peuvent donner exactement la même réponse, mais demander des quantités de travail très différentes. Ce chapitre apprend à voir cette différence avant de chronométrer un programme.

Parcours séquentiel
Chercher une occurrence, un minimum ou un maximum et calculer une moyenne. Relier le nombre d’opérations au nombre d’éléments : un parcours complet a un coût linéaire.
Tris par insertion et par sélection
Expliquer, écrire et dérouler les deux méthodes. Justifier leur terminaison et utiliser un invariant pour comprendre leur correction ; leur coût dans le pire cas est quadratique.
K plus proches voisins
Attribuer une classe à une donnée à partir de la classe majoritaire de ses k voisins les plus proches. C’est une première rencontre concrète avec l’apprentissage automatique.
Recherche dichotomique
Chercher dans un tableau trié en réduisant la zone de recherche. Expliquer pourquoi l’ordre est nécessaire et pourquoi l’intervalle finit par disparaître ou conduire au résultat.
Algorithmes gloutons
Construire une solution par choix locaux, par exemple pour rendre la monnaie ou remplir un sac. Un choix séduisant à chaque étape ne garantit pas toujours la meilleure solution globale.
Correction, terminaison et coût
Distinguer trois questions : le résultat est-il correct, l’algorithme finit-il, et combien de ressources utilise-t-il ? Invariants et variants éclairent ces raisonnements sur des exemples simples.

Retrouver ce chapitre dans le programme officiel (PDF, page 9) (nouvel onglet)

Deux déclics : un programme et un raisonnement sans code

1. Rendre la monnaie : une solution correcte est-elle optimale ?

On dispose de pièces de valeurs 4, 3 et 1, en quantité suffisante. Pour rendre 6, une stratégie gloutonne prend à chaque étape la plus grande pièce possible.

def rendu_glouton(montant, pieces):
    rendu = []
    for piece in pieces:
        while montant >= piece:
            rendu.append(piece)
            montant = montant - piece
    return rendu

rendu_glouton(6, [4, 3, 1])

À chercher : quel est le résultat ? Peut-on utiliser moins de pièces ? Pourquoi la boucle termine-t-elle ?

Préconditions : montant entier positif ou nul ; pièces entières strictement positives, classées dans l’ordre décroissant, comprenant 1. Elles sont importantes, même lorsqu’un sujet les indique sans les rappeler à chaque question.

Comprendre la solution et sa limite

Le programme prend 4, puis 1, puis 1 : il renvoie [4, 1, 1]. La somme est bien 6. Pourtant, [3, 3] rend aussi 6 avec deux pièces seulement.

Le résultat est correct, mais pas optimal pour le nombre de pièces. Ce contre-exemple suffit à réfuter l’idée que cette stratégie est toujours optimale, pour tous les systèmes de pièces.

À chaque passage dans le while, le montant restant diminue d’un entier strictement positif sans devenir négatif. C’est ce qui assure la terminaison de cette boucle. Une pièce de valeur 0 violerait la précondition et détruirait ce raisonnement.

En Terminale, la programmation dynamique apportera une autre stratégie pour chercher un nombre minimal de pièces. Une question de Première ouvre déjà sur une idée beaucoup plus large.

2. Huit bits, deux interprétations

Le motif binaire 11111011 est enregistré sur 8 bits. Représente-t-il forcément un nombre positif ?

Voir les deux interprétations

Comme entier non signé, il vaut 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.

En complément à deux sur 8 bits, le bit de poids fort a le poids -128 : le même motif représente -5. On peut aussi calculer 251 - 256 = -5.

Les bits seuls ne portent pas leur mode d’emploi. Il faut connaître la convention de représentation. C’est la même idée lorsqu’on ouvre un fichier avec un mauvais encodage.

Les projets et la démarche scientifique font partie du programme

Le BO réserve au moins un quart du temps de Première à des projets, réalisés en groupes de deux à quatre élèves. L’important n’est pas d’accumuler des fonctionnalités : il faut partir d’un besoin, décomposer le travail, tester et présenter une réalisation compréhensible.

Un projet de relevés météo peut relier capteurs, tableaux, données CSV et visualisation. Un petit jeu peut faire travailler conditions, structures de données, interface et tests. Le projet devient intéressant lorsque l’élève sait justifier ses choix.

En cours particulier, je peux aider à clarifier un blocage ou une démarche. L’élève reste l’auteur de son travail : savoir expliquer ce qu’il a construit fait partie de l’apprentissage.

Transformer une difficulté en point de départ

Une mauvaise réponse ne dit pas encore ce qui a bloqué. En cours, je demande à l’élève de raconter sa démarche, puis je change un seul élément de l’exercice. Ce petit déplacement permet souvent de trouver exactement ce qui manque.

« Je comprends la correction, mais je ne sais pas refaire. »

Nous fermons la correction et reprenons un exemple plus court. Sur un parcours de tableau, par exemple, l’élève suit les indices et les valeurs à la main, puis explique le rôle de chaque variable. Ensuite, on change les données : le tableau est vide, la valeur cherchée est absente ou elle se trouve en dernière position. Ce sont ces variations qui transforment une solution mémorisée en raisonnement.

« Je mélange les mots du chapitre sur les réseaux. »

Nous dessinons le trajet d’un message : quelles machines interviennent, qu’est-ce qui circule, que se passe-t-il si un paquet disparaît ? L’élève replace les notions sur ce trajet, puis raconte l’échange avec ses propres mots. Un schéma bien expliqué donne un point d’appui aux définitions.

« Je connais la méthode, mais je perds des points. »

Nous repartons d’une copie : la réponse manque-t-elle d’une justification, d’une hypothèse ou d’un cas limite ? Pour une recherche dichotomique, annoncer « on coupe en deux » ne suffit pas : il faut expliquer pourquoi on peut éliminer une moitié et préciser que le tableau est trié. On réécrit une réponse courte et complète, puis on réutilise ce réflexe sur un autre exercice.

Le signe que l’on avance : l’élève peut expliquer son choix, repérer une hypothèse et adapter sa démarche quand un détail change. C’est cela que je cherche à construire séance après séance.

Comment commencer ?

01

Faisons connaissance

Un échange gratuit de 15 minutes pour parler de vos objectifs et choisir un premier point de travail.

02

Un premier cours pour avancer

Nous partons d’une difficulté concrète, à votre rythme. Le premier cours est satisfait ou remboursé.

Les séances se déroulent en visio, avec un ordinateur, un micro et une connexion internet. Nous convenons ensemble du rythme qui vous convient.

On fait le point ensemble ?

15 minutes pour parler de votre niveau, de vos objectifs et du prochain pas.

Réserver mon appel gratuit