Terminale - 12 chapitres
Listes chaînées, piles et files
Structures de données linéaires : listes chaînées, piles (LIFO), files (FIFO), implémentation en Python
Arbres binaires et arbres binaires de recherche
Arbres binaires, vocabulaire, arbres binaires de recherche (ABR), opérations et propriétés
Graphes : représentation et parcours
Graphes orientés et non orientés, matrices d'adjacence, listes d'adjacence, parcours BFS et DFS
Bases de données relationnelles et SQL avancé
Modèle relationnel, schéma, clés primaires et étrangères, requêtes SQL avancées (jointures, agrégation)
Composants, réseaux et sécurisation
Composants d'un ordinateur, modèle de Von Neumann, réseaux (protocoles, adressage IP), sécurisation
Processus, ordonnancement et interblocage
Gestion des processus, états d'un processus, algorithmes d'ordonnancement, interblocage (deadlock)
Protocoles de routage et sécurisation des communications
Routage IP, protocoles RIP et OSPF, modèle TCP/IP, chiffrement symétrique et asymétrique, certificats
Programmation orientée objet en Python
Classes, attributs, méthodes, encapsulation, héritage, polymorphisme en Python
Calculabilité, décidabilité et mise au point
Problèmes décidables et indécidables, problème de l'arrêt, tests, assertions, mise au point de programmes
Algorithmes sur les arbres
Parcours d'arbres (préfixe, infixe, suffixe, largeur), insertion et recherche dans un ABR
Programmation dynamique et recherche textuelle
Principe de la programmation dynamique, mémoïsation, exemples classiques, algorithme de recherche textuelle naïve
Algorithmes sur les graphes
Parcours en largeur (BFS), parcours en profondeur (DFS), algorithme de Dijkstra pour les plus courts chemins