Aller au contenu principal

Glossaire

Progression

#Glossaire — Termes utiles (≈100 définitions)

Ce glossaire regroupe des définitions concises pour les termes fréquents du cours. Objectif: donner un rappel rapide (quoi + pourquoi) au moment où vous en avez besoin.

#Général

  • Algorithme: procédure finie pour résoudre un problème; précise le quoi et l’ordre des étapes.
  • Abstraction: ignorer les détails non pertinents pour raisonner à un niveau utile.
  • API: interface d’un service/bibliothèque; contrat d’échange stable entre composants.
  • 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 latence.
  • État: données persistantes à un instant; plus d’état = plus de cas à gérer/tester.
  • Idempotence: exécuter plusieurs fois produit le même résultat final (PUT/DELETE typiquement).
  • Concurrence: plusieurs tâches progressent indépendamment; la parallélisation exécute réellement en même temps.
  • Déterminisme: même entrée → même sortie; facilite test et reproductibilité.
  • Observabilité: capacité à comprendre un système (logs, métriques, traces).
  • SLA/SLO: objectif/accord de niveau de service; formalise disponibilité/latence.
  • Cache: stockage temporaire pour accélérer des accès répétitifs en sacrifiant de la fraîcheur.

#Web & Réseaux

  • IP: adressage logique pour acheminer des paquets entre réseaux (IPv4/IPv6).
  • TCP: transport fiable orienté connexion (ordre, retransmission, congestion).
  • UDP: datagrammes sans garantie; faible latence, pas d’ordre intrinsèque.
  • DNS: annuaire distribué nom → adresse IP; résolveurs, caches et TTL.
  • HTTP: protocole applicatif du Web (méthodes, statuts, en‑têtes, corps).
  • TLS: chiffrement/authenticité des communications réseau (HTTPS).
  • CORS: politique navigateur pour requêtes cross‑origin côté JS.
  • CDN: réseau de diffusion rapprochant le contenu des utilisateurs.
  • NAT: traduction d’adresses/ports pour partager une IP publique.
  • MTU/MSS: tailles maximales de trame/segment utiles; influence la fragmentation.
  • QUIC: transport chifré sur UDP (HTTP/3), faible latence, migration de connexion.
  • ALPN: négociation du protocole applicatif pendant TLS (ex.: h2, h3).

#OS & Systèmes

  • 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.
  • TLB: cache des traductions adresse virtuelle → physique.
  • Page fault: défaut lors d’un accès à une page non présente/mappée.
  • Copy‑on‑Write: différer les copies jusqu’à la première écriture effective.
  • Système de fichiers: organisation durable (inodes, répertoires, journaling/COW).
  • fsync: forcer la persistance sur disque selon garanties du FS.
  • IPC: mécanismes d’échange/synchronisation entre processus (pipes, shm, mutex…).
  • Deadlock: interblocage circulaire de verrous/ressources.
  • Virtualisation: exécution d’OS invités (hyperviseur); containers: isolation noyau.

#BD & SQL

  • Schéma: structure logique des données (tables, colonnes, contraintes).
  • Clé primaire (PK): identifiant unique d’une ligne d’une table.
  • Clé étrangère (FK): contrainte de référence vers une autre table.
  • Normalisation: réduction des redondances/anomalies (1NF/2NF/3NF/BCNF).
  • Index: structure pour accélérer recherches/jointures/tri (B‑Tree, etc.).
  • Jointure: combinaison de lignes liées entre tables (INNER/LEFT/… ).
  • Agrégation: résumé par groupes (COUNT/SUM/AVG/MIN/MAX + GROUP BY).
  • Transaction: unité atomique avec garanties ACID.
  • Isolation: contrôle des anomalies d’accès concurrent (RC/RR/Serializable).
  • SARGable: prédicat indexable (éviter fonctions sur colonnes indexées).
  • Plan d’exécution: stratégie choisie par le moteur SQL (coûts, stats).
  • Vue matérialisée: résultat pré‑calculé stocké (rafraîchi périodiquement).

#Algorithmique & Structures

  • Complexité: coût asymptotique temps/mémoire en fonction de n.
  • Big‑O: borne supérieure asymptotique (O(n log n), O(n²)…).
  • Pile (stack): LIFO; appel/récursion, backtracking.
  • File (queue): FIFO; parcours en largeur (BFS), planification.
  • Tableau dynamique: stockage contigu; accès index O(1) amorti, insertions 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é; insert/extract‑min O(log n).
  • BST: arbre binaire de recherche; O(log n) si équilibré.
  • Hash map: accès moyen O(1) amorti; dépend de la fonction de hachage/facteur de charge.
  • Programmation dynamique: réutilisation de sous‑solutions (mémoïsation/tabulation).
  • Greedy (glouton): choix local avec preuve d’optimalité (échange/matroïdes).
  • A*: recherche informée avec heuristique admissible/consistante.

#Sécurité

  • Confidentialité/Intégrité/Disponibilité (CIA): triade des objectifs de 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/déchiffrer (AES‑GCM).
  • Chiffrement asymétrique: paire clé publique/privée (RSA, ECC).
  • Hachage: empreinte irréversible (SHA‑256); pas une preuve d’intégrité authentifiée.
  • MAC/HMAC: intégrité + authenticité avec clé partagée.
  • Signature: intégrité + non‑répudiation avec clé privée/publique.
  • Sel (salt): valeur aléatoire pour durcir le hachage de mots de passe.
  • PBKDF/Argon2: dérivation de clé résistante au bruteforce GPU/ASIC.
  • CSRF: requête forgée cross‑site; défenses: SameSite + token + vérif Origin.
  • XSS: injection de script; défenses: échappement, CSP, Trusted Types.

#HTTP & APIs

  • Méthode sûre: ne modifie pas l’état (GET/HEAD); cacheable.
  • Idempotent: exécutable plusieurs fois sans effet cumulatif (PUT/DELETE).
  • Code 2xx/3xx/4xx/5xx: classes de statuts (succès/redirection/erreur client/serveur).
  • ETag: identifiant de version pour revalidation conditionnelle (If‑None‑Match).
  • Cache‑Control: directives de fraîcheur (max‑age, no‑store, public/private).
  • Vary: liste des en‑têtes qui segmentent le cache (Accept‑Language…).
  • CSP: Content‑Security‑Policy; restreint les sources de contenu.
  • CORS: politique d’accès cross‑origin (pré‑vol, Allow‑Origin, credentials).
  • HSTS: forcer HTTPS côté navigateur (Strict‑Transport‑Security).
  • Problem Details: format d’erreurs standard (RFC 7807).
  • Idempotency‑Key: clé côté client pour rendre POST idempotent.
  • ETag/If‑Match: concurrence optimiste (412 si conflit).

#Compilation & Langages

  • Lexing: découper en tokens (identifiants, nombres, opérateurs…).
  • Parsing: construire un AST en suivant une grammaire (LL/LR, précédence).
  • AST: représentation structurée du programme, sans bruit syntaxique.
  • IR: représentation intermédiaire pour optimiser (ex.: LLVM IR).
  • Codegen: traduction vers une cible (bytecode, WASM, assembleur).
  • WASM: format binaire portable, modèle à pile, sandboxé.
  • JIT: compilation à la volée pendant l’exécution; trade‑off warmup/perf.
  • Optimisation: transformer un programme pour le rendre plus efficace sans en changer le sens.
  • Type checking: vérification statique/dynamique de compatibilité de types.
  • Monade (aperçu): motif pour composer calculs avec effets (état, IO, erreurs).
  • Garbage collector: récupération automatique de mémoire inutilisée.
  • RAII: acquisition/libération liée à la durée de vie des objets (C++/Rust).

#Python (pratique)

  • Liste/tuple/dict/set: séquences mutables/immuables et collections associatives.
  • Compréhension: syntaxe compacte pour construire une collection.
  • Générateur: itérateur paresseux produit via yield/compréhension génératrice.
  • Contexte (with): gestion sûre de ressources (fichiers/verrous).
  • Exception: signal d’erreur contrôlée; try/except/else/finally.
  • Annotation: indice de type pour l’outillage; vérifiée par mypy/pyright.
  • Virtualenv: environnement isolé de dépendances (venv/poetry/pipenv).
  • Wheel: distribution binaire d’un paquet Python.
  • PEP 8: conventions de style; facilite lecture/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: journaliser avec niveaux (DEBUG→CRITICAL) et handlers.

#Data & IA (aperçu)

  • Dataset: ensemble de données pour l’entraînement/évaluation.
  • Feature: variable explicative; ingénierie de features = les construire/nettoyer.
  • Échantillonnage: division train/validation/test pour estimer la généralisation.
  • Overfitting: modèle colle au bruit; régularisation/validation croisée.
  • Gradient: direction de la plus forte variation de la perte.
  • Optimiseur: méthode pour mettre à jour paramètres (SGD/Adam).
  • Batch: groupe d’exemples traité ensemble; mini‑batch = compromis perf/variance.
  • Epoch: passage complet sur les données d’entraînement.
  • Inférence: utilisation du modèle entraîné en production.
  • Quantification: compresser les poids (int8/float16) au prix d’une petite perte.