BUT Informatique flashcards
BUT Informatique · Build recall with a focused review session.
33 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Complexité de la recherche dichotomique
- Sur un tableau trié de n éléments, la recherche dichotomique divise l'intervalle par deux à chaque étape : complexité O(log n), contre O(n) pour une recherche linéaire.
- Différence surcharge et redéfinition
- La surcharge utilise le même nom avec des paramètres différents et est résolue à la compilation. La redéfinition garde la même signature dans une sous-classe et est résolue à l'exécution.
- Rôle du bloc finally
- En Java, le bloc finally s'exécute après le try, que celui-ci se termine normalement, par return ou par exception. Il sert typiquement à libérer des ressources.
- Contrat equals et hashCode
- Deux objets égaux selon equals doivent avoir le même hashCode. Sinon, un HashSet ou une HashMap peut ne pas retrouver un objet pourtant présent logiquement.
- Structure d'un test unitaire
- Un test unitaire suit Arrange-Act-Assert : préparer les données, exécuter l'action testée, vérifier le résultat par une assertion. Il doit être isolé et déterministe.
- Cas de base en récursivité
- Une fonction récursive doit contenir un cas de base atteignable qui arrête les appels. Sans lui, la pile d'appels se remplit et provoque un débordement.
- Notation grand O
- O(f) désigne une borne supérieure asymptotique : le temps croît au plus comme f quand n grandit. On ignore les constantes et les termes d'ordre inférieur.
- Complexité d'une boucle imbriquée
- Deux boucles imbriquées parcourant chacune n éléments exécutent n × n opérations, soit une complexité O(n²). Trois niveaux imbriqués donnent O(n³).
- Principe de la mémoïsation
- La mémoïsation stocke les résultats déjà calculés d'une fonction pour éviter de les recalculer. Elle transforme par exemple Fibonacci récursif de O(2^n) en O(n).
- Borne inférieure des tris comparatifs
- Tout algorithme de tri par comparaison nécessite au moins Ω(n log n) comparaisons dans le cas général, car il existe n! ordres possibles à distinguer.
- Accès tableau contre liste chaînée
- Un tableau offre un accès indexé en O(1) mais une insertion au milieu en O(n). Une liste chaînée insère en O(1) en tête mais accède en O(n).
- Loi d'Amdahl
- Le gain maximal d'une parallélisation est borné par speedup ≤ 1/(s + (1−s)/p), où s est la fraction séquentielle et p le nombre de processeurs.
- Rôle du profiling
- Le profiling mesure où le programme passe son temps (fonctions, allocations, entrées/sorties). Il permet d'optimiser le goulot réel plutôt qu'une partie supposée lente.
- TCP contre UDP
- TCP est orienté connexion, fiable et ordonné. UDP est sans connexion, sans garantie de livraison ni d'ordre, mais avec moins de latence et d'en-tête.
- Calcul des hôtes d'un sous-réseau
- Pour un préfixe IPv4 /p, le nombre d'adresses est 2^(32−p) et le nombre d'hôtes utilisables est 2^(32−p) − 2, car adresse réseau et broadcast sont réservées.
- Enregistrements DNS principaux
- A associe un nom à une IPv4, AAAA à une IPv6, CNAME crée un alias, MX désigne le serveur de messagerie, NS le serveur de noms autoritaire du domaine.
- Authentification par clé SSH
- Le client conserve sa clé privée ; sa clé publique est déposée dans authorized_keys du serveur. Le serveur vérifie la signature sans jamais recevoir la clé privée.
- Permissions Unix en notation octale
- r vaut 4, w vaut 2, x vaut 1. chmod 755 donne rwx au propriétaire et r-x au groupe et aux autres. chown change le propriétaire du fichier.
- Rôle des chaînes iptables
- INPUT filtre les paquets entrants, OUTPUT les sortants, FORWARD les paquets routés. Chaque règle applique ACCEPT, DROP ou REJECT selon les critères.
- Clé primaire et clé étrangère
- La clé primaire identifie chaque ligne de façon unique et non nulle. La clé étrangère référence une clé primaire d'une autre table et assure l'intégrité référentielle.
- Différence WHERE et HAVING
- WHERE filtre les lignes avant le regroupement et ne peut pas utiliser d'agrégat. HAVING filtre les groupes après GROUP BY et accepte COUNT, SUM ou AVG.
- Propriétés ACID
- Une transaction respecte Atomicité (tout ou rien), Cohérence (contraintes préservées), Isolation (pas d'interférence entre transactions) et Durabilité (effets persistants après commit).
- Comportement de NULL en SQL
- NULL représente une valeur inconnue : toute comparaison avec NULL renvoie UNKNOWN, pas vrai. On teste avec IS NULL. Les agrégats ignorent les NULL sauf COUNT(*).
- Traduction d'une association N:M
- Une association plusieurs-à-plusieurs entre deux entités devient une table de jointure contenant deux clés étrangères vers les tables d'origine, formant souvent la clé primaire.
- Effet d'un index en base
- Un index accélère les recherches et jointures (souvent en O(log n)) mais ralentit les insertions et mises à jour et consomme de l'espace disque.
- Troisième forme normale
- Une table est en 3FN si elle est en 2FN et si aucun attribut non clé ne dépend d'un autre attribut non clé, éliminant les dépendances transitives.
- Cycle en V
- Le cycle en V enchaîne les phases de spécification, conception et réalisation puis les tests unitaires, d'intégration et de validation, chaque phase de test validant une phase de conception.
- Chemin critique d'un projet
- Le chemin critique est la plus longue séquence de tâches dépendantes. Sa durée fixe la durée minimale du projet ; tout retard sur ce chemin retarde la livraison.
- Rôles Scrum
- Le Product Owner priorise le backlog produit, le Scrum Master facilite le processus et lève les obstacles, l'équipe de développement réalise l'incrément à chaque sprint.
- Triangle de contraintes projet
- Périmètre, coût et délai sont interdépendants. Modifier l'un impose d'ajuster au moins un autre, sinon la qualité du livrable est dégradée.
- Vélocité d'une équipe agile
- La vélocité est le nombre de story points livrés par itération. Elle sert à prévoir le nombre d'itérations nécessaires pour terminer le backlog.
- Convention de commit Git
- Un message suit type(scope): description, avec des types comme feat, fix, docs, refactor ou test. Cela rend l'historique lisible et automatise la génération du changelog.
- Règle de la revue de code
- La revue de code vérifie la correction, la lisibilité et le partage de connaissance sur de petits diffs. Elle ne doit pas réécrire l'historique d'une branche partagée.