Objectifs
Développer une expertise avancée en algorithmique avec Python en maîtrisant la complexité des algorithmes, les structures de données adaptées, la récursivité, les graphes et les arbres, afin d'optimiser les performances des programmes et de résoudre efficacement des problèmes complexes
Compétences visées
- Mesurer la complexité d’un algorithme avec la notation BigO
- Choisir les algorithmes et les structure de données les plus adaptés à ses problèmes et la volumétrie de ses données
- Appliquer des techniques d’optimisation de code et de réduction de complexité
- Utiliser la récursivité
- Manipuler efficacement des graphes et des arbres
- Rechercher et ordonner des données
- Appliquer des solutions à des problèmes complexes
- Choisir les algorithmes et les structure de données les plus adaptés à ses problèmes et la volumétrie de ses données
- Appliquer des techniques d’optimisation de code et de réduction de complexité
- Utiliser la récursivité
- Manipuler efficacement des graphes et des arbres
- Rechercher et ordonner des données
- Appliquer des solutions à des problèmes complexes
Public
Tout développeur ou scientifique ayant une expérience du langage Python
Pré-requis
Pour suivre ce stage dans de bonnes conditions, il est recommandé d'avoir suivi en amont la formation Python – Bases et introduction aux librairies scientifiques ou d'avoir atteint par la pratique un niveau équivalent
Méthode pédagogique
Pédagogie active mêlant exposés, exercices et applications pratiques dans le logiciel Python.
Programme
- Complexité des algorithmes : 0,5 jour
- Comprendre la notation BigO
- Mesurer la complexité d’un algorithme
- Premières techniques pour diminuer la complexité d’un algorithme
Calcul et vérification par la mesure de la complexité de plusieurs algorithmes. Simplification d’un algorithme de complexité quadratique pour le rendre linéaire.
- Rappels et manipulation de base des structures de données: 0,5 jour
- Tableaux indicés
- Tableaux associatifs/dictionnaires
- Files et piles
- Skip list
- Listes chaînées
- Arbres et graphes
Création, modification, recherche, insertion, suppression d’éléments avec chaque structure et mesure de leurs complexités respectives.
- Récursivité: 0,5 jour
- Prise en mains et cas d’utilisations: suites numériques, analyseurs syntaxiques, parcours d’arbres, …
- Bien comprendre la récursivité
- Mise en oeuvre top down et bottom up
- Limites
Implémentation et explication de nombreux cas pratiques: suite numérique, tour de Hanoï, création d’un analyseur syntaxique, trouver toutes les solutions du jeu le compte est bon
- Les graphes: 1,5 jour
- Définition d’un graphe, nœuds, arrêtes, directionnels, …
- Pourquoi utiliser un graphe
- Exemples d'algorithmes : recherche de relations, du plus court/long chemin, problème du voyageur de commerce, …
- Matrice d’adjacence
- Visualiser un graphe
- Parcourir un graphe
- Recherche dans un graphe
- Graphes pondérés
- Présentation et mise en œuvre d’algorithmes: Djikstra, chemins hamiltoniens, 2-opt, …
Implémentation de la recherche du plus court chemin (et son tracé) dans un graphe de dimension réelle de toutes les rues de Paris. Recherche et parcours d’informations.
- Les arbres: 1 jour
- Définition d’un arbre
- Présentation des arbres binaires: parcours en ordre, préfixé et postfixé
- Recherche dans un arbre binaire
- Insertion et suppression
- Utilisation d’arbres Trie/m-aire
Création, manipulation et recherche dans des arbres.
- Application à des problèmes réels : 1 jour
- Mise en œuvre de différents algorithmes de tri et de recherche
- Création d’un analyseur syntaxique et d’un interpréteur
- Résolution d’anagrammes
- Jeu du labyrinthe : génération et résolution
De nombreux autres exercices et jeux : astéroïdes, somme maximale dans une pyramide, recherche d’un point d’équilibre, programmation sans branche, somme de pièces, mémoïsation, la mine d’or,…
Modalités d'évaluation
Un formulaire d'auto-évaluation proposé en amont de la formation nous permettra d'évaluer votre niveau et de recueillir vos attentes. Ce même formulaire soumis en aval de la formation fournira une appréciation de votre progression.
Des exercices pratiques seront proposés à la fin de chaque séquence pédagogique pour l'évaluation des acquis.
En fin de formation, vous serez amené(e) à renseigner un questionnaire d'évaluation à chaud.
Une attestation de formation vous sera adressée à l'issue de la session.
Trois mois après votre formation, vous recevrez par email un formulaire d'évaluation à froid sur l'utilisation des acquis de la formation.
Des exercices pratiques seront proposés à la fin de chaque séquence pédagogique pour l'évaluation des acquis.
En fin de formation, vous serez amené(e) à renseigner un questionnaire d'évaluation à chaud.
Une attestation de formation vous sera adressée à l'issue de la session.
Trois mois après votre formation, vous recevrez par email un formulaire d'évaluation à froid sur l'utilisation des acquis de la formation.
Solutions de financement
Cette formation peut être financée :
- dans le cadre du plan de développement des compétences de votre Entreprise
- par l’OPCO (opérateur de compétences) de votre Entreprise ou le FAF (Fonds d’Assurance Formation) pour les professionnels libéraux
- par France Travail dans le cadre du dispositif de l'Aide Individuelle à la Formation (soumis à accord de votre Agence)
- à titre personnel
Accessibilité
Vous souhaitez suivre notre formation Python - Algorithmique et êtes en situation de handicap ? Merci de nous contacter afin que nous puissions envisager les adaptations nécessaires et vous garantir de bonnes conditions d'apprentissage