Aller au contenu principal

#Slides — Introduction à l'informatique

Support de révision : chaque point peut servir de titre de diapositive. Le module complet couvre les pages histoire, représentation, matériel et logiciel et informatique et société.

#Ouverture

  • Qu'est-ce qu'un ordinateur ? Une machine qui exécute des instructions simples, très vite.
  • Le fil rouge du module : toute information devient des bits, et des couches logicielles organisent leur traitement.

#Représentation de l'information

  • Bit, octet : avec k bits, 2k2^k valeurs.
  • Binaire et hexadécimal : un chiffre hexa = 4 bits; conversion par divisions euclidiennes.
  • Longueur de la représentation binaire : log2n+1\lfloor \log_2 n \rfloor + 1 chiffres pour n1n \ge 1.
  • Mots binaires : 2p2^{p} de longueur pp, 2p+112^{p+1}-1 de longueur au plus pp.
  • Capacité des types Java : byte 256, short 65 536, int 2322^{32}, long 2642^{64} motifs.
  • Entiers de taille fixe : intervalle [0,2n1][0, 2^n-1] en non signé; arithmétique modulo 2n2^n; 255 + 1 = 0 sur 8 bits.
  • Flottants IEEE 754 : 0,1 n'est pas exact; 0,1 + 0,2 = 0,30000000000000004.
  • Pourquoi : 2642^{64} motifs ne peuvent pas distinguer un ensemble non dénombrable de réels — l'approximation est inévitable, pas un défaut d'implémentation.
  • Codage = application injective de A+A^{+} dans B+B^{+}; injectivité garantit le décodage de l'objet, pas la relecture de tout code.
  • Unicode et UTF-8 : point de code puis 1 à 4 octets; découper les octets casse le décodage.
  • Images et son : pixels RGBA, échantillonnage, compression avec ou sans perte.

#Matériel et logiciel

  • La boucle du processeur : charger, décoder, exécuter (von Neumann).
  • Sous le CPU : portes logiques et algèbre de Boole (\wedge, \vee, ¬\neg); 2(2k)2^{(2^{k})} fonctions booléennes à kk variables.
  • Le débordement d'entier est l'arithmétique modulo 2k2^k réalisée physiquement par l'additionneur.
  • Hiérarchie mémoire : registres, caches L1/L2/L3, RAM, SSD, réseau; chaque étage environ cent fois plus lent.
  • Localité spatiale et temporelle : pourquoi parcourir un tableau dans l'ordre est plus rapide.
  • Couches logicielles : firmware et pilotes, OS, bibliothèques, applications.
  • Les trois rôles de l'OS : abstraire, arbitrer, isoler.
  • Socle formel de chaque domaine : circuits → calcul booléen, réseaux → graphes, bases de données → logique, compilation → langages et automates, efficacité → complexité, classes de problèmes → calculabilité.

#Histoire : une abstraction par vague

  • 1800-1930 : machines programmables, cartes perforées (Babbage, Lovelace, Jacquard).
  • 1930-1950 : fondements théoriques (Turing, Church); premiers ordinateurs électroniques.
  • 1950-1970 : compilateurs (Fortran, COBOL) et systèmes multi-tâches.
  • 1970-1990 : UNIX, micro-ordinateur, ARPANET puis Internet.
  • 1990-2010 : web, mobile, cloud.
  • 2010 à aujourd'hui : architectures distribuées, GPU, apprentissage profond.

#Informatique et société

  • Quatre axes d'impact : données (RGPD, minimisation), automatisation (biais, recours humain), accessibilité (WCAG), environnement (sobriété).
  • Quatre questions de conception : quel problème et pour qui; quelles données et pourquoi; que se passe-t-il en cas d'échec; comment informe-t-on.

#Clôture

  • Un seul fil : des bits aux couches d'abstraction, chaque niveau cache le précédent.
  • La capacité d'un type est finie (2k2^{k} motifs) : c'est elle qui explique le débordement, et elle rend l'approximation des réels inévitable.
  • Pour s'entraîner : les annales corrigées reprennent les exercices de TD sur la cardinalité, la dénombrabilité et le codage.
  • Pour aller plus loin : ressources et glossaire.