Choisissez votre langue
Cours d'algorithmes et structures de données en Python
+ de 400 000 professionnels sur la plateforme
Exclusif aux entreprises

Cours d'algorithmes et structures de données en Python

4,5

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.

Dedika pour les apprenants

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

ActemiumFR
Nunner LogisticsNL
GT Constructora GeotécnicaCR
Sydel StarBR
Metrô de São PauloBR
Aguas AndinasCL
DSMIN
MeridianbetRS
CDHCN

Contenu du cours

8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

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 2Voir les détails

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 3Voir les détails

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 4Voir les détails

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 5Voir les détails

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 6Voir les détails

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 7Voir les détails

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 8Voir les détails

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.

Certification

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