
Cours d'algorithmes et structures de données en Python
Maîtrisez Python et les Structures de Données et Algorithmes à partir de la base — sans raccourcis, sans fioritures. Ce cours vous fait passer de la rédaction de votre premier script Python à la résolution de problèmes complexes de graphes et de programmation dynamique. Que vous visiez les meilleures entreprises de technologie ou que vous souhaitiez perfectionner vos compétences en génie logiciel, voici la base technique complète dont vous avez besoin.
Ce que votre équipe va maîtriser:
Vous allez bâtir une base solide en Python couvrant la syntaxe, les collections et la conception orientée objet avant de passer aux sujets centraux des SDA. Vous implémenterez des tableaux, des listes chaînées, des piles, des files d'attente, des arbres et des graphes entièrement à partir de zéro. Vous analyserez la complexité temporelle et spatiale à l'aide de la notation Grand O pour chaque algorithme majeur. Vous maîtriserez le tri, la recherche, la récursion et la programmation dynamique avec du code réel. Vous pratiquerez également des motifs de programmation compétitive et des techniques d'entretien simulé conçues pour vous préparer aux processus d'embauche technique dans les grandes entreprises de technologie.
Comment votre équipe apprend de façon pratique Cours d'algorithmes et structures de données en Python
Comment votre équipe pratique Cours d'algorithmes et structures de données en Python
Des professionnels de ces entreprises étudient sur Dedika









Contenu du cours
8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsFondements de la programmation Python
Fondements de la programmation Python
Leçon 1 • Fonctions et portée
Définit des fonctions réutilisables avec paramètres, valeurs de retour et règles de portée. Prépare les étudiants à encapsuler la logique DSA dans des unités de test propres.
Leçon 2 • Contrôle de flux et itération
Enseigne les branchements if/elif/else, les boucles for et while, et les instructions de contrôle de boucle. Permet aux étudiants d'exprimer des logiques algorithmiques en Python.
Leçon 3 • Gestion des erreurs et débogage
Présente les exceptions, les blocs try/except et les outils de débogage. Équipe les étudiants pour écrire du code robuste et diagnostiquer les échecs dans des programmes complexes.
Leçon 4 • Types de données de base et variables
Couvre les entiers, les flottants, les chaînes, les booléens et le transtypage. Fournit les primitives de données utilisées dans toutes les implémentations d'algorithmes à venir.
Leçon 5 • Configuration de l'environnement Python
Installez Python, configurez un environnement virtuel et choisissez un IDE. Établit la chaîne d'outils dont dépend chaque chapitre suivant.
Chapitre 2MasquerCacher les détailsVoir les détailsCollections et compréhensions en Python
Collections et compréhensions en Python
Leçon 1 • Itérateurs, générateurs et évaluation paresseuse
Explique le protocole d'itérateur, les fonctions génératrices et yield. Permet un parcours efficace en mémoire de grands ensembles de données dans les problèmes DSA.
Leçon 2 • Listes et tuples en profondeur
Explore l'indexation, le tranchage, la mutation et l'immutabilité des tuples. Ces types de séquences sous-tendent les structures de données basées sur des tableaux abordées plus tard.
Leçon 3 • Dictionnaires et ensembles
Couvre le stockage basé sur les tables de hachage, les opérations clé-valeur et l'algèbre des ensembles. Soutient directement les implémentations de tables de hachage et de graphes d'adjacence.
Leçon 4 • Compréhensions de listes et de dictionnaires
Enseigne la syntaxe concise de compréhension pour filtrer et transformer les collections. Réduit le code standard dans les implémentations d'algorithmes tout au long du cours.
Leçon 5 • Tri, recherche et algorithmes intégrés
Utilise sorted(), min(), max() et les fonctions clés pour traiter les collections. Fait le pont entre les fonctions intégrées de Python et les algorithmes de tri personnalisés étudiés ensuite.
Chapitre 3MasquerCacher les détailsVoir les détailsAnalyse d'algorithmes et complexité
Analyse d'algorithmes et complexité
Leçon 1 • Introduction à l'analyse d'algorithmes
Définit l'exactitude, l'efficacité et le besoin d'analyse formelle des algorithmes. Établit l'état d'esprit analytique appliqué à chaque structure de données et algorithme à venir.
Leçon 2 • Big-O, Big-Omega et Big-Theta
Formalise la notation asymptotique et les classes de complexité courantes. Fournit le vocabulaire utilisé pour décrire chaque algorithme dans les chapitres suivants.
Leçon 3 • Analyse des boucles et des appels récursifs
Enseigne le comptage d'étapes pour les boucles et les relations de récurrence pour la récursivité. Prépare directement les étudiants à analyser les algorithmes de tri et les arbres.
Leçon 4 • Profilage du code Python
Utilise timeit, cProfile et memory_profiler pour mesurer le rendement réel. Relie la complexité théorique au comportement d'exécution Python mesurable.
Leçon 5 • Complexité spatiale et compromis
Distingue l'espace auxiliaire de l'espace total et explore les compromis temps-espace. Guide les décisions de conception lorsque les contraintes de mémoire importent.
Chapitre 4MasquerCacher les détailsVoir les détailsStructures de données linéaires
Structures de données linéaires
Leçon 1 • Comparaison de complexité des structures linéaires
Compare la complexité temporelle et spatiale de toutes les structures linéaires étudiées. Permet une sélection éclairée des structures pour les problèmes de conception d'algorithmes.
Leçon 2 • Listes chaînées simples et doubles
Construit des classes Node et des opérations de liste incluant insertion, suppression et parcours. Introduit la pensée basée sur les pointeurs essentielle pour les arbres et les graphes.
Leçon 3 • Piles : implémentation et applications
Implémente des piles à l'aide de listes et de listes chaînées, puis les applique à des problèmes réels. Démontre la sémantique LIFO utilisée en récursivité, analyse syntaxique et retour sur trace.
Leçon 4 • Files d'attente, deques et files de priorité
Couvre les files FIFO, les deques doublement terminées et les files de priorité basées sur des tas. Prépare les étudiants aux problèmes BFS, d'ordonnancement et d'algorithmes gloutons.
Leçon 5 • Tableaux et tableaux dynamiques
Couvre les tableaux statiques, les listes Python en tant que tableaux dynamiques et le redimensionnement amorti. Établit la structure de base que tous les autres types linéaires étendent.
Chapitre 5MasquerCacher les détailsVoir les détailsRécursivité et algorithmes de tri
Récursivité et algorithmes de tri
Leçon 1 • Algorithmes de tri quadratiques
Implémente les tris à bulles, par sélection et par insertion avec une analyse étape par étape. Fournit la base O(n²) par rapport à laquelle les tris plus rapides sont mesurés.
Leçon 2 • Algorithmes de recherche
Implémente la recherche linéaire et la recherche binaire avec des preuves de complexité. Relie la recherche aux données triées et aux problèmes d'entrevue réels.
Leçon 3 • Notions fondamentales sur la récursivité
Définit les cas de base, les cas récursifs et la pile d'appels. Construit le modèle mental requis pour le parcours d'arbres et les algorithmes diviser-pour-régner.
Leçon 4 • Tri en temps linéaire et hybride
Couvre le tri par comptage, le tri par base et le Timsort utilisé dans la fonction de tri intégrée de Python. Élargit la boîte à outils des étudiants au-delà du tri par comparaison.
Leçon 5 • Tri diviser-pour-régner
Implémente le tri par fusion et le tri rapide, en dérivant leur complexité O(n log n). Démontre comment la récursivité permet un tri efficace à grande échelle.
Chapitre 6MasquerCacher les détailsVoir les détailsArbres et structures de données hiérarchiques
Arbres et structures de données hiérarchiques
Leçon 1 • Arbres binaires de recherche
Implémente l'insertion, la recherche et la suppression dans un ABR avec une analyse moyenne O(log n). Démontre le stockage et la récupération de données ordonnées à l'aide d'une structure arborescente.
Leçon 2 • Tries et arbres de préfixes
Construit un trie pour l'insertion de chaînes, la recherche et la correspondance de préfixes. Permet des solutions efficaces de correction automatique et de recherche dans un dictionnaire.
Leçon 3 • Arbres binaires et parcours
Définit la terminologie des arbres et implémente les parcours en ordre, préordre et postordre. Établit le modèle de parcours récursif utilisé dans tous les algorithmes d'arbres.
Leçon 4 • Tas et opérations sur les tas
Construit un tas-max et un tas-min, implémente l'entassement et le tri par tas. Soutient directement les implémentations de files de priorité et d'algorithmes gloutons.
Leçon 5 • Arbres équilibrés : AVL et rouge-noir
Explique l'équilibrage par rotation dans les arbres AVL et les règles de couleur dans les arbres rouge-noir. Garantit une performance O(log n) dans le pire des cas pour les ensembles de données dynamiques.
Chapitre 7MasquerCacher les détailsVoir les détailsGraphes et algorithmes de graphes
Graphes et algorithmes de graphes
Leçon 1 • Problèmes avancés sur les graphes
Couvre les composantes fortement connexes, la vérification de bipartition et les bases du flux réseau. Étend les compétences en graphes à des catégories de problèmes complexes du monde réel.
Leçon 2 • Représentations et terminologie des graphes
Définit les graphes orientés, non orientés, pondérés et cycliques avec des représentations par listes et matrices d'adjacence. Établit la base de toutes les implémentations d'algorithmes de graphes.
Leçon 3 • Algorithmes de plus court chemin
Implémente les algorithmes de Dijkstra et Bellman-Ford pour les graphes pondérés. Équipe les étudiants pour résoudre des problèmes de routage et de minimisation de coûts.
Leçon 4 • Arbres couvrants minimaux
Implémente les algorithmes de Kruskal et Prim en utilisant l'union-find et les files de priorité. Résout les problèmes de conception de réseau nécessitant une connectivité à coût minimal.
Leçon 5 • Recherche en largeur et en profondeur
Implémente BFS avec une file et DFS avec récursivité et une pile. Couvre les composantes connexes, la détection de cycles et le tri topologique.
Chapitre 8MasquerCacher les détailsVoir les détailsProgrammation dynamique et techniques avancées
Programmation dynamique et techniques avancées
Leçon 1 • Algorithmes gloutons et retour sur trace
Implémente des stratégies gloutonnes pour l'ordonnancement d'intervalles et le codage de Huffman, ainsi que le retour sur trace pour les N-Reines et les sous-ensembles. Complète la boîte à outils de base de conception d'algorithmes.
Leçon 2 • Tabulation et DP ascendante
Construit des tables DP de manière itérative pour le rendu de monnaie, la montée d'escaliers et les chemins dans une grille. Élimine la surcharge de la récursivité et clarifie la logique de transition d'état.
Leçon 3 • Introduction à la programmation dynamique
Définit les sous-problèmes qui se chevauchent et la sous-structure optimale comme prérequis à la DP. Compare la DP au diviser-pour-régner pour clarifier quand chacun s'applique.
Leçon 4 • Mémorisation et DP descendante
Convertit la récursivité naïve en solutions mémorisées à l'aide de dictionnaires et de functools.lru_cache. Démontre une réduction spectaculaire de la complexité sur Fibonacci et des problèmes similaires.
Leçon 5 • Motifs DP classiques
Résout les problèmes de sac à dos, de plus longue sous-séquence commune et de distance d'édition. Enseigne des modèles DP réutilisables applicables à un large éventail de questions d'entrevue.
Votre certificat valide de réussite
Ce cours est pour vous :
Personne en reconversion professionnelle : souhaite acquérir une base technique structurée pour accéder à des postes en génie logiciel.
Étudiant en informatique : a besoin de pratique de programmation concrète au-delà de ce que les cours magistraux offrent.
Développeur ou développeuse autodidacte : peut créer des applications, mais éprouve des difficultés avec la résolution de problèmes algorithmiques sous pression.
Analyste de données : prêt à approfondir ses compétences en programmation pour assumer des responsabilités de niveau ingénieur.
Nouveau diplômé : se préparer à passer des entrevues techniques dans des entreprises technologiques concurrentielles sous peu.
Programmeur·se amateur·trice : curieux·se de savoir comment les systèmes logiciels de qualité professionnelle sont en fait conçus en interne.
Cours connexes
FAQ
Qui est Dedika?
Le certificat est-il valable au Canada ?
Les cours sont-ils gratuits?
Quelle est la charge de travail des cours?
Comment sont les cours?
Comment fonctionnent les cours?
Quelle est la durée des cours?
Quel est le coût ou le prix des cours?
Qu’est-ce qu’un cours EAD ou en ligne et comment ça fonctionne?
Cours PDF



















