Aller au contenu principal

Introduction à l'informatique · L1 · Section 5/7

Glossaire

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Glossaire des termes utiles

Ce glossaire regroupe des définitions concises pour les termes fréquents du cours. Objectif : donner un rappel rapide (quoi et pourquoi) au moment où vous en avez besoin. Les entrées renvoient, quand c'est utile, vers la page qui développe la notion : histoire, représentation, matériel et logiciel, informatique et société, et les annales corrigées.

#Représentation et encodage

  • Bit: unité d'information valant 0 ou 1; avec k bits on distingue 2k2^k valeurs.
  • Octet (byte): groupe de 8 bits; 256 valeurs possibles.
  • Hexadécimal: base 16 (chiffres 0-9 puis A-F); un chiffre encode 4 bits, un octet s'écrit sur deux chiffres.
  • Complément à deux: encodage des entiers signés sur n bits; intervalle [-2^{n-1}, 2^{n-1}-1].
  • Débordement (overflow): résultat hors de l'intervalle représentable; l'arithmétique continue modulo 2n2^n.
  • Nombre flottant (IEEE 754): approximation des réels avec signe, exposant et mantisse; 0,1 n'y est pas exact.
  • Unicode: répertoire qui attribue un numéro (point de code) à chaque caractère écrit.
  • UTF-8: encodage Unicode à longueur variable (1 à 4 octets par caractère); compatible ASCII.
  • Endianness: ordre des octets d'un mot multi-octets (petit-boutiste ou gros-boutiste); critique en E/S binaire.
  • Compression sans perte: réduction réversible (PNG, ZIP, gzip).
  • Compression avec perte: réduction irréversible qui accepte une dégradation (JPEG, MP3).

#Architecture et systèmes

  • CPU: processeur; exécute le cycle charger, décoder, exécuter.
  • RAM: mémoire vive, volatile,accessible en environ 100 ns.
  • Cache (L1/L2/L3): petite mémoire rapide entre CPU et RAM; exploite la localité spatiale et temporelle.
  • Latence: temps d'attente pour une opération; à distinguer du débit (throughput).
  • Débit (throughput): quantité traitée par unité de temps; souvent en tension avec la latence.
  • Pilote (driver): logiciel qui traduit un périphérique en interface commune pour l'OS.
  • Firmware: logiciel embarqué dans le matériel lui-même.
  • Système d'exploitation: couche qui abstrait le matériel, arbitre les ressources et isole les processus.
  • Appel système (syscall): point d'entrée contrôlé vers l'OS (open, read, send).
  • Processus: programme en exécution avec espace mémoire isolé.
  • Thread: flux d'exécution léger partageant la mémoire du processus.
  • Ordonnancement: politique de répartition du CPU entre tâches.
  • Mémoire virtuelle: espace d'adressage par processus, traduit via MMU/TLB.
  • Page fault: défaut lors d'un accès à une page non présente ou non mappée.
  • Copy-on-write: différer les copies jusqu'à la première écriture effective.
  • Système de fichiers: organisation durable du stockage (inodes, répertoires, journaling).
  • IPC: mécanismes d'échange et de synchronisation entre processus (pipes, shm, mutex).
  • Deadlock: interblocage circulaire de verrous ou de ressources.
  • Virtualisation: exécution d'OS invités (hyperviseur); conteneurs: isolation au niveau du noyau.

#Réseaux et web

  • IP: adressage logique pour acheminer des paquets entre réseaux (IPv4/IPv6).
  • TCP: transport fiable orienté connexion (ordre, retransmission, contrôle de congestion).
  • UDP: datagrammes sans garantie; faible latence, pas d'ordre intrinsèque.
  • DNS: annuaire distribué nom de domaine vers adresse IP; résolveurs, caches et TTL.
  • HTTP: protocole applicatif du web (méthodes, statuts, en-têtes, corps).
  • TLS: chiffrement et authenticité des communications réseau (HTTPS).
  • CDN: réseau de diffusion qui rapproche le contenu des utilisateurs.
  • NAT: traduction d'adresses et de ports pour partager une IP publique.
  • CORS: politique navigateur pour les requêtes cross-origin côté JavaScript.
  • QUIC: transport chiffré sur UDP (HTTP/3), faible latence, migration de connexion.

#Algorithmique et structures

  • Algorithme: procédure finie pour résoudre un problème; précise le quoi et l'ordre des étapes.
  • Complexité: coût asymptotique en temps et mémoire en fonction de la taille n de l'entrée.
  • Big-O: borne supérieure asymptotique (O(n log n), O(n²)); on garde le terme dominant.
  • Pile (stack): LIFO; appels de fonctions, récursion, backtracking.
  • File (queue): FIFO; parcours en largeur, planification.
  • Tableau: stockage contigu; accès index O(1), insertion au milieu O(n).
  • Liste chaînée: insertion locale O(1); accès index O(n), faible localité cache.
  • Tas (heap): file de priorité; insertion et extraction du minimum en O(log n).
  • Arbre binaire de recherche: O(log n) par opération si équilibré.
  • Table de hachage (dict): accès moyen O(1) amorti; dépend du hachage et du facteur de charge.
  • Diviser pour régner: découper, résoudre les sous-problèmes, combiner (tri fusion, dichotomie).
  • Coût amorti: coût moyen par opération lorsqu'une opération ponctuellement chère est rare (ajout en fin de liste dynamique : O(1) amorti).
  • Croissance factorielle: n!n!, qui croît plus vite que toute exponentielle; énumérer les permutations d'un ensemble de nn éléments coûte n!n! opérations.
  • Programmation dynamique: réutilisation de sous-solutions (mémoïsation, tabulation).
  • Glouton (greedy): choix local avec preuve d'optimalité (échange, matroïdes).
  • A*: recherche informée avec heuristique admissible et consistante.

#Outils formels (ensembles, dénombrement, mots)

  • Ensemble: collection d'objets distincts, appelés éléments; on note \in l'appartenance.
  • Univers: dans un contexte donné, l'ensemble de tous les éléments existants.
  • Ensemble vide (\emptyset): l'unique ensemble à 0 élément.
  • Opérations ensemblistes: union ABA \cup B, intersection ABA \cap B, différence ABA \setminus B, complémentation A\overline{A}, différence symétrique AΔB=(AB)(BA)A \Delta B = (A \setminus B) \cup (B \setminus A), produit cartésien A×BA \times B.
  • Cardinalité (E|E|): nombre d'éléments d'un ensemble; un entier s'il est fini, 0\aleph_0 s'il est infini dénombrable.
  • Dénombrable: ensemble en bijection avec N\mathbb{N} ou avec une partie de N\mathbb{N}. Les ensembles finis et infinis dénombrables sont aussi dits discrets.
  • Non dénombrable: ensemble trop grand pour être mis en bijection avec N\mathbb{N}; R\mathbb{R} et P(N)\mathcal{P}(\mathbb{N}) le sont.
  • Bijection: application injective et surjective; deux ensembles en bijection ont même cardinal.
  • Fonction caractéristique: application qui vaut 1 sur les éléments d'une partie et 0 ailleurs; elle identifie une partie à un mot binaire.
  • Ensemble des parties (P(E)\mathcal{P}(E)): l'ensemble des sous-ensembles de EE; P(E)=2E|\mathcal{P}(E)| = 2^{|E|} si EE est fini, et P(E)\mathcal{P}(E) n'est pas dénombrable si EE est infini dénombrable.
  • Principe additif: EF=E+FEF|E \cup F| = |E| + |F| - |E \cap F|; si les (Ei)(E_i) forment une partition, E=iEi|E| = \sum_i |E_i|.
  • Principe multiplicatif: E1××En=iEi|E_1 \times \dots \times E_n| = \prod_i |E_i|.
  • Principe d'égalité: s'il existe une bijection entre EE et FF alors E=F|E| = |F|.
  • Principe des tiroirs (pigeonhole): si E>F|E| \gt |F|, aucune injection de EE dans FF n'existe; autrement dit, nn objets dans m<nm \lt n tiroirs laissent un tiroir à deux objets au moins.
  • Formule du crible: iEi=k(1)k1i1<<ikEi1Eik|\bigcup_i E_i| = \sum_k (-1)^{k-1} \sum_{i_1 \lt \dots \lt i_k} |E_{i_1} \cap \dots \cap E_{i_k}|.
  • Diagonale de Cantor: construction d'un objet absent de toute liste dénombrable; elle prouve que ]0,1[]0,1[ et R\mathbb{R} ne sont pas dénombrables.
  • Mot: suite finie de lettres sur un alphabet fini AA; l'ensemble des mots se note AA^{*}, le mot vide ε\varepsilon.
  • Alphabet: ensemble dénombrable de symboles; en pratique fini ({0,1}\{0,1\}, Unicode).
  • Langage (formel): ensemble de mots, c'est-à-dire une partie de AA^{*}.
  • Longueur d'un mot (w|w|): son nombre de lettres; ε=0|\varepsilon| = 0.
  • Préfixe, suffixe, facteur, sous-mot: début d'un mot (w=uvw = uv), fin, partie contiguë (v=xuyv = xuy), et mot obtenu en effaçant des lettres.
  • Miroir d'un mot (uRu^R): mot obtenu en renversant l'ordre des lettres; un palindrome est égal à son miroir.
  • Occurrence d'une lettre: nombre de fois où aa apparaît dans ww, noté wa|w|_a.
  • Codage: application injective de A+A^{+} dans B+B^{+}; l'injectivité garantit un décodage unique de l'objet.
  • Concatenation (L.ML.M) et fermeture de Kleene (L=i0LiL^{*} = \bigcup_{i \ge 0} L^i): opérations de base sur les langages.
  • Permutation: bijection d'un ensemble sur lui-même; il y en a n!n! sur nn éléments.
  • Arrangement: suite ordonnée sans répétition de pp éléments parmi nn, au nombre de n!/(np)!n!/(n-p)!.
  • Arrangement avec répétition: application de {1,,p}\{1,\dots,p\} dans EE, au nombre de npn^{p}.
  • Combinaison: partie à pp éléments d'un ensemble à nn éléments, au nombre de (np)=n!/(p!(np)!)\binom{n}{p} = n!/(p!(n-p)!).
  • Combinaison avec répétition: nombre de solutions de x1++xn=px_1 + \dots + x_n = p, soit (n+p1n1)\binom{n+p-1}{n-1}.
  • Coefficient multinomial: nombre de partitions d'un ensemble à nn éléments en kk parties de cardinaux donnés, n!/(n1!nk!)n!/(n_1! \cdots n_k!).
  • Factorielle: n!=n(n1)1n! = n(n-1)\cdots 1; l'ordre de grandeur est nnn^{n}, précisé par la formule de Stirling.
  • Relation de récurrence: T(n)=f({T(p), n0p<n})T(n) = f(\{T(p),\ n_0 \le p \lt n\}); d'ordre kk si elle ne remonte que de kk termes, complète si tous les termes précédents interviennent, de partition si seuls les T(n/p)T(n/p) apparaissent.
  • Équation caractéristique: équation α2=aα+b\alpha^2 = a\alpha + b associée à une récurrence linéaire d'ordre 2 homogène; ses racines donnent le terme général.
  • Série formelle: représentation n0cnXn\sum_{n \ge 0} c_n X^{n} d'une suite, où XX est un simple symbole de position; outil général de résolution des récurrences linéaires.
  • Inductif (ensemble): ensemble muni d'un bon ordre, sur lequel le principe d'induction s'applique.
  • Bien fondé (ordre): ordre sans suite infinie strictement décroissante; équivaut à « toute partie non vide admet un élément minimal ».
  • Définition inductive: donnée d'une base finie BB et d'un ensemble fini d'opérations; XX est le plus petit ensemble contenant BB et clos par ces opérations.
  • Définition non ambiguë: définition inductive où chaque élément admet une seule construction; condition nécessaire pour compter correctement.
  • Induction généralisée: principe sur un ordre bien fondé; si (y<x, P(y))P(x)(\forall y \lt x,\ P(y)) \Rightarrow P(x) pour tout xx, alors PP est vraie partout.
  • Élément minimal, minimum: un minimal mm vérifie emm=ee \le m \Rightarrow m = e; un minimum est plus petit que tous les éléments. Ils coïncident si l'ordre est total.
  • Diagramme de Hasse: représentation d'un ordre sans réflexivité ni transitivité, orientée du bas vers le haut.
  • Linéarisation (tri topologique): extension d'un ordre partiel en ordre total par choix répété d'un sommet de degré entrant nul.
  • Algèbre de Boole: ensemble muni de deux éléments distingués et de trois opérations (produit, somme, complément) vérifiant idempotence, associativité, commutativité, distributivité et absorption.
  • Fonction booléenne: fonction de {0,1}k\{0,1\}^{k} dans {0,1}\{0,1\}, déterminée par sa table de vérité; il y en a 2(2k)2^{(2^{k})}.
  • Littéral et clause: un littéral est une variable booléenne ou sa négation; une clause est une disjonction de littéraux.
  • Forme normale conjonctive: conjonction de clauses; toute formule peut y être mise.
  • Résolution (zéro-résolution): méthode syntaxique de démonstration automatique; le résolvant de ll1l \vee l_1 \dots et ¬lk1\neg l \vee k_1 \dots est l1k1l_1 \dots \vee k_1 \dots, et l'apparition de la clause vide signale une contradiction.
  • Domaine et image d'une fonction: dom(f)\mathrm{dom}(f) est l'ensemble des entrées ayant une image, Im(f)\mathrm{Im}(f) l'ensemble des sorties atteintes.
  • Fonction totale, fonction partielle: totale si dom(f)=A\mathrm{dom}(f) = A, partielle si dom(f)A\mathrm{dom}(f) \subsetneq A; une application est une fonction totale.
  • Curryfication: transformation d'une fonction de A×BA \times B vers CC en une fonction de AA vers les fonctions de BB vers CC.

#Sécurité

  • Triade CIA: confidentialité, intégrité, disponibilité; les trois objectifs de la sécurité.
  • Authentification: vérifier l'identité (mot de passe, 2FA, certificats).
  • Autorisation: déterminer les droits d'accès (RBAC/ABAC, scopes).
  • Chiffrement symétrique: même clé pour chiffrer et déchiffrer (AES-GCM).
  • Chiffrement asymétrique: paire clé publique et clé privée (RSA, ECC).
  • Hachage: empreinte irréversible (SHA-256); ne prouve pas l'authenticité à lui seul.
  • HMAC: intégrité et authenticité avec clé partagée.
  • Signature: intégrité et non-répudiation avec clé privée et publique.
  • Sel (salt): valeur aléatoire qui durcit le hachage des mots de passe.
  • PBKDF2/Argon2: dérivation de clé résistante au bruteforce sur GPU et ASIC.
  • CSRF: requête forgée cross-site; défenses: SameSite, token, vérification Origin.
  • XSS: injection de script; défenses: échappement systématique, CSP.

#Python (pratique)

  • Liste: séquence mutable et ordonnée; append, pop, sort, slices.
  • Tuple: séquence immuable; sert d'enregistrement et de clé de dictionnaire.
  • Dict: table de hachage clé vers valeur; clés immuables et hachables.
  • Set: collection non ordonnée d'éléments uniques; union, intersection, différence.
  • Compréhension: syntaxe compacte pour construire une collection.
  • Générateur: itérateur paresseux produit via yield; économe en mémoire.
  • Context manager (with): acquisition et libération garanties de ressources.
  • Exception: signal d'erreur contrôlée; try/except/else/finally.
  • Annotation de type: indice pour l'outillage; vérifié par mypy ou pyright, pas au runtime.
  • Environnement virtuel (venv): dépendances isolées par projet.
  • PEP 8: conventions de style; facilite lecture et cohérence.
  • Dataclass: classe de données avec génération automatique (init, eq, repr).
  • pytest: framework de tests concis; fixtures et assertions expressives.
  • logging: journalisation avec niveaux (DEBUG à CRITICAL) et handlers.

#Développement et gouvernance

  • API: interface d'un service ou d'une bibliothèque; contrat d'échange stable.
  • Abstraction: ignorer les détails non pertinents pour raisonner à un niveau utile.
  • État: données persistantes à un instant; plus d'état veut dire plus de cas à gérer et tester.
  • Idempotence: exécuter plusieurs fois produit le même résultat final (PUT, DELETE).
  • Déterminisme: même entrée produit la même sortie; facilite test et reproductibilité.
  • Observabilité: capacité à comprendre un système en production (logs, métriques, traces).
  • SLA/SLO: accord et objectif de niveau de service; formalisent disponibilité et latence.
  • Cache: stockage temporaire pour accélérer les accès répétés en sacrifiant de la fraîcheur.
  • RGPD: règlement européen sur la protection des données; minimisation, finalité, droits.
  • WCAG: règles d'accessibilité du web (percevable, utilisable, compréhensible, robuste).
  • AIPD (DPIA): analyse d'impact exigée pour les traitements sensibles ou à grande échelle.
  • Ecoconception: concevoir des services sobres en énergie, en données et en durée de cycle.