📖 Glossaire Informatique

368 termes essentiels pour la NSI et la SNT

architecture

Accès direct à la mémoire

Fonctionnalité matérielle qui permet à un périphérique (comme un disque dur ou une carte réseau) de lire ou d'écrire directement dans la mémoire RAM sans passer par le processeur à chaque transfert. Cela libère le CPU pour d'autres tâches et améliore les performances.

Adressage mémoire

Mécanisme permettant au processeur de repérer et d'accéder à une case précise de la mémoire. Chaque case a une adresse unique, exprimée en binaire.

Architecture 64 bits

Architecture où le processeur utilise des mots de 64 bits. Elle permet d'adresser beaucoup plus de mémoire et de traiter des données plus grandes qu'en 32 bits.

Architecture de Von Neumann

Modèle d'ordinateur où le programme et les données sont stockés dans la même mémoire. Le processeur exécute les instructions une par une en les lisant depuis cette mémoire. C'est la base de la quasi-totalité des ordinateurs modernes.

Assembleur

Langage de programmation de bas niveau qui utilise des mnémoniques pour représenter les instructions machine. Il est propre à une architecture de processeur.

Basculer

Circuit électronique élémentaire qui peut stocker un bit d'information (0 ou 1). C'est la brique de base de la mémoire dans un processeur.

Bit

Contraction de 'binary digit'. C'est la plus petite unité d'information en informatique. Un bit ne peut prendre que deux valeurs, conventionnellement représentées par 0 ou 1. C'est la base du système binaire.

Bus (systémique)

Ensemble de lignes conductrices (fils) qui permettent la transmission des données, des adresses et des signaux de commande entre les différents composants de l'ordinateur (CPU, mémoire, périphériques). On distingue le bus de données, le bus d'adresses et le bus de contrôle.

Bus PCI Express

Bus série haute vitesse utilisé pour connecter des composants internes à la carte mère. Il fonctionne avec des 'voies' (lanes) permettant des transferts de données très rapides, essentielles pour les cartes graphiques, les SSD NVMe ou les cartes réseau.

Bus système

Ensemble de lignes de communication qui relient le processeur à la mémoire et aux périphériques. Il transporte les données, les adresses et les signaux de contrôle.

Cache processeur

Mémoire très rapide et petite intégrée au processeur. Elle stocke les données et instructions les plus fréquemment utilisées pour accélérer les traitements.

Circuit Combinatoire

Circuit électronique numérique dont les sorties dépendent UNIQUEMENT de la combinaison actuelle des entrées. Il ne possède pas de mémoire des états précédents. Il est construit en interconnectant des portes logiques.

Circuit séquentiel

Circuit logique dont la sortie dépend à la fois des entrées actuelles et de l'état précédent du circuit (mémoire). Il utilise des bascules.

Cœur (de processeur)

Unité de calcul indépendante à l'intérieur d'un processeur. Un processeur multi-cœurs peut exécuter plusieurs tâches en parallèle, améliorant ainsi les performances.

Cœurs CUDA

Ce sont les unités de calcul parallèle spécialisées dans les GPU NVIDIA. Contrairement aux cœurs CPU plus polyvalents, ils sont optimisés pour exécuter simultanément de nombreux calculs simples, comme ceux nécessaires au rendu graphique ou au calcul scientifique.

Cœurs Tensor

Unités de calcul spécialisées dans les GPU NVIDIA, optimisées pour les opérations d'algèbre linéaire, notamment les multiplications de matrices. Elles sont cruciales pour accélérer les calculs d'intelligence artificielle et d'apprentissage profond (deep learning).

Commande TRIM

Commande envoyée par le système d'exploitation à un SSD pour lui indiquer quels blocs de données ne sont plus utilisés (après une suppression de fichier). Cela permet au contrôleur du SSD de les effacer en amont, maintenant ainsi des performances d'écriture optimales.

Comparateur

Circuit combinatoire qui compare deux nombres binaires et indique s'ils sont égaux, ou lequel est le plus grand. Il est construit à partir de portes logiques.

Complément à deux

Méthode la plus courante pour représenter les nombres entiers relatifs (positifs et négatifs) en binaire. Elle simplifie les circuits arithmétiques.

Décodeur d'instructions

Partie du processeur qui analyse le code binaire d'une instruction machine pour déterminer quelle opération l'UAL doit effectuer et sur quelles données.

Découverte de services

Mécanisme automatique dans une architecture de microservices qui permet à un service de trouver l'adresse réseau (IP et port) d'un autre service dont il a besoin. C'est essentiel car les instances de services peuvent être créées, déplacées ou supprimées dynamiquement.

Démultiplexeur

Circuit combinatoire inverse du multiplexeur. Il dirige une entrée unique vers l'une de ses plusieurs sorties, en fonction de signaux de contrôle.

Dockerfile

Fichier texte contenant toutes les commandes nécessaires pour assembler une image Docker. Il décrit l'environnement de base, les dépendances à installer, les fichiers à copier et la commande à lancer pour démarrer l'application dans le conteneur.

Hertz (Hz)

Unité de fréquence correspondant à un événement par seconde. En informatique, on utilise le kilohertz (kHz), mégahertz (MHz) et gigahertz (GHz) pour mesurer la vitesse d'horloge des processeurs.

Horloge (du processeur)

Signal rythmique qui cadence les opérations du processeur. Sa fréquence, en gigahertz (GHz), indique le nombre de cycles d'opérations élémentaires par seconde. Une fréquence plus élevée permet souvent des calculs plus rapides.

Horloge système

C'est un signal cadencé qui rythme les opérations du processeur. Sa fréquence, en gigahertz (GHz), indique le nombre de cycles d'horloge par seconde.

Hyperviseur de type 1

Logiciel de virtualisation qui s'exécute directement sur le matériel physique, sans système d'exploitation hôte. Il alloue les ressources (CPU, mémoire) aux machines virtuelles et assure leur isolation. Il est plus performant et sécurisé que le type 2.

IaaS

Modèle de cloud computing où le fournisseur met à disposition une infrastructure virtualisée (serveurs, stockage, réseau) que le client peut configurer et gérer à distance. Le client contrôle le système d'exploitation et les applications, mais pas le matériel sous-jacent.

Interruption

Signal envoyé au processeur pour lui demander de suspendre temporairement l'exécution d'un programme et d'exécuter une routine spécifique. Elle permet de gérer les événements.

Jeu d'instructions

Ensemble de toutes les commandes élémentaires qu'un processeur comprend et peut exécuter directement. C'est le langage machine du processeur.

Lancer de rayons

Technique de rendu graphique qui simule le parcours physique de la lumière (les rayons) dans une scène 3D. Cela permet de générer des effets de réflexion, de réfraction et d'ombres d'un réalisme bien supérieur aux techniques traditionnelles de rasterisation.

Langage machine

C'est le seul langage compris directement par le processeur. Il est constitué uniquement de suites de 0 et de 1 (code binaire).

Mémoire Morte (ROM)

Mémoire dont le contenu est inscrit une fois pour toutes et ne peut pas être modifié en fonctionnement normal. Elle est non volatile (contenu conservé hors tension) et contient souvent des programmes essentiels au démarrage.

Mémoire vidéo

Mémoire vive dédiée et très rapide intégrée à la carte graphique (GPU). Elle sert à stocker toutes les données nécessaires au rendu d'une image : textures 3D, tampons de frame (image en cours), informations de géométrie, etc.

Mémoire Vive (RAM)

Mémoire de travail rapide où sont stockés temporairement les programmes en cours d'exécution et les données qu'ils utilisent. Son contenu est effacé lorsque l'ordinateur s'éteint (mémoire volatile).

Migration à chaud

Technique de virtualisation qui permet de déplacer une machine virtuelle en cours d'exécution d'un serveur physique vers un autre, sans interruption de service perceptible pour les utilisateurs. Cela permet la maintenance du matériel ou l'équilibrage de charge.

Mode de protection

Fonction du processeur qui permet de séparer les espaces mémoire des différents programmes et du système d'exploitation. Cela empêche un programme de planter tout le système.

Mot mémoire

Unité de données de taille fixe traitée comme un bloc par le processeur. Sa taille (16, 32, 64 bits) définit l'architecture du processeur.

Multiplexeur

Circuit combinatoire qui sélectionne une parmi plusieurs entrées pour la diriger vers une sortie unique. La sélection se fait via des signaux de contrôle.

Nibble

Un demi-octet, soit un groupe de 4 bits. Un nibble permet de représenter une valeur hexadécimale unique (de 0 à F).

NVMe

Protocole de communication conçu spécifiquement pour les SSD connectés via le bus PCI Express. Il réduit les délais d'accès et permet un très haut débit en exploitant directement les capacités du bus PCIe, contrairement aux protocoles plus anciens comme SATA.

Octet (Byte)

Groupe de 8 bits. C'est l'unité de base pour mesurer la taille des fichiers et la capacité des mémoires. Un octet permet de représenter 2^8 = 256 valeurs différentes (de 0 à 255).

Orchestration de conteneurs

Processus automatisé de gestion du cycle de vie des conteneurs (déploiement, mise à l'échelle, mise en réseau, tolérance aux pannes) dans un environnement distribué. Elle est essentielle pour gérer des applications composées de nombreux microservices conteneurisés.

Passerelle API

Composant serveur qui fait office de point d'entrée unique pour un ensemble de microservices. Il gère des tâches transversales comme l'authentification, la limitation du débit, la journalisation et le routage des requêtes vers le bon service en arrière-plan.

Pipeline

Technique qui permet au processeur de traiter plusieurs instructions en même temps, chacune à une étape différente de son exécution. Cela améliore les performances.

Porte ET (AND)

Porte logique qui renvoie la valeur VRAI (1) uniquement si TOUTES ses entrées sont à VRAI (1). Si au moins une entrée est à FAUX (0), la sortie est FAUX (0). Sa table de vérité pour deux entrées est : 0 ET 0 = 0, 0 ET 1 = 0, 1 ET 0 = 0, 1 ET 1 = 1.

Porte Logique

Circuit électronique de base qui réalise une fonction booléenne (ET, OU, NON...). Elle prend une ou plusieurs entrées binaires (0/1) et produit une sortie binaire selon une table de vérité. C'est le brique élémentaire des circuits du processeur.

Porte NON (NOT)

Porte logique à une seule entrée qui inverse la valeur logique. Elle renvoie VRAI (1) si l'entrée est FAUX (0) et FAUX (0) si l'entrée est VRAI (1). On l'appelle aussi un inverseur.

Porte OU (OR)

Porte logique qui renvoie la valeur VRAI (1) si AU MOINS UNE de ses entrées est à VRAI (1). Elle ne renvoie FAUX (0) que si toutes les entrées sont à FAUX (0). C'est le 'ou' inclusif.

Préfixes (kibi, mébi, gibi...)

Préfixes standardisés pour les multiples d'octets en base 2 (binaire). Contrairement au kilo (10^3), le kibi (Ki) vaut 2^10 = 1024. Cela évite la confusion entre les puissances de 10 (décimal) et de 2 (binaire).

RAID 10

Niveau de RAID hybride qui combine le mirroring (RAID 1) et le striping (RAID 0). Il nécessite au moins quatre disques : les données sont réparties en bandes sur des paires de disques en miroir. Il offre à la fois de hautes performances et une bonne tolérance aux pannes.

RAID 5

Niveau de RAID qui répartit les données et les informations de parité (calculées pour la reconstruction) sur au moins trois disques. Il offre un bon compromis entre performance, capacité utile et tolérance aux pannes (un seul disque peut tomber en panne sans perte de données).

Registre

Petite zone de mémoire ultra-rapide située à l'intérieur du processeur. Elle sert à stocker temporairement les données et les adresses sur lesquelles le processeur est en train de travailler.

Requête d'interruption

Signal envoyé par un périphérique matériel (clavier, souris, carte réseau) au processeur pour attirer son attention de manière asynchrone. Cela permet au CPU de ne pas avoir à surveiller en permanence chaque périphérique et de réagir rapidement à des événements.

Système Binaire

Système de numération en base 2, utilisant uniquement deux chiffres : 0 et 1. C'est le langage natif des circuits électroniques numériques, qui fonctionnent avec deux états de tension (haut/bas). Toutes les données sont finalement représentées par des suites de bits.

Système Hexadécimal

Système de numération en base 16, utilisant les chiffres de 0 à 9 et les lettres de A à F. Il est très utilisé en informatique car un chiffre hexadécimal représente exactement 4 bits (un 'nibble'), permettant une notation concise des valeurs binaires.

Unité Arithmétique et Logique

Partie du processeur qui effectue les calculs arithmétiques (additions, soustractions) et les opérations logiques (ET, OU, décalages).

Unité Arithmétique et Logique (UAL/ALU)

Partie du processeur spécialisée dans l'exécution des opérations de base : additions, soustractions, comparaisons (logiques) et opérations booléennes (ET, OU, NON). C'est le composant qui effectue les calculs.

Unité Centrale de Traitement

C'est le cerveau de l'ordinateur. Elle exécute les instructions des programmes en effectuant des calculs et en coordonnant les autres composants.

Unité Centrale de Traitement (CPU)

C'est le cerveau de l'ordinateur. Elle exécute les instructions des programmes en effectuant des calculs, des décisions logiques et en coordonnant les autres composants. Sa vitesse est mesurée en hertz (Hz).

Virgule flottante

Représentation des nombres réels en informatique, similaire à la notation scientifique. Un nombre est codé avec un signe, une mantisse et un exposant.

bases données

ACID

Ensemble de propriétés garantissant la fiabilité des transactions dans une base de données. ACID signifie Atomicité, Cohérence, Isolation et Durabilité, ce qui assure que les opérations sont complètes et sécurisées.

Alias

Nom temporaire donné à une table ou à une colonne dans une requête SQL, pour améliorer la lisibilité ou raccourcir les références.

Anomalie (de mise à jour)

Un problème qui survient lors de l'insertion, de la modification ou de la suppression de données dans une table mal conçue, souvent à cause de la redondance. Cela peut corrompre la cohérence des données.

Base de données

Un ensemble organisé et structuré de données stockées électroniquement. Elle permet de conserver, de gérer et de retrouver facilement de grandes quantités d'informations.

Base de données document

Type de base NoSQL qui stocke les données sous forme de documents, généralement en JSON ou BSON. Chaque document peut avoir une structure différente, offrant une grande flexibilité.

Base de données graphe

Type de base NoSQL optimisé pour stocker et interroger des relations entre des entités. Elle modélise les données en nœuds (entités), relations (liens) et propriétés, idéale pour les réseaux sociaux, les recommandations.

Cardinalité

Dans un modèle conceptuel, elle décrit le nombre minimum et maximum d'occurrences d'une entité pouvant être associées à une occurrence d'une autre entité.

Chargement paresseux / immédiat

Stratégies de chargement des données liées dans un ORM. Le chargement paresseux (Lazy) ne charge les relations que lorsqu'on y accède. Le chargement immédiat (Eager) les charge d'emblée avec l'objet principal.

Clé étrangère (FK)

Une colonne d'une table qui fait référence à la clé primaire d'une autre table. Elle établit un lien (une relation) entre les deux tables et assure l'intégrité référentielle.

Clé primaire (PK)

Une colonne (ou un ensemble de colonnes) qui identifie de manière UNIQUE et NON NULL chaque enregistrement d'une table. C'est l'identifiant principal de la table.

Colonne (ou Attribut)

Une caractéristique ou un champ d'une table. Elle définit le type d'information stockée pour chaque enregistrement (ex: nom, âge, date).

Commit

Commande SQL qui valide définitivement toutes les modifications d'une transaction. Les données sont rendues permanentes et visibles par les autres utilisateurs.

Contrainte d'intégrité

Une règle définie sur une table pour garantir la validité, la précision et la cohérence des données. Le SGBD les fait respecter automatiquement.

Déclencheur (Trigger)

Procédure stockée qui s'exécute automatiquement lorsqu'un événement spécifié se produit sur une table (INSERT, UPDATE, DELETE).

Dénormalisation

Processus intentionnel d'introduction de redondance dans une base de données normalisée, pour améliorer les performances de lecture, au détriment de la cohérence et de l'espace.

Fonction SQL

Routine qui prend des paramètres, effectue un calcul ou une action, et retourne une valeur unique. Contrairement à une procédure, elle peut être utilisée dans une requête SELECT.

Fonction table

Fonction stockée qui retourne un ensemble de lignes (une table). Elle peut être utilisée dans la clause FROM d'une requête SQL, comme une table virtuelle, et accepte souvent des paramètres.

Forme normale (FN)

Un ensemble de règles (FN1, FN2, FN3, etc.) qui définissent les critères auxquels une table doit satisfaire pour être considérée comme bien structurée dans le processus de normalisation. Chaque forme normale résout un type spécifique de problème.

FROM (Clause)

Une clause SQL qui suit SELECT et qui indique la table (ou les tables) depuis laquelle les données doivent être extraites.

GROUP BY

Clause SQL qui regroupe les lignes ayant des valeurs identiques dans les colonnes spécifiées. Elle est utilisée avec des fonctions d'agrégation comme COUNT, SUM, AVG.

HAVING

Clause SQL qui filtre les groupes de résultats créés par GROUP BY, là où WHERE filtre les lignes individuelles. Elle fonctionne sur les résultats des fonctions d'agrégation.

Index

Structure de données associée à une table qui accélère les recherches (SELECT) sur certaines colonnes, au détriment de l'espace et de la vitesse d'écriture.

Index composite

Index créé sur plusieurs colonnes d'une table. Il permet d'accélérer les recherches qui utilisent ces colonnes ensemble, dans l'ordre défini lors de la création de l'index.

Index couvrant

Index qui contient toutes les colonnes nécessaires pour répondre à une requête. La base de données peut répondre en lisant uniquement l'index, sans avoir à accéder à la table principale, ce qui est très rapide.

Index filtré

Index créé sur un sous-ensemble des lignes d'une table, défini par une condition WHERE. Il est plus petit et plus efficace qu'un index complet quand les requêtes ciblent souvent ce sous-ensemble précis.

INSERT INTO (Commande)

La commande SQL utilisée pour ajouter un nouvel enregistrement (une nouvelle ligne) dans une table. On spécifie la table et les valeurs à insérer.

Intégrité référentielle

Une règle qui garantit qu'une valeur de clé étrangère dans une table correspond toujours à une valeur de clé primaire existante dans la table référencée. Elle maintient la validité des liens entre les tables.

Jointure (JOIN)

Une opération qui combine des lignes de deux tables ou plus, en se basant sur une colonne liée entre elles (généralement une clé étrangère). Elle permet de récupérer des données issues de plusieurs tables en une seule requête.

Jointure externe

Type de jointure qui conserve toutes les lignes d'une table, même si aucune correspondance n'est trouvée dans l'autre table. Les valeurs manquantes sont remplies par NULL.

Jointure interne (INNER JOIN)

Le type de jointure le plus courant. Elle ne retourne que les enregistrements pour lesquels il y a une correspondance (une valeur égale) dans les deux tables.

Ligne (ou Enregistrement ou Tuple)

Une entrée individuelle dans une table. Elle représente un objet ou une occurrence unique, contenant une valeur pour chaque colonne de la table.

Migration de schéma

Fichier de code qui décrit une modification précise du schéma de la base de données (ajout/suppression de table, colonne, index...). Ces migrations sont versionnées et appliquées dans un ordre spécifique.

Modèle Entité-Association

Représentation conceptuelle des données sous forme d'entités (objets), de leurs attributs et des associations entre elles. C'est une étape de conception avant le schéma relationnel.

Modèle relationnel

Un modèle de données qui représente la base sous forme de tables (relations). Les données sont organisées en lignes (enregistrements) et colonnes (attributs), avec des relations entre les tables.

Niveau d'isolation

Paramètre qui contrôle dans quelle mesure les transactions sont isolées les unes des autres, c'est-à-dire comment les modifications d'une transaction sont visibles par les autres. Il existe plusieurs niveaux (READ COMMITTED, SERIALIZABLE, etc.).

Normalisation

Un processus de conception de base de données qui consiste à organiser les tables et les colonnes pour réduire la redondance des données et améliorer l'intégrité des données. Elle suit des règles précises appelées 'formes normales'.

ORDER BY (Clause)

Une clause SQL optionnelle qui permet de trier le résultat d'une requête selon une ou plusieurs colonnes, par ordre croissant (ASC) ou décroissant (DESC).

Ordre (ORDER BY)

Clause SQL qui trie le jeu de résultats par une ou plusieurs colonnes, par ordre croissant (ASC) ou décroissant (DESC).

Paramètre de sortie (OUT)

Dans une procédure stockée, paramètre utilisé pour retourner une valeur au programme appelant. Il permet à la procédure de fournir un résultat sans nécessairement passer par un jeu d'enregistrements.

Partitionnement (Sharding)

Technique de répartition horizontale des données d'une base sur plusieurs serveurs. Chaque serveur ne contient qu'une partie des données, ce qui améliore les performances et la capacité de stockage.

Peuplement (Seeding)

Processus d'insertion de données initiales ou de test dans une base de données après sa création ou une migration. Ces données permettent de démarrer l'application avec un jeu de données cohérent.

Problème N+1

Problème de performance fréquent avec les ORM où, pour récupérer une liste d'objets et leurs relations, le système exécute une requête principale + N requêtes supplémentaires (une par objet).

Procédure stockée

Bloc de code SQL nommé et enregistré dans la base, qui peut être exécuté sur demande. Il permet de regrouper des instructions complexes.

Redondance des données

Le fait de stocker la même information plusieurs fois dans la base de données. Cela peut entraîner des incohérences, gaspiller de l'espace et compliquer les mises à jour.

Requête

Une instruction SQL utilisée pour demander des informations à la base de données. Elle permet de lire, filtrer, trier et agréger les données selon des critères précis.

Rollback

Commande SQL qui annule toutes les modifications effectuées dans la transaction en cours. La base revient à son état avant le début de la transaction.

Rollback de migration

Opération qui annule une migration appliquée à la base de données. Elle permet de revenir à un état antérieur du schéma en cas d'erreur ou pour suivre un processus de développement.

Schéma relationnel

Représentation abstraite de la structure d'une base de données relationnelle. Il décrit les tables, leurs attributs (colonnes) et les relations entre les tables.

SELECT (Commande)

La clause SQL principale pour interroger une base de données. Elle permet de spécifier les colonnes que l'on souhaite récupérer à partir d'une ou plusieurs tables.

SGBD (Système de Gestion de Base de Données)

Un logiciel qui permet de créer, de manipuler et d'administrer une base de données. Il sert d'interface entre la base, les utilisateurs et les applications.

Sous-requête

Requête SQL imbriquée à l'intérieur d'une autre requête (principale). Elle est exécutée en premier et son résultat est utilisé par la requête principale.

SQL (Structured Query Language)

Un langage de programmation standardisé utilisé pour communiquer avec une base de données relationnelle. Il permet d'interroger, de manipuler et de définir les données.

Table (ou Relation)

Une structure fondamentale dans une base relationnelle qui contient des données sur un sujet spécifique. Elle est composée de colonnes (les champs) et de lignes (les enregistrements).

Transaction

Séquence d'opérations sur la base de données traitée comme une unité indivisible. Elle suit le principe ACID : soit toutes les opérations réussissent, soit aucune n'est appliquée.

Transaction imbriquée

Transaction qui est démarrée à l'intérieur d'une autre transaction. Le commit d'une transaction imbriquée peut dépendre du commit de la transaction parent, offrant un contrôle granulaire.

Trigger BEFORE/AFTER

Déclencheur configuré pour s'exécuter avant (BEFORE) ou après (AFTER) un événement (INSERT, UPDATE, DELETE). BEFORE permet de valider/modifier les données avant écriture, AFTER permet des actions postérieures.

Trigger INSTEAD OF

Déclencheur qui s'exécute à la place de l'opération qui l'a activé. Il est souvent utilisé sur des vues complexes pour définir un comportement personnalisé d'insertion, mise à jour ou suppression.

UNION

Opérateur SQL qui combine les résultats de deux ou plusieurs requêtes SELECT en un seul jeu de résultats, en éliminant les doublons.

Unité de travail (ORM)

Patron de conception utilisé par les ORM pour grouper plusieurs opérations (insertion, mise à jour, suppression) en une seule transaction. Il suit les changements sur les objets et les synchronise avec la base en une fois.

UPDATE (Commande)

La commande SQL utilisée pour modifier les valeurs d'un ou plusieurs enregistrements existants dans une table. Elle est presque toujours utilisée avec une clause WHERE pour cibler les lignes à modifier.

Valeur nulle (NULL)

Valeur spéciale qui indique l'absence d'information ou une donnée inconnue pour un attribut. Ce n'est ni 0 ni une chaîne vide.

Vue (View)

Table virtuelle définie par une requête SQL. Elle ne stocke pas de données mais présente le résultat d'une requête comme une table, simplifiant les requêtes complexes.

Vue indexée

Vue sur laquelle un index cluster a été créé. Cela matérialise physiquement la vue dans la base de données, comme une vue matérialisée, améliorant considérablement les performances des requêtes complexes.

Vue matérialisée

Vue dont le résultat est physiquement stocké comme une table. Contrairement à une vue classique, elle ne se recalcule pas à chaque requête, ce qui améliore la vitesse de lecture au prix d'une actualisation périodique.

WHERE (Clause)

Une clause SQL optionnelle qui permet de filtrer les enregistrements selon une ou plusieurs conditions. Seules les lignes qui satisfont la condition sont retournées.

web

Adresse IP

Adresse numérique unique attribuée à chaque appareil connecté à un réseau (comme Internet). Elle permet d'identifier et de localiser l'appareil pour l'envoi de données.

Adresse MAC

Identifiant physique unique attribué par le fabricant à chaque interface réseau (carte Wi-Fi, Ethernet). Elle est codée sur 48 bits et utilisée pour identifier les appareils au niveau de la couche liaison de données (réseau local).

API

Interface qui permet à deux applications logicielles de communiquer entre elles. Pour le web, une API expose des données ou des fonctionnalités via des requêtes HTTP structurées.

API REST

Style d'architecture pour concevoir des API web. Elle s'appuie sur les standards du web (HTTP, URI) et traite les données comme des ressources manipulables avec les méthodes HTTP. Elle est souvent sans état (stateless).

Architecture client-serveur

Modèle d'organisation où un client (ex: navigateur) envoie des requêtes à un serveur (ex: machine hébergeant un site). Le serveur traite la requête et renvoie une réponse.

Backend

Partie d'une application web qui s'exécute côté serveur. Il gère la logique métier, les accès aux bases de données, l'authentification et prépare les données pour le frontend.

CDN

Réseau de serveurs géographiquement distribués qui stockent des copies de contenu web (images, vidéos, CSS, JS). Il permet de délivrer ce contenu plus rapidement aux utilisateurs en le servant depuis le serveur le plus proche.

Charge utile

Partie des données transmises dans une requête ou une réponse qui constitue le message ou l'information principale, par opposition aux en-têtes ou aux métadonnées. Dans le contexte des API, c'est souvent le corps (body) de la requête ou de la réponse au format JSON.

Code de statut HTTP

Nombre à trois chiffres inclus dans une réponse HTTP pour indiquer le résultat de la requête. Les codes commençant par 2 indiquent un succès, par 4 une erreur client.

Cookie (web)

Petit fichier texte stocké par le navigateur sur l'ordinateur de l'utilisateur, à la demande d'un site web. Il permet de mémoriser des informations entre les visites, comme un identifiant de session ou des préférences.

Cookie HTTP

Petit fichier texte stocké par le navigateur sur l'ordinateur de l'utilisateur, à la demande du serveur web. Il permet de mémoriser des informations entre les visites (session, préférences).

CORS

Mécanisme de sécurité des navigateurs qui utilise des en-têtes HTTP pour autoriser ou bloquer les requêtes faites depuis une origine (domaine) différente de celle de la ressource demandée. Il empêche les requêtes malveillantes inter-domaines.

CSS

Langage utilisé pour décrire la présentation et la mise en forme d'un document HTML. Il permet de contrôler les couleurs, les polices, le positionnement des éléments.

Découpage de code

Technique qui consiste à diviser le code JavaScript d'une application en plusieurs bundles (paquets) chargés à la demande. Cela améliore les performances en réduisant la taille du bundle initial chargé au premier accès de l'utilisateur.

DHCP

Protocole réseau qui attribue automatiquement une adresse IP et d'autres paramètres de configuration (comme la passerelle et le DNS) à un appareil lorsqu'il se connecte à un réseau. Cela évite une configuration manuelle fastidieuse.

DNS

Système qui fait correspondre un nom de domaine lisible (comme google.com) à une adresse IP numérique. Il agit comme l'annuaire du web.

DOM

Représentation structurée en arborescence d'un document HTML. Il permet à des langages comme JavaScript de manipuler dynamiquement le contenu, la structure et le style de la page.

DOM Virtuel

Représentation légère en mémoire de la structure réelle du DOM (Document Object Model). Utilisée par des frameworks comme React, elle permet de calculer les différences (diffing) entre l'état actuel et le nouvel état de l'interface, puis d'appliquer uniquement les changements nécessaires au DOM réel, optimisant ainsi les performances.

Élagage d'arbre

Processus d'optimisation effectué par des outils de bundling (comme Webpack ou Vite) qui supprime le code JavaScript mort, c'est-à-dire non utilisé, du bundle final. Il analyse les imports et exports pour ne garder que le code nécessaire.

Frontend

Partie d'une application web qui s'exécute côté client (dans le navigateur). Elle concerne tout ce que l'utilisateur voit et avec quoi il interagit (interface, mise en forme).

Génération de sites statiques

Technique de pré-rendu où les pages HTML sont générées au moment de la construction de l'application (build time), et servies comme des fichiers statiques. Cela offre d'excellentes performances et sécurité, idéal pour des contenus qui changent peu.

Gestion d'état

Concept et ensemble d'outils pour gérer, partager et synchroniser l'état (les données) d'une application entre différents composants, surtout dans les SPA complexes. Il évite la 'prop drilling' (passage manuel de props sur plusieurs niveaux).

GraphQL

Langage de requête et d'exécution pour les API, créé par Facebook. Il permet au client de demander exactement les données dont il a besoin, rien de plus, contrairement à une API REST qui renvoie des structures de données fixes.

HTML

Langage de balisage utilisé pour structurer le contenu d'une page web. Il définit des éléments comme les titres, les paragraphes, les images ou les liens.

HTTP

Protocole de communication qui permet le transfert de données sur le web entre un client (navigateur) et un serveur. Il définit des méthodes comme GET pour récupérer une ressource.

HTTPS

Version sécurisée du protocole HTTP. Les données échangées entre le client et le serveur sont chiffrées pour garantir la confidentialité et l'intégrité.

Hydratation

Processus par lequel un framework JavaScript (comme React ou Vue) attache des gestionnaires d'événements et rend le contenu HTML statique initial interactif côté client. C'est une étape clé du rendu côté serveur (SSR) pour transformer une page statique en application interactive.

JavaScript

Langage de programmation principalement exécuté côté client (navigateur) pour rendre les pages web interactives et dynamiques. Il peut aussi être utilisé côté serveur (Node.js).

JSON

Format texte léger pour l'échange de données, facile à lire et à écrire pour les humains, et simple à analyser pour les machines. Il est basé sur des paires clé/valeur et des listes ordonnées.

JWT (JSON Web Token)

Standard ouvert qui définit un moyen compact et autonome de transmettre des informations de manière sécurisée entre parties sous forme d'objet JSON. Il est souvent utilisé pour l'authentification et l'échange d'informations dans les API REST.

Masque de sous-réseau

Valeur numérique qui, combinée à une adresse IP, permet de diviser un réseau IP en sous-réseaux plus petits. Il distingue la partie de l'adresse qui identifie le réseau de celle qui identifie l'hôte (l'appareil) dans ce réseau.

Méthode HTTP

Verbe qui indique l'action souhaitée sur une ressource lors d'une requête HTTP. Les principales méthodes sont GET (récupérer), POST (envoyer), PUT (remplacer) et DELETE (supprimer).

Middleware

Logiciel intermédiaire qui s'exécute entre la réception d'une requête et l'envoi d'une réponse. Il peut traiter, modifier ou valider les données de la requête/réponse. C'est un concept central dans les frameworks backend comme Express.js.

Modèle-Vue-Contrôleur

Patron d'architecture logicielle qui sépare une application en trois composants interconnectés : le Modèle (données et logique métier), la Vue (interface utilisateur) et le Contrôleur (gère les entrées utilisateur et fait le lien entre Modèle et Vue). Beaucoup de frameworks web l'utilisent ou s'en inspirent.

NAT

Technique utilisée par les routeurs (comme votre box Internet) pour permettre à plusieurs appareils d'un réseau local de partager une seule adresse IP publique. Le routeur traduit les adresses IP privées en adresse publique et vice-versa.

Navigateur Web

Logiciel client qui permet d'afficher des pages web et d'interagir avec elles. Il interprète le code HTML, CSS et JavaScript reçu d'un serveur.

Paquet

Unité de données qui circule sur un réseau. Les informations (fichiers, messages) sont découpées en paquets pour être transmises, puis réassemblées à destination.

Pare-feu (Firewall)

Système (logiciel ou matériel) qui filtre le trafic entrant et sortant d'un réseau selon des règles de sécurité définies. Il protège contre les accès non autorisés et les menaces.

Passerelle

Dispositif (généralement un routeur) qui sert de point d'accès d'un réseau local vers d'autres réseaux, notamment Internet. C'est l'adresse IP à laquelle les appareils du réseau local envoient le trafic destiné à l'extérieur.

Ping

Commande et outil de diagnostic réseau qui teste la connectivité entre deux machines sur un réseau IP. Il envoie un petit paquet de données (ICMP Echo Request) et mesure le temps nécessaire pour recevoir une réponse (latence).

Point de terminaison

URL spécifique d'une API à laquelle un client peut envoyer une requête pour effectuer une opération précise (récupérer, créer, modifier ou supprimer une ressource). C'est l'interface d'interaction avec une API REST.

Port (logiciel)

Numéro associé à une application ou un service spécifique sur un ordinateur, utilisé par les protocoles TCP ou UDP. Il permet à un seul ordinateur d'exécuter plusieurs services réseau simultanément en les distinguant.

PWA (Application Web Progressive)

Application web qui utilise des technologies web modernes pour offrir une expérience utilisateur similaire à une application native (installation, fonctionnement hors-ligne, notifications push). Elle combine le large accès du web avec les fonctionnalités des applications mobiles.

Rendu côté client

Technique où le contenu HTML d'une page web est généré dynamiquement dans le navigateur de l'utilisateur par du JavaScript. Le serveur envoie un fichier HTML minimal et un bundle JavaScript qui construit la page. C'est le modèle classique des SPA.

Répartiteur de charge

Dispositif (logiciel ou matériel) qui répartit les requêtes entrantes d'un service web entre plusieurs serveurs. Il améliore la performance, la disponibilité et la fiabilité en évitant la surcharge d'un seul serveur.

Réponse HTTP

Message renvoyé par un serveur à un client après avoir traité sa requête. Elle contient un code de statut (ex: 200 OK, 404 Not Found), des en-têtes et souvent le corps de la ressource demandée.

Requête HTTP

Message envoyé par un client (navigateur, application) à un serveur pour demander une action. Il contient une méthode (GET, POST), des en-têtes et parfois un corps.

Réseau Local (LAN)

Réseau informatique qui relie des appareils sur une zone géographique limitée, comme une maison, une école ou un bureau. Les appareils peuvent partager des ressources et des données.

Routeur

Appareil réseau qui a pour fonction d'acheminer les paquets de données entre différents réseaux. Il choisit le meilleur chemin (route) pour qu'un paquet atteigne sa destination.

Serverless

Modèle d'exécution cloud où le fournisseur de services gère dynamiquement l'allocation des ressources machine. Le développeur écrit et déploie du code (fonctions) sans se soucier des serveurs sous-jacents, qui sont provisionnés à la demande.

Serveur Web

Ordinateur ou programme qui héberge des sites web et les sert aux clients qui en font la demande via le protocole HTTP/HTTPS.

Session

Période d'interaction entre un utilisateur et un site web, généralement identifiée par un identifiant unique. Elle permet de maintenir un état (comme une connexion) pendant la navigation.

SSH

Protocole réseau qui permet d'établir une connexion sécurisée et chiffrée avec un serveur distant. Il est principalement utilisé pour accéder à la ligne de commande d'un autre ordinateur et pour transférer des fichiers de manière sécurisée.

Stockage de session

Similaire au Local Storage, mais les données ne persistent que pour la durée de la session du navigateur (elles sont effacées quand l'onglet ou la fenêtre est fermé). Les données sont également isolées par onglet.

Stockage local

API du navigateur web qui permet de stocker des données de manière persistante (même après fermeture du navigateur) sous forme de paires clé-valeur, directement sur l'ordinateur de l'utilisateur. La capacité est bien supérieure à celle des cookies.

TCP/IP

Ensemble de protocoles qui forment la base de la communication sur Internet. IP gère l'adressage et le routage des paquets, tandis que TCP assure une transmission fiable et ordonnée.

Traceroute

Outil de diagnostic qui trace le chemin parcouru par les paquets de données à travers un réseau IP pour atteindre une destination. Il affiche la liste des routeurs (sauts) traversés et le temps de latence à chaque étape.

UDP

Protocole de transport plus simple et plus rapide que TCP, mais non fiable. Il envoie des paquets de données (datagrammes) sans établir de connexion préalable et sans garantie de livraison ou d'ordre d'arrivée.

URL

Adresse unique qui permet de localiser une ressource sur le web (page, image, vidéo). Elle est composée d'un protocole, d'un nom de domaine et d'un chemin.

VPN

Technologie qui crée un tunnel chiffré entre votre appareil et un serveur distant sur Internet. Tout votre trafic passe par ce tunnel, masquant votre adresse IP et sécurisant vos données, comme si vous étiez sur un réseau privé.

WebSocket

Protocole de communication qui établit un canal de communication bidirectionnel, persistant et full-duplex entre un client (navigateur) et un serveur, sur une seule connexion TCP. Il est idéal pour les applications en temps réel.

programmation

Affectation

Opération qui consiste à attribuer une valeur à une variable. En Python, elle se fait avec le signe égal (=). La valeur à droite est stockée dans la variable nommée à gauche.

Agrégation

Relation 'a-un' spécifique entre objets où l'objet contenu peut exister indépendamment de l'objet conteneur. C'est une forme de composition plus faible où le cycle de vie des objets n'est pas lié.

Algorithme

Suite finie et ordonnée d'instructions élémentaires permettant de résoudre un problème ou d'effectuer un calcul. C'est une méthode de résolution indépendante du langage de programmation.

Appel de fonction

Action d'exécuter le code d'une fonction. On écrit le nom de la fonction suivi de parenthèses, en y plaçant éventuellement des arguments (valeurs pour les paramètres). L'exécution saute alors au corps de la fonction.

Argument

Valeur réelle (ou expression) fournie à une fonction lors de son appel. Cette valeur est assignée au paramètre correspondant de la fonction définie. C'est la donnée concrète traitée par la fonction.

Bloc d'instructions

Ensemble d'instructions qui sont regroupées et exécutées ensemble. En Python, un bloc est défini par son indentation (décalage vers la droite), généralement de 4 espaces. Il suit les deux-points (:) d'une structure de contrôle.

Booléen (bool)

Type de données qui ne peut prendre que deux valeurs : True (Vrai) ou False (Faux). Il est essentiel pour le contrôle du flux d'exécution avec les conditions. En Python, le type est 'bool'.

Boucle for

Structure de contrôle qui permet de répéter un bloc d'instructions pour chaque élément d'une séquence (comme une liste, une chaîne ou un range). Elle évite la répétition manuelle du code.

Boucle while

Structure de contrôle qui répète un bloc d'instructions tant qu'une condition booléenne est vraie. Il faut veiller à ce que la condition devienne fausse pour éviter une boucle infinie.

Chaîne de caractères (str)

Type de données représentant une séquence de caractères, comme du texte. En Python, elle est délimitée par des guillemets simples (') ou doubles ("). Elle est de type 'str'.

Classe abstraite

Une classe qui ne peut pas être instanciée directement. Elle sert de modèle pour d'autres classes en définissant des méthodes que les classes filles doivent implémenter (méthodes abstraites).

Closure (Fermeture)

Une fonction interne qui se 'souvient' et a accès aux variables de la fonction englobante (scope parent), même après que l'exécution de la fonction parente est terminée. Elle capture l'état local.

Composition

Principe de conception où une classe est construite en contenant des instances d'autres classes (relation 'a-un'), plutôt qu'en héritant de celles-ci (relation 'est-un'). Elle favorise une plus grande flexibilité que l'héritage.

Compréhension d'ensemble

Une syntaxe concise pour créer un ensemble en itérant sur un itérable. Elle utilise des accolades {} comme les dictionnaires, mais sans les deux-points pour les paires, ce qui élimine automatiquement les doublons.

Compréhension de dictionnaire

Une syntaxe concise pour créer un dictionnaire en itérant sur un itérable et en définissant à la fois des clés et des valeurs. Elle est similaire à la compréhension de liste mais avec des paires clé:valeur.

Concaténation

Opération qui consiste à assembler deux chaînes de caractères (ou plus) pour en former une nouvelle, en les mettant bout à bout. En Python, on utilise l'opérateur '+' avec des 'str'.

Condition (if/elif/else)

Structure de contrôle qui permet d'exécuter un bloc d'instructions seulement si une certaine condition est vérifiée (True). Elle permet au programme de prendre des décisions et d'adapter son comportement.

Condition if / elif / else

Structure de contrôle permettant d'exécuter des blocs de code différents en fonction de la vérité d'une ou plusieurs conditions. 'if' teste la première condition, 'elif' des conditions alternatives, 'else' prend tous les autres cas.

Dataclass

Un décorateur (Python 3.7+) qui génère automatiquement des méthodes spéciales (__init__, __repr__, __eq__) pour une classe dont le rôle principal est de stocker des données. Elle réduit le code boilerplate.

Décorateur paramétré

Un décorateur qui accepte lui-même des arguments. Il s'agit en réalité d'une fonction qui retourne un décorateur 'standard'. Cela permet de personnaliser le comportement du décorateur.

Définition de fonction (def)

Instruction qui crée une nouvelle fonction. En Python, elle commence par le mot-clé 'def', suivi du nom de la fonction, de parenthèses contenant ses paramètres, et du signe deux-points. Le bloc de code qui suit est le corps de la fonction.

Dictionnaire (type)

Structure de données Python qui associe des clés uniques à des valeurs. Il est modifiable, non ordonné (avant Python 3.7) et très efficace pour rechercher une valeur à partir de sa clé. On le définit avec des accolades {}.

Duck Typing

Un concept où le type d'un objet est déterminé par ses comportements (méthodes et attributs) plutôt que par son classe d'origine. 'Si ça marche comme un canard et cancane comme un canard, alors c'est un canard.'

Encapsulation

Principe de la POO consistant à regrouper les données (attributs) et les méthodes qui les manipulent au sein d'une même classe. Elle permet aussi de protéger les données en contrôlant leur accès (via public/privé).

Ensemble (type)

Structure de données Python qui contient une collection non ordonnée d'éléments uniques (pas de doublons). Il est modifiable et utile pour les tests d'appartenance et les opérations mathématiques sur les ensembles (union, intersection).

Entier (int)

Type de données représentant un nombre entier, positif, négatif ou nul. En Python, le type pour les entiers est 'int'. Il n'a pas de limite de taille pratique en Python 3.

Exception

Événement qui interrompt le déroulement normal d'un programme, généralement à cause d'une erreur (division par zéro, fichier introuvable...). En Python, les exceptions sont gérées avec les blocs try/except pour éviter un plantage.

Expression génératrice

Une syntaxe similaire à la compréhension de liste, mais qui crée un générateur à la volée au lieu d'une liste. Elle utilise des parenthèses et est économe en mémoire car elle produit les valeurs une par une.

Fonction

Bloc de code nommé et réutilisable qui effectue une tâche spécifique. Elle peut prendre des données en entrée (paramètres) et peut retourner un résultat en sortie. Elle permet de structurer et d'organiser le code.

Fonction d'ordre supérieur

Une fonction qui accepte une ou plusieurs fonctions en tant qu'arguments, ou qui retourne une fonction comme résultat. C'est un concept clé de la programmation fonctionnelle.

Fonction de première classe

Caractéristique d'un langage où les fonctions sont traitées comme n'importe quelle autre valeur. Elles peuvent être assignées à des variables, passées en argument à d'autres fonctions et retournées comme résultat.

Fonction lambda

Fonction anonyme définie sur une seule ligne, sans le mot-clé 'def'. Elle est utile pour des opérations simples et temporaires. Elle peut prendre plusieurs arguments mais ne contient qu'une seule expression.

Gestionnaire de contexte (with)

Un objet qui définit les méthodes __enter__() et __exit__() pour gérer l'acquisition et la libération de ressources de manière propre et sécurisée. Il est utilisé avec l'instruction 'with'.

Héritage

Mécanisme de la Programmation Orientée Objet (POO) permettant à une classe (classe fille) de récupérer les attributs et méthodes d'une autre classe (classe mère). Cela favorise la réutilisation du code et la hiérarchie.

Héritage multiple

Capacité d'une classe à hériter des attributs et méthodes de plusieurs classes parentes. Cela permet de combiner les fonctionnalités de plusieurs sources mais peut créer des conflits (problème du diamant).

Instruction break

Mot-clé utilisé à l'intérieur d'une boucle (for ou while) pour en sortir immédiatement, avant que toutes les itérations prévues ne soient terminées. Elle interrompt complètement l'exécution de la boucle.

Instruction continue

Mot-clé utilisé à l'intérieur d'une boucle pour passer immédiatement à l'itération suivante, sans exécuter le reste du code du bloc pour l'itération courante. La boucle n'est pas interrompue.

Instruction return

Instruction clé en Python qui termine l'exécution d'une fonction et renvoie une valeur (ou None) à l'appelant. Elle provoque la sortie immédiate de la fonction. Une fonction peut avoir plusieurs 'return'.

Itérable

Tout objet Python capable de retourner ses éléments un par un. Il doit implémenter la méthode __iter__() ou __getitem__(). Les listes, tuples, strings et générateurs sont des itérables.

Méthode de classe

Méthode définie dans une classe et décorée par @classmethod. Son premier paramètre est traditionnellement 'cls' et représente la classe elle-même, pas une instance. Elle peut être appelée sur la classe sans créer d'objet.

Méthode spéciale (ou magique)

Méthode en Python dont le nom commence et finit par deux underscores (ex: __init__). Elle est appelée automatiquement dans des situations spécifiques, comme la création d'un objet ou l'utilisation d'opérateurs.

Méthode statique

Méthode définie dans une classe et décorée par @staticmethod. Elle n'a pas accès ni à l'instance (self) ni à la classe (cls). C'est une fonction utilitaire liée sémantiquement à la classe, mais qui n'a pas besoin de ses données.

Méthodes magiques

Méthodes spéciales en Python entourées de doubles underscores (comme __init__, __str__, __add__). Elles permettent de définir le comportement des objets pour les opérations natives (création, représentation, opérateurs).

Mixins

Des classes conçues pour fournir des fonctionnalités spécifiques à d'autres classes via l'héritage multiple. Elles ne sont pas destinées à être instanciées seules mais à 'mélanger' leur comportement avec d'autres classes.

MRO (Method Resolution Order)

L'ordre dans lequel Python recherche une méthode dans la hiérarchie des classes, notamment en cas d'héritage multiple. Il suit l'algorithme C3 qui garantit un ordre cohérent et évite les appels multiples.

Nombre à virgule flottante (float)

Type de données représentant un nombre réel, c'est-à-dire un nombre pouvant avoir une partie décimale. En Python, le type est 'float'. Il permet de représenter des valeurs approchées.

Opérateur

Symbole ou mot-clé qui effectue une opération sur une ou plusieurs valeurs (opérandes) pour produire un résultat. Il existe des opérateurs arithmétiques, de comparaison, logiques, etc.

Opérateur arithmétique

Opérateur qui effectue un calcul mathématique de base entre deux nombres. Ils retournent un résultat numérique (entier ou flottant).

Opérateur de comparaison

Opérateur qui compare deux valeurs et retourne un résultat booléen (True ou False). Ils sont utilisés pour prendre des décisions dans les structures conditionnelles.

Opérateur de comparaison

Symbole qui permet de comparer deux valeurs. Le résultat d'une comparaison est un booléen (True ou False). Les opérateurs courants sont : égal (==), différent (!=), supérieur (>), inférieur (<), supérieur ou égal (>=), inférieur ou égal (<=).

Opérateur logique

Opérateur qui combine ou modifie des expressions booléennes. Ils permettent de construire des conditions complexes. Les principaux sont 'and' (et), 'or' (ou), 'not' (non).

Paramètre

Variable définie dans la signature d'une fonction, qui sert de placeholder pour les valeurs que la fonction recevra lors de son appel. Il spécifie le nom et parfois le type des données attendues en entrée.

Polymorphisme

Principe de la POO permettant à des objets de classes différentes de répondre de manière spécifique à un même message (méthode de même nom). Il permet une interface commune pour des types différents.

Portée d'une variable

Zone du code où une variable est accessible et peut être utilisée. En Python, on distingue généralement la portée locale (dans une fonction) et la portée globale (dans tout le script).

Programmation

Activité qui consiste à écrire des instructions (code source) pour qu'un ordinateur puisse les exécuter et réaliser une tâche spécifique. C'est le processus de création d'un programme informatique.

Property (décorateur)

Un décorateur qui permet de définir une méthode comme un attribut accessible en lecture/écriture. Il est utilisé pour créer des getters, setters et deleters de manière élégante tout en préservant l'encapsulation.

Récursivité

Technique de programmation où une fonction s'appelle elle-même pour résoudre un problème. Elle doit comporter un cas de base (condition d'arrêt) qui stoppe les appels, et un cas récursif qui réduit le problème.

Surcharge d'opérateur

Définition du comportement des opérateurs (+, -, *, ==, etc.) pour des objets d'une classe définie par l'utilisateur. Cela se fait en implémentant les méthodes magiques correspondantes.

Tuple (type)

Structure de données Python similaire à une liste, mais immuable (non modifiable après sa création). Il est défini avec des parenthèses (). Il est souvent utilisé pour retourner plusieurs valeurs d'une fonction ou pour des données fixes.

Type de données

Classification qui définit la nature des valeurs qu'une variable peut contenir et les opérations que l'on peut effectuer avec. Il permet à l'ordinateur de savoir comment interpréter et manipuler la donnée.

Valeur de retour

Résultat produit par une fonction et renvoyé à l'endroit où elle a été appelée. En Python, on utilise l'instruction 'return' pour spécifier cette valeur. Une fonction sans 'return' retourne 'None'.

Variable

Emplacement symbolique en mémoire qui stocke une valeur. Cette valeur peut être lue, modifiée et réutilisée tout au long de l'exécution du programme. On lui donne un nom pour y faire référence.

yield from

Une expression en Python qui permet à un générateur de déléguer une partie de ses opérations à un autre générateur ou itérable. Elle simplifie le code lorsque les générateurs sont imbriqués.

sécurité éthique

Agent conversationnel

Programme informatique simulant une conversation avec un utilisateur humain, par texte ou voix. Il peut être basé sur des règles simples ou sur des modèles d'IA complexes (comme les GPT).

Analyse d'Impact

Étude préalable obligatoire pour tout traitement de données susceptible d'engendrer un risque élevé pour les droits et libertés des personnes. Elle vise à identifier et réduire ces risques dès la conception.

Antivirus

Logiciel conçu pour détecter, neutraliser et supprimer les logiciels malveillants (virus, vers, chevaux de Troie...). Il analyse les fichiers et surveille l'activité du système en temps réel.

Authentification

Processus qui permet de vérifier l'identité d'un utilisateur, d'un système ou d'une entité avant de lui accorder l'accès à une ressource. Elle repose souvent sur ce que l'utilisateur sait (mot de passe), possède (téléphone) ou est (empreinte digitale).

Authentification à deux facteurs (A2F)

Méthode d'authentification qui requiert deux preuves d'identité distinctes parmi différentes catégories (mot de passe + code temporaire). Elle ajoute une couche de sécurité supplémentaire en cas de vol du mot de passe.

Authentification forte

Processus d'authentification qui combine au moins deux facteurs différents parmi : quelque chose que l'on sait (mot de passe), que l'on possède (téléphone), ou que l'on est (empreinte digitale).

Authentification Multifacteur (MFA)

Méthode de sécurité qui exige plusieurs preuves d'identité distinctes pour accéder à un système. Elle combine typiquement quelque chose que vous connaissez (mot de passe), quelque chose que vous possédez (téléphone) et quelque chose que vous êtes (empreinte digitale).

Autorité de Certification

Organisme de confiance qui émet et gère les certificats numériques. Elle vérifie l'identité des demandeurs avant de signer leur certificat, créant ainsi une chaîne de confiance sur Internet.

Bac à Sable (Sandbox)

Environnement d'exécution isolé et contrôlé utilisé pour exécuter du code non fiable ou analyser des logiciels malveillants. Il empêche les actions du programme de nuire au système hôte ou d'accéder à des données sensibles.

Biais algorithmique

Erreur systématique et injuste dans les résultats d'un algorithme, souvent due à des données d'entraînement biaisées ou à la conception du programme. Il peut conduire à des discriminations (genre, origine, etc.).

Biométrie Comportementale

Méthode d'authentification qui analyse les modèles uniques du comportement d'un utilisateur, comme sa façon de taper sur un clavier, de bouger la souris, ou même de marcher avec son téléphone. Ce profil continu peut détecter une usurpation d'identité.

Certificat numérique

Fichier électronique qui atteste de l'identité d'une personne, d'un serveur ou d'une organisation. Il lie une clé publique à une identité et est signé par une Autorité de Certification de confiance.

Chaîne de Confiance

Modèle hiérarchique où la confiance dans une clé ou une identité est dérivée de la confiance en une autorité racine. Un certificat est validé en remontant une chaîne de signatures jusqu'à une autorité racine pré-installée et fiable.

Chiffrement

Technique qui consiste à transformer une information claire (texte en clair) en une information illisible (chiffrée) à l'aide d'une clé. Seul le destinataire possédant la clé de déchiffrement peut la lire.

Chiffrement asymétrique

Méthode de chiffrement qui utilise une paire de clés : une clé publique (partagée avec tous) pour chiffrer, et une clé privée (secrète) pour déchiffrer. Elle résout le problème de l'échange de clés mais est plus lente.

Chiffrement de Bout en Bout

Méthode de chiffrement où seuls l'expéditeur et le destinataire peuvent lire les messages. Les données sont chiffrées sur l'appareil de l'expéditeur et ne sont déchiffrées que sur celui du destinataire, pas sur les serveurs intermédiaires.

Chiffrement symétrique

Méthode de chiffrement où la même clé secrète est utilisée pour chiffrer et déchiffrer le message. Elle est rapide mais pose le problème de l'échange sécurisé de la clé entre les correspondants.

Clé privée

Dans un système de chiffrement asymétrique, c'est la clé secrète qui doit rester strictement confidentielle. Elle sert à déchiffrer les messages chiffrés avec la clé publique associée, ou à signer numériquement un document.

Clé publique

Dans un système de chiffrement asymétrique, c'est la clé qui peut être diffusée librement à tout le monde. Elle sert à chiffrer un message destiné au propriétaire de la clé privée associée, ou à vérifier une signature numérique.

CNIL

Commission Nationale de l'Informatique et des Libertés. Autorité administrative indépendante française chargée de veiller à la protection des données personnelles et de faire respecter le RGPD sur le territoire national.

Confidentialité

Principe de sécurité qui assure que l'information n'est accessible qu'aux personnes autorisées. Elle empêche la divulgation d'informations à des tiers non autorisés.

Consensus (Preuve d'Enjeu)

Mécanisme de validation des transactions dans une blockchain où la création d'un nouveau bloc est confiée à un nœud validateur en fonction de la quantité de cryptomonnaie qu'il possède et 'parie' (son enjeu). Il est considéré comme moins énergivore que la preuve de travail.

Consentement

Dans le cadre du RGPD, c'est l'accord libre, spécifique, éclairé et univoque donné par une personne pour le traitement de ses données personnelles. Il doit être donné par une action positive claire (case à cocher, bouton).

Consentement éclairé

Principe du RGPD exigeant qu'une personne donne son accord libre, spécifique et sans ambiguïté au traitement de ses données, après avoir été clairement informée de l'usage qui en sera fait.

Contrat Intelligent

Programme informatique stocké sur une blockchain qui s'exécute automatiquement lorsque des conditions prédéfinies sont remplies. Il permet de créer des accords auto-exécutants et transparents, sans besoin d'un intermédiaire de confiance.

Cybersécurité

Ensemble des méthodes et outils techniques pour protéger les systèmes informatiques, les réseaux et les données contre les attaques, les dommages ou les accès non autorisés. Son but est d'assurer la confidentialité, l'intégrité et la disponibilité de l'information.

Deepfake

Technique de synthèse d'images ou de vidéos hyper-réalistes utilisant l'intelligence artificielle (réseaux antagonistes génératifs) pour superposer le visage et/ou la voix d'une personne sur ceux d'une autre.

Délégué à la Protection des Données

Personne chargée de conseiller et de contrôler le respect du RGPD au sein d'une organisation. Il est le point de contact entre l'organisation, les personnes concernées et l'autorité de contrôle (la CNIL en France).

Désinformation

Diffusion délibérée et massive d'informations fausses ou trompeuses dans le but de manipuler l'opinion publique, nuire à une entité ou obtenir un avantage. Les technologies numériques en amplifient la portée.

Donnée personnelle

Toute information se rapportant à une personne physique identifiée ou identifiable. Une personne est identifiable dès qu'on peut la reconnaître, directement ou indirectement, par exemple par son nom ou une adresse IP.

Donnée sensible

Catégorie particulière de données personnelles dont le traitement présente des risques élevés pour les droits et libertés. Cela inclut les origines raciales, opinions politiques, santé, vie sexuelle, etc.

Droit à l'oubli

Droit reconnu par le RGPD qui permet à une personne de demander l'effacement de ses données personnelles lorsqu'elles ne sont plus nécessaires, ou si elle retire son consentement, sous certaines conditions.

Explicabilité de l'IA

Caractéristique d'un système d'intelligence artificielle dont les décisions ou prédictions peuvent être comprises et expliquées de manière intelligible par un être humain. C'est un enjeu éthique majeur.

Finalité du traitement

Principe clé du RGPD : les données personnelles doivent être collectées pour des finalités déterminées, explicites et légitimes. Leur utilisation ultérieure ne doit pas être incompatible avec ces finalités.

Hameçonnage (Phishing)

Technique de fraude qui vise à tromper l'utilisateur pour lui soutirer des informations personnelles (mots de passe, numéro de carte) en se faisant passer pour un organisme de confiance via un email, un SMS ou un site web falsifié.

IA éthique

Domaine qui étudie et vise à encadrer le développement et l'utilisation de l'intelligence artificielle de manière responsable. Il cherche à éviter les biais, assurer l'équité, la transparence et le respect des droits humains.

Infrastructure à Clés Publiques

Ensemble des rôles, politiques et technologies permettant de créer, gérer et révoquer les certificats numériques. Elle est le fondement de la sécurité des communications sur Internet.

Ingénierie sociale

Technique de manipulation psychologique visant à tromper une personne pour qu'elle divulgue des informations confidentielles ou effectue des actions compromettant la sécurité. L'humain est la cible, pas l'ordinateur.

Injection SQL Aveugle

Type d'injection SQL où l'attaquant ne reçoit pas les résultats directs de la requête dans la réponse de l'application. Il doit déduire des informations en observant le comportement de l'application (réponses vraies/fausses, délais de réponse).

Intégrité

En sécurité informatique, c'est la garantie que les données n'ont pas été altérées de manière non autorisée, accidentellement ou intentionnellement, pendant leur stockage ou leur transmission.

Jeton Anti-CSRF

Valeur secrète, unique et imprévisible générée par le serveur et intégrée dans les formulaires web. Le serveur la vérifie avant d'exécuter une action sensible, garantissant ainsi que la requête provient bien de l'application légitime et non d'un site malveillant.

Logiciel malveillant (Malware)

Programme informatique conçu pour endommager, espionner ou prendre le contrôle d'un système à l'insu de son utilisateur. C'est un terme générique qui regroupe les virus, les vers, les chevaux de Troie et les rançongiciels.

Minimisation des données

Principe du RGPD qui impose de ne collecter et traiter que les données strictement nécessaires à la finalité déclarée. On ne doit pas collecter de données 'au cas où'.

Modèle Zero Trust

Concept de sécurité qui part du principe qu'aucune entité (utilisateur, appareil, application) à l'intérieur ou à l'extérieur du réseau ne doit être implicitement fiable. Chaque demande d'accès doit être vérifiée, authentifiée et autorisée en fonction du contexte.

Mot de passe robuste

Mot de passe suffisamment long et complexe pour résister aux tentatives de piratage par force brute. Il combine généralement des majuscules, minuscules, chiffres et caractères spéciaux.

Pare-feu

Système (logiciel ou matériel) qui filtre le trafic entrant et sortant d'un réseau selon des règles de sécurité prédéfinies. Il agit comme une barrière de protection entre un réseau interne fiable et un réseau externe non fiable (comme Internet).

Pare-feu de Nouvelle Génération (NGFW)

Pare-feu avancé qui combine les fonctions traditionnelles (filtrage par port/protocole) avec une inspection approfondie du contenu des paquets. Il peut identifier et bloquer des applications spécifiques ou des menaces sophistiquées comme des malwares.

Pot de Miel (Honeypot)

Système informatique leurre conçu pour attirer et piéger les pirates. Il simule des services vulnérables ou des données sensibles pour étudier les techniques d'attaque, collecter des informations sur les attaquants et détourner les menaces des systèmes réels.

Principe de précaution (IA)

Approche éthique qui recommande la prudence et l'encadrement strict dans le développement et le déploiement des systèmes d'IA, en particulier lorsqu'ils présentent des risques potentiellement graves ou irréversibles.

Protection de la vie privée dès la conception

Principe qui impose d'intégrer la protection des données et le respect de la vie privée dès la phase de conception d'un produit, service ou système, et non après coup.

Rançongiciel

Type de logiciel malveillant qui chiffre les fichiers de la victime et demande une rançon en échange de la clé de déchiffrement. Il bloque l'accès aux données jusqu'au paiement, souvent en cryptomonnaie.

Ransomware

Logiciel malveillant qui chiffre les fichiers d'un ordinateur ou d'un réseau pour les rendre inaccessibles, puis exige une rançon en échange de la clé de déchiffrement.

RGPD

Règlement Général sur la Protection des Données. C'est la loi européenne qui encadre le traitement des données personnelles. Elle renforce les droits des personnes et impose des obligations aux organisations qui collectent des données.

Sécurité périmétrique

Approche de sécurité qui consiste à protéger un réseau en définissant et en sécurisant ses frontières (son périmètre) avec des dispositifs comme des pare-feu, pour empêcher les intrusions.

Sel Cryptographique

Chaîne de caractères aléatoire unique ajoutée à un mot de passe avant son hachage. Ce sel empêche les attaques par tables arc-en-ciel en rendant chaque hachage unique, même pour des mots de passe identiques.

Signature numérique

Procédé cryptographique qui permet de garantir l'intégrité d'un document numérique et l'identité de son signataire. Elle est créée avec la clé privée du signataire et vérifiée avec sa clé publique.

Table Arc-en-ciel

Table pré-calculée contenant une grande quantité de mots de passe possibles et leurs hachages correspondants. Elle permet de retrouver rapidement un mot de passe en clair à partir de son empreinte hachée, contournant ainsi le hachage.

Transparence algorithmique

Principe selon lequel le fonctionnement, les critères et parfois le code source d'un algorithme qui prend des décisions impactantes doivent être compréhensibles, explicables et accessibles aux personnes concernées.

Vigilance numérique

Attitude proactive et responsable consistant à adopter des comportements sécurisés et éthiques dans l'usage des outils numériques, pour se protéger et protéger les autres des risques associés.

VPN Site-à-Site

Type de réseau privé virtuel qui connecte deux réseaux locaux distincts (par exemple, le siège social et une agence) à travers un réseau public comme Internet. Le trafic entre les deux sites est chiffré, formant un réseau étendu sécurisé.

XSS Basé sur le DOM

Type d'attaque XSS où la vulnérabilité réside dans le code côté client (JavaScript) plutôt que dans le code serveur. La charge malveillante est exécutée lorsque le navigateur modifie le DOM de la page en fonction de données contrôlables, comme un fragment d'URL.

algorithmes

Algorithme A* (A étoile)

Algorithme de recherche de chemin informé, combinant le coût réel depuis le départ (comme Dijkstra) et une estimation heuristique du coût jusqu'à l'arrivée. Il est optimal si l'heuristique est admissible.

Algorithme de Bellman-Ford

Algorithme qui calcule les plus courts chemins depuis une source unique dans un graphe valué, même avec des poids négatifs. Il peut détecter la présence de cycles de poids négatif accessibles.

Algorithme de Floyd-Warshall

Algorithme de programmation dynamique qui calcule les plus courts chemins entre toutes les paires de sommets dans un graphe valué. Il gère les poids négatifs mais pas les cycles négatifs.

Algorithme de Ford-Fulkerson

Algorithme qui calcule le flot maximum pouvant passer d'une source à un puits dans un réseau de flot. Il fonctionne en trouvant itérativement des chemins augmentants dans le graphe résiduel.

Algorithme de Kahn

Algorithme de tri topologique qui utilise un compteur du degré entrant de chaque sommet. Il traite itérativement les sommets sans prédécesseur, les retire du graphe et met à jour les degrés.

Algorithme de Kosaraju

Algorithme qui identifie les composantes fortement connexes d'un graphe orienté en deux parcours en profondeur : un sur le graphe original, un sur le graphe transposé.

Algorithme de Kruskal

Algorithme qui calcule un arbre couvrant minimal en triant d'abord toutes les arêtes par poids croissant, puis en les ajoutant à l'arbre si elles ne créent pas de cycle. Il utilise une structure Union-Find.

Algorithme de Prim

Algorithme glouton qui calcule un arbre couvrant de poids minimal dans un graphe connexe valué. Il construit l'arbre progressivement en ajoutant à chaque étape l'arête de poids minimal connectant un sommet de l'arbre à un sommet extérieur.

Algorithme génétique

Algorithme d'optimisation inspiré de l'évolution naturelle. Une population de solutions candidates évolue par sélection, croisement et mutation pour converger vers une bonne solution.

Algorithme glouton

Algorithme qui fait à chaque étape le choix localement optimal, dans l'espoir que ces choix mèneront à une solution globale optimale. Il ne revient jamais sur ses décisions (pas de backtracking).

Algorithme glouton (avide)

Stratégie qui fait à chaque étape le choix localement optimal, espérant atteindre une solution globale optimale. Il est simple et efficace mais ne garantit pas toujours l'optimum global.

Arbre

Structure de données hiérarchique et non linéaire composée de nœuds. Elle possède un nœud racine, des nœuds internes et des nœuds feuilles. Chaque nœud (sauf la racine) a exactement un parent et peut avoir plusieurs enfants.

Arbre binaire

Un type d'arbre où chaque nœud parent a au maximum deux enfants, généralement appelés enfant gauche et enfant droit. Cette contrainte permet des algorithmes de parcours et de recherche efficaces.

Arbre binaire de recherche

Type d'arbre binaire organisé où, pour chaque nœud, tous les éléments de son sous-arbre gauche sont inférieurs et ceux de son sous-arbre droit sont supérieurs. Cela permet des recherches, insertions et suppressions efficaces.

Cas de base

Dans une fonction récursive, c'est la condition qui arrête les appels récursifs. Elle correspond au plus petit problème, directement résoluble sans nouvel appel récursif. Sans cas de base, la récursivité est infinie.

Complexité amortie

Analyse du coût moyen d'une opération sur une séquence d'opérations, plutôt que son pire cas isolé. Elle permet de montrer qu'une opération coûteuse est compensée par plusieurs opérations peu coûteuses.

Complexité logarithmique O(log n)

Temps d'exécution qui augmente très lentement avec la taille des données. L'algorithme divise la taille du problème par un facteur constant à chaque étape.

Complexité spatiale

Mesure théorique de la quantité de mémoire utilisée par un algorithme en fonction de la taille n des données d'entrée. Elle évalue l'espace supplémentaire nécessaire, en plus des données d'origine.

Complexité temporelle

Mesure théorique du temps d'exécution d'un algorithme en fonction de la taille n des données d'entrée. Elle s'exprime souvent en notation grand O (ex: O(n), O(log n), O(n²)) pour décrire le comportement dans le pire ou le cas moyen.

Feuille

Dans un arbre, un nœud feuille (ou nœud terminal) est un nœud qui n'a aucun enfant. C'est un nœud situé à l'extrémité d'une branche. Les feuilles représentent souvent les données finales.

FIFO

Acronyme de 'First In, First Out'. C'est le principe de fonctionnement d'une file : le premier élément ajouté est le premier à être retiré. L'ordre de sortie est identique à l'ordre d'entrée.

File

Structure de données linéaire basée sur le principe FIFO (First In, First Out - Premier entré, premier sorti). Les éléments sont ajoutés à l'arrière et retirés de l'avant, comme dans une file d'attente.

File (FIFO)

Structure de données abstraite respectant le principe 'First In, First Out' (premier entré, premier sorti). Les opérations principales sont 'enfiler' (enqueue) pour ajouter à la fin et 'défiler' (dequeue) pour retirer du début.

Fonction récursive

Une fonction qui, dans sa définition, contient un ou plusieurs appels à elle-même. Elle décompose un problème complexe en sous-problèmes identiques mais plus simples.

Graphe non orienté

Graphe dont les arêtes n'ont pas de direction ; elles représentent une relation symétrique entre deux sommets. Si A est connecté à B, alors B est connecté à A.

Graphe orienté

Graphe dont les arêtes (ou arcs) ont une direction, allant d'un sommet source à un sommet destination. Les relations ne sont pas nécessairement symétriques.

Graphe orienté acyclique (DAG)

Graphe orienté qui ne contient aucun cycle. C'est une structure fondamentale pour modéliser les dépendances, les ordonnancements ou les expressions arithmétiques.

Heuristique admissible

Fonction heuristique qui ne surestime jamais le coût réel pour atteindre le but. C'est une condition nécessaire pour garantir que l'algorithme A* trouve un chemin optimal.

LIFO

Acronyme de 'Last In, First Out'. C'est le principe de fonctionnement d'une pile : le dernier élément ajouté est le premier à être retiré. L'ordre de sortie est l'inverse de l'ordre d'entrée.

Liste

Structure de données linéaire qui contient une collection ordonnée d'éléments. On peut accéder, ajouter ou supprimer des éléments à n'importe quelle position. En Python, elle est représentée par le type 'list' entre crochets.

Liste d'adjacence

Représentation d'un graphe où pour chaque sommet, on stocke une liste des sommets qui lui sont adjacents (ses voisins). Elle est souvent plus efficace en mémoire pour les graphes peu denses.

Matrice d'adjacence

Représentation d'un graphe à l'aide d'une matrice carrée. L'élément à la ligne i et colonne j indique la présence (et éventuellement le poids) d'une arête entre le sommet i et le sommet j.

Mémorisation (Memoization)

Technique d'optimisation qui consiste à stocker les résultats d'appels de fonction coûteux pour les réutiliser sans les recalculer. C'est une mise en œuvre 'top-down' de la programmation dynamique.

Métaheuristique

Cadre algorithmique général et abstrait conçu pour guider des heuristiques spécifiques afin d'explorer efficacement l'espace des solutions de problèmes complexes, souvent d'optimisation.

Nœud

Élément de base d'une structure de données comme un arbre ou un graphe. Un nœud contient une valeur (ou des données) et des liens (références) vers d'autres nœuds (ses enfants dans un arbre, ses voisins dans un graphe).

Notation grand O

Notation mathématique utilisée en informatique pour décrire le comportement asymptotique d'un algorithme, c'est-à-dire comment son temps d'exécution ou son espace mémoire augmente quand la taille des données devient très grande.

Parcours en largeur

Algorithme de parcours d'un arbre ou d'un graphe qui explore tous les nœuds d'un niveau donné avant de passer au niveau suivant. Il utilise généralement une file d'attente.

Parcours en profondeur

Algorithme de parcours d'un arbre ou d'un graphe qui explore un chemin le plus loin possible avant de revenir en arrière (backtracking). Il utilise souvent une pile, explicitement ou via la récursivité.

Parcours topologique

Classement linéaire des sommets d'un graphe orienté acyclique tel que pour toute arête (u -> v), u apparaît avant v. Il modélise un ordonnancement avec contraintes de précédence.

Pile

Structure de données linéaire basée sur le principe LIFO (Last In, First Out - Dernier entré, premier sorti). Les opérations principales sont l'empilement (ajout) et le dépilement (retrait), qui se font uniquement au sommet.

Pile (LIFO)

Structure de données abstraite respectant le principe 'Last In, First Out' (dernier entré, premier sorti). Les deux opérations principales sont 'empiler' (push) pour ajouter et 'dépiler' (pop) pour retirer l'élément le plus récent.

Problème du sac à dos (Knapsack)

Problème d'optimisation classique : choisir un sous-ensemble d'objets (avec poids et valeur) à mettre dans un sac de capacité limitée, pour maximiser la valeur totale sans dépasser le poids maximal.

Programmation dynamique

Technique algorithmique pour résoudre des problèmes complexes en les décomposant en sous-problèmes plus simples, en évitant de recalculer plusieurs fois les mêmes résultats grâce à la mémorisation (mémoïsation).

Racine

Dans un arbre, c'est le nœud le plus haut, celui qui n'a pas de parent. C'est le point d'entrée unique pour accéder à tous les autres nœuds de l'arbre. Tout arbre non vide a exactement une racine.

Recherche dichotomique

Algorithme de recherche efficace qui nécessite une liste triée. Il compare l'élément du milieu de la liste à la cible, élimine la moitié des possibilités, et recommence sur la moitié restante jusqu'à trouver l'élément.

Recherche dichotomique (sur tableaux triés)

Algorithme de recherche extrêmement efficace dans une liste triée. Il divise l'espace de recherche en deux à chaque étape en comparant l'élément cible avec l'élément central.

Recherche séquentielle

Algorithme de recherche simple qui examine chaque élément d'une collection un par un, dans l'ordre, jusqu'à trouver la valeur cible ou atteindre la fin. Elle fonctionne sur n'importe quelle liste, triée ou non.

Retour sur trace

Technique algorithmique qui explore systématiquement toutes les solutions possibles à un problème. Elle avance en construisant une solution pas à pas, et revient en arrière (backtrack) dès qu'une partie de la solution s'avère invalide.

Sous-structure optimale

Propriété d'un problème signifiant qu'une solution optimale au problème global peut être construite à partir de solutions optimales de ses sous-problèmes. C'est une condition clé pour la programmation dynamique.

Structure de données

Manière organisée de stocker et organiser des données en mémoire pour en faciliter l'accès et la modification. Le choix de la structure impacte l'efficacité des algorithmes qui l'utilisent.

Structure Union-Find

Structure de données efficace pour gérer une partition d'ensembles. Elle permet de fusionner deux ensembles (union) et de savoir si deux éléments sont dans le même ensemble (find).

Tableau

Structure de données linéaire de taille fixe, contenant des éléments du même type, stockés en mémoire de façon contiguë. L'accès à un élément par son indice est très rapide. C'est la base de nombreuses structures.

Tri à bulles

Algorithme de tri qui parcourt répétitivement la liste en comparant les éléments adjacents et en les échangeant s'ils sont dans le mauvais ordre. Les plus grands éléments 'remontent' comme des bulles vers la fin de la liste.

Tri fusion

Algorithme de tri récursif stable qui utilise aussi 'diviser pour régner'. Il divise le tableau en deux moitiés, les trie récursivement, puis fusionne les deux moitiés triées pour obtenir le tableau final trié.

Tri par insertion

Algorithme de tri qui construit le tableau trié élément par élément. Il prend un élément non trié et l'insère à la bonne position dans la partie déjà triée, en décalant les autres éléments si nécessaire.

Tri par sélection

Algorithme de tri simple qui, à chaque étape, recherche le plus petit élément dans la partie non triée de la liste et l'échange avec le premier élément de cette partie. La liste se trie progressivement de gauche à droite.

Tri rapide

Algorithme de tri récursif et efficace utilisant la stratégie 'diviser pour régner'. Il choisit un pivot, partitionne le tableau en éléments plus petits et plus grands que le pivot, puis trie récursivement les deux sous-tableaux.

EdTech AI