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.