Compléments au programme des épreuves 1 et 2 d’admissibilité
Architecture
Circuits combinatoires/séquentiels, machine de Mealy, machine de Moore.
Description et fonctionnement d’une machine de von Neumann (introduction à la programmation
assembleur : instructions de calcul, instructions de branchement, accès à la mémoire et aux registres,
instructions système).
Exécution d’un appel de fonction, concept de pile.
Hiérarchie mémoire.
Typologie des machines parallèles (classification de Flynn, classification de Raina, machines multi-coeurs, supercalculateurs).
Représentation des nombres à virgule flottante. Problèmes de précision des calculs flottants et de
dépassement de capacité. Notion de mode d’arrondi.
Bases de données
Création, suppression, modification de tables au travers du langage de requêtes SQL.
Opérateurs de l’algèbre relationnelle et leurs propriétés : application à l’optimisation de requêtes.
Calculabilité, complexité
Modèle de calcul. Machines de Turing : définition, principales variantes (ruban biinfini vs infini, machine à plusieurs rubans). La machine de Turing est le modèle de calcul retenu pour l’étude des notions
qui suivent.
Calculabilité : universalité, décidabilité, indécidabilité. Problème de l’arrêt.
Complexité : complexité en temps et en espace, classe P. Acceptation par certificat, classe NP. Réduction polynomiale. NP-complétude. Théorème de Cook.
La notion de machine de Turing non déterministe n’est pas exigible aux épreuves 1, 2 et 3.a de l’écrit, ni aux épreuves orales.
Chaîne de compilation
Analyse lexicale, analyse syntaxique (principes de l’analyse descendante).
Analyse sémantique élémentaire (arbre de syntaxe abstraite, environnement, analyse de portée, typage).
Génération de code vers une machine à pile.
Génie logiciel
Assertions, jeux de tests, tests en boîte blanche/noire.
Notion de test fonctionnel appliqué aux tests unitaires, comportementaux et d’intégration.
Notion de test non-fonctionnel : tests de performances, tests d’intrusions.
Informatique et société
Points clés du RGPD.
Impact environnemental du numérique. Notion d’écoconception.
Enjeux d’éthique du numérique et valeurs sous-jacentes.
Cybersécurité : notions de vulnérabilité, menace, attaque ; chiffrement symétrique et asymétrique.
Intelligence artificielle
Mesures de similarité pour l’apprentissage machine.
Données d’entraînement et données de test, choix des descripteurs.
Caractéristiques des réseaux et performances associées :
réseaux d’accès, réseaux de coeur ;
topologies de réseaux : point à point, à diffusion ;
performances : débit de transmission, délai, taux de perte.
Modélisation en couches : OSI, TCP/IP, encapsulation.
Transmission :
Adressage : adresses MAC, IPv4, IPv6 ;
Routage : principes ; système de nom de domaine (DNS) ; routage à vecteur de distance (algorithme
de Bellman-Ford), routage par état de liens (algorithme de Dijkstra) ;
Solutions de transport : principes ; TCP, UDP.
Programmation réseau : API Socket en Python et en C, à l’aide d’un aide-mémoire fourni.
Systèmes d’exploitation
Séquence de démarrage : de l’initialisation aux processus utilisateur.
Abstractions fournies par le système : accès au matériel, répartition équitable des ressources, accès aux
fichiers (dont open, read, write et close).
Liens entre système d’exploitation et applications : adressage physique et virtuel, notion de pagination,
MMU, interruptions, appels systèmes, gestion des processus (dont fork, wait, waitpid), gestion du temps
(ticks et implémentation du temps partagé).
Isolation et interaction entre les processus : espace mémoire d’une application, communication entre applications (pipe, mmap).
Concurrence : modèles de cohérence (forte, faible, PRAM et au relâchement) et d’équité. Construction
des mutex et sémaphores à partir des instructions atomiques test and set. Schéma lecteurs rédacteurs.