Bac NSI flashcards
Bac NSI · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Machine de Turing
- Modèle abstrait de calcul composé d'un ruban infini, d'une tête de lecture-écriture et d'états. Elle formalise la notion de calcul effectif et fonde la thèse de Church-Turing.
- Architecture de von Neumann
- Modèle où programme et données sont stockés dans la même mémoire, lue par un processeur qui exécute les instructions séquentiellement. C'est la base des ordinateurs actuels.
- Loi de Moore
- Constat énoncé en 1965 : le nombre de transistors gravés sur une puce double environ tous les deux ans, ce qui décrit la croissance exponentielle de la puissance de calcul.
- Complément à deux
- Codage des entiers signés sur n bits : les positifs s'écrivent normalement, les négatifs par inversion des bits puis ajout de 1. L'intervalle est [−2^(n−1), 2^(n−1) − 1].
- Nombre de valeurs sur n bits
- Avec n bits, on peut coder exactement 2^n valeurs distinctes, de 0 à 2^n − 1 en non signé. Par exemple, 8 bits donnent 256 valeurs de 0 à 255.
- Norme IEEE 754
- Standard de représentation des nombres à virgule flottante : signe, exposant biaisé et mantisse. En simple précision, 1 bit de signe, 8 bits d'exposant et 23 bits de mantisse.
- UTF-8
- Encodage de caractères Unicode sur 1 à 4 octets selon le point de code. Il est compatible avec ASCII pour les 128 premiers caractères et reste l'encodage dominant du Web.
- Dépassement d'entier
- Situation où le résultat d'une opération dépasse l'intervalle représentable sur le nombre de bits fixé. Le résultat est tronqué modulo 2^n, produisant une valeur fausse sans erreur visible.
- Liste et tuple en Python
- Une liste est une séquence mutable, modifiable après création. Un tuple est immuable : on ne peut pas changer ses éléments, ce qui le rend adapté aux données fixes comme un enregistrement.
- Alias de liste
- Affecter b = a ne copie pas la liste : les deux noms désignent le même objet. Modifier b modifie donc a. Pour copier, utiliser a[:] ou list(a).
- Dictionnaire Python
- Structure associative qui associe des clés immuables et uniques à des valeurs. L'accès d[clé] est en temps constant moyen ; l'itération parcourt les clés dans l'ordre d'insertion.
- Pile et file
- Une pile suit le principe dernier entré, premier sorti (LIFO) : append et pop. Une file suit premier entré, premier sorti (FIFO) : append et popleft sur une deque.
- Matrice en liste de listes
- Tableau à deux dimensions représenté par une liste de lignes, accédé par M[i][j]. Il faut créer chaque ligne séparément, sinon les lignes partagent la même liste.
- Format CSV
- Format texte tabulaire où chaque ligne est un enregistrement et les champs sont séparés par un caractère, souvent la virgule. La première ligne contient fréquemment les noms de colonnes.
- Filtrage et projection
- Le filtrage sélectionne des lignes vérifiant un prédicat ; la projection ne conserve que certaines colonnes. Ces deux opérations de base transforment une table sans la réorganiser globalement.
- Jointure de tables
- Opération qui fusionne deux tables sur un attribut commun, par exemple un identifiant. En Python, on indexe une table dans un dictionnaire pour éviter un double parcours coûteux.
- Agrégation de données
- Regroupement de lignes partageant une valeur d'attribut, puis calcul d'un indicateur par groupe : effectif, somme ou moyenne. On l'implémente souvent avec un dictionnaire accumulateur.
- Requête HTTP GET
- Méthode demandant une ressource au serveur ; les paramètres sont placés dans l'URL après le point d'interrogation. Elle ne doit pas modifier l'état du serveur et reste visible dans l'historique.
- Requête HTTP POST
- Méthode envoyant des données dans le corps de la requête, souvent issues d'un formulaire. Les paramètres ne figurent pas dans l'URL ; elle sert aux actions qui modifient l'état du serveur.
- Code de statut HTTP
- Nombre à trois chiffres renvoyé par le serveur : 200 succès, 301 redirection, 404 ressource introuvable, 500 erreur interne. Il indique le résultat du traitement de la requête.
- Cookie
- Petit fichier texte déposé par un site et renvoyé automatiquement par le navigateur lors des requêtes suivantes vers ce domaine. Il permet de maintenir une session ou des préférences.
- Validation côté client
- Vérification des données saisies par du code JavaScript exécuté dans le navigateur, avant envoi. Elle améliore l'ergonomie mais doit toujours être doublée d'une validation côté serveur.
- Cycle fetch-decode-execute
- Déroulement d'une instruction par le processeur : charger l'instruction depuis la mémoire, la décoder, l'exécuter, puis écrire le résultat. Ce cycle se répète au rythme de l'horloge.
- Rôle du système d'exploitation
- Logiciel qui gère les ressources matérielles : ordonnancement des processus, allocation de la mémoire, système de fichiers, pilotes de périphériques et droits des utilisateurs.
- Hiérarchie mémoire
- Organisation en niveaux : registres, caches, mémoire vive, stockage persistant. Plus un niveau est proche du processeur, plus il est rapide et petit, ce qui justifie la mise en cache.
- Tube Unix
- Symbole | qui relie la sortie standard d'une commande à l'entrée standard de la suivante. Il permet de composer des traitements simples, par exemple ls | grep txt.
- Spécification de fonction
- Description écrite du contrat d'une fonction : types et rôle des paramètres, valeur de retour, préconditions et effets de bord éventuels. Elle guide l'usage et les tests.
- Test unitaire
- Vérification automatique d'une fonction sur des entrées choisies, souvent avec assert. Un bon jeu de tests couvre les cas normaux et les cas limites comme la liste vide.
- Récursivité
- Technique où une fonction s'appelle elle-même sur un sous-problème plus petit, jusqu'à un cas de base. Sans cas de base atteignable, l'exécution provoque un débordement de pile.
- Recherche dichotomique
- Recherche d'une valeur dans une séquence triée en comparant au milieu puis en éliminant la moitié inutile. Sa complexité est O(log n), bien meilleure que la recherche linéaire en O(n).
- Complexité algorithmique
- Estimation du nombre d'opérations élémentaires en fonction de la taille n des données, en ignorant constantes et termes négligeables. Elle décrit le comportement asymptotique, pas un temps exact.
- Tri par fusion
- Algorithme diviser pour régner : couper la liste en deux, trier chaque moitié récursivement, puis fusionner. Complexité O(n log n) dans tous les cas, avec mémoire auxiliaire linéaire.