Présentation générale

Ce programme officiel couvre cinq thématiques principales en Numérique et Sciences Informatiques pour la classe de Première : représentation des données, algorithmique, langages et programmation, architectures matérielles et réseaux. L'enseignement se structure autour de projets pratiques et d'analyses théoriques.

Modalités d'évaluation

  • Contrôles écrits : 30%
  • Travaux pratiques (Python) : 40%
  • Projets informatiques : 20%
  • Oral et participation : 10%

Progression annuelle

  • Trimestre 1 : Thème 1 (Représentation des données) + Thème 4 (Architectures matérielles)
  • Trimestre 2 : Thème 2 (Algorithmique) + Thème 3 (Langages et programmation)
  • Trimestre 3 : Thème 5 (Réseaux) + révisions et projets

Compétences transversales

Algorithmique

  • Analyser la complexité d'un algorithme
  • Concevoir un algorithme pour résoudre un problème
  • Prouver la correction d'un algorithme
  • Choisir la structure de données adaptée

Numérique

  • Comprendre les enjeux du numérique
  • Évaluer la fiabilité des sources numériques
  • Respecter les règles éthiques et juridiques
  • Comprendre les enjeux de la cybersécurité

Programmation

  • Écrire des programmes en Python
  • Déboguer un programme
  • Tester un programme
  • Documenter un programme
  • Utiliser un environnement de développement

Thèmes du programme

Thème 1 : Représentation des données

Comprendre comment les données sont représentées en machine : nombres, textes, images, sons, et structures de données.

1.1 Représentation des entiers et des réels

10h

Maîtriser les différentes représentations numériques en machine.

Notions clés
  • Binaire : base 2, chiffres 0 et 1
  • Conversion décimal ↔ binaire ↔ hexadécimal
  • Complément à deux : représentation des entiers négatifs
  • Virgule flottante (IEEE 754) : signe + exposant + mantisse
  • Dépassement de capacité : résultat hors de la plage représentable
Compétences visées
  • Convertir un entier entre bases 2, 10 et 16
  • Calculer le complément à deux d'un entier
  • Expliquer la représentation en virgule flottante
  • Identifier un dépassement de capacité
  • Programmer des conversions de base en Python
Vocabulaire
binaire bit octet hexadécimal complément à deux entier signé entier non signé virgule flottante norme IEEE 754 dépassement de capacité conversion de base

1.2 Représentation du texte et des images

10h

Comprendre les encodages des données textuelles et graphiques.

Notions clés
  • ASCII : 128 caractères codés sur 7 bits
  • Unicode : standard universel pour tous les caractères
  • UTF-8 : encodage variable (1 à 4 octets par caractère)
  • Image matricielle : grille de pixels, chaque pixel = couleur RVB
  • Compression : réduction de la taille d'un fichier
Compétences visées
  • Encoder et décoder un texte en ASCII/UTF-8
  • Calculer la taille d'une image non compressée
  • Expliquer la différence entre image matricielle et vectorielle
  • Analyser les effets de la compression
  • Manipuler des images en Python (PIL/Pillow)
Vocabulaire
ASCII Unicode UTF-8 encodage pixel résolution image matricielle image vectorielle RVB compression JPEG PNG

1.3 Structures de données

10h

Maîtriser les structures de données fondamentales et leur complexité.

Notions clés
  • Liste Python : séquence ordonnée, modifiable
  • Dictionnaire : association clé-valeur
  • Pile (LIFO) : dernier entré, premier sorti
  • File (FIFO) : premier entré, premier sorti
  • Complexité : O(1), O(n), O(n²) pour les opérations
Compétences visées
  • Utiliser les listes, tuples et dictionnaires Python
  • Implémenter une pile et une file
  • Choisir la structure de données adaptée
  • Analyser la complexité des opérations
  • Manipuler des données structurées en Python
Vocabulaire
liste tuple dictionnaire ensemble tableau pile file arbre graphe complexité accès insertion suppression

Thème 2 : Algorithmique

Concevoir, analyser et implémenter des algorithmes classiques : tri, recherche, récursivité, et algorithmes gloutons.

2.1 Algorithmes de tri

10h

Implémenter et analyser les principaux algorithmes de tri.

Notions clés
  • Tri par sélection : O(n²) comparaisons
  • Tri par insertion : O(n²) dans le pire cas, O(n) si déjà trié
  • Tri fusion : O(n log n), diviser pour régner
  • Invariant de boucle : propriété vraie à chaque itération
  • Preuve de correction : terminaison + correction partielle
Compétences visées
  • Implémenter le tri par sélection et par insertion
  • Implémenter le tri fusion
  • Analyser la complexité d'un algorithme de tri
  • Prouver la correction d'un algorithme de tri
  • Comparer les performances des algorithmes de tri
Vocabulaire
tri par sélection tri par insertion tri fusion tri rapide complexité temporelle complexité spatiale algorithme stable comparaison invariant de boucle preuve de correction

2.2 Algorithmes de recherche

10h

Maîtriser les techniques de recherche dans les structures de données.

Notions clés
  • Recherche séquentielle : O(n) dans le pire cas
  • Recherche dichotomique : O(log n), nécessite un tableau trié
  • Table de hachage : accès en O(1) en moyenne
  • Arbre binaire de recherche : recherche en O(log n) si équilibré
  • Parcours d'arbre : préfixe, infixe, postfixe
Compétences visées
  • Implémenter la recherche séquentielle et dichotomique
  • Analyser la complexité des algorithmes de recherche
  • Utiliser un dictionnaire Python comme table de hachage
  • Implémenter un arbre binaire de recherche
  • Réaliser les parcours d'un arbre
Vocabulaire
recherche séquentielle recherche dichotomique tableau trié complexité logarithmique table de hachage fonction de hachage collision arbre binaire de recherche parcours d'arbre

2.3 Récursivité et algorithmes gloutons

10h

Comprendre et implémenter des algorithmes récursifs et gloutons.

Notions clés