Informations à propos de la formation
Public cible
- Étudiants en informatique ou disciplines techniques
- Développeurs souhaitant renforcer leurs compétences en algorithmique
- Professionnels de la Data Science, Machine Learning ou développement logiciel
Objectifs de la formation
Permettre aux participants de :
- Maîtriser les concepts avancés d’algorithmique
- Concevoir et analyser des algorithmes efficaces
- Résoudre des problèmes complexes en informatique
- Optimiser les performances des programmes
À la fin de la formation, les participants seront capables de développer des algorithmes performants pour des applications variées.
Compétences visées
- Analyser la complexité des algorithmes
- Maîtriser les structures de données avancées
- Résoudre des problèmes d’optimisation et de graphes
- Implémenter des algorithmes de tri, recherche et parcours efficaces
- Concevoir des algorithmes récursifs et dynamiques
Thématiques de la formation (12 semaines / 24h)
1. Rappels et fondamentaux (4 h)
Objectifs spécifiques :
- Revoir les bases de l’algorithmique et des structures de données
- Préparer les fondations pour les algorithmes avancés
Contenu :
- Complexité algorithmique : notations Big O, Big Θ, Big Ω
- Récursivité et itérations
- Tableaux, listes chaînées, piles, files
- Algorithmes de base : tri, recherche
Activités :
- Exercices de complexité et analyse d’algorithmes simples
- Mini-projets de tri et recherche
2. Structures de données avancées (6 h)
Objectifs spécifiques :
- Maîtriser les structures de données complexes et leur utilisation
- Comprendre leur impact sur la performance des algorithmes
Contenu :
- Arbres (binaires, AVL, B-trees)
- Graphes (représentation, parcours BFS/DFS)
- Tables de hachage et dictionnaires
- File de priorité, tas (heap)
Activités :
- Atelier pratique : implémentation d’un arbre binaire et parcours DFS/BFS
- Exercices sur hash maps et tas
3. Algorithmes avancés (6 h)
Objectifs spécifiques :
- Concevoir des algorithmes optimisés pour différents problèmes
- Résoudre des problèmes classiques en informatique
Contenu :
- Tri avancé et recherche : quicksort, mergesort, recherche binaire
- Algorithmes de graphes : Dijkstra, Floyd-Warshall, Kruskal, Prim
- Programmation dynamique : Fibonacci, sac à dos, chemin optimal
- Algorithmes gloutons (greedy)
Activités :
- Exercices d’implémentation et optimisation d’algorithmes
- Études de cas : problème du plus court chemin et sac à dos
4. Techniques d’optimisation et complexité (4 h)
Objectifs spécifiques :
- Optimiser les algorithmes pour réduire leur complexité
- Évaluer et comparer différentes approches
Contenu :
- Analyse de complexité temporelle et spatiale
- Techniques de programmation efficace : mémoïsation, pruning
- Introduction à l’algorithmique parallèle et concurrente
Activités :
- Atelier : optimisation d’un algorithme récursif
- Exercice : comparaison d’algorithmes sur différents datasets
5. Mini-projet algorithmique et synthèse (4 h)
Objectifs spécifiques :
- Appliquer toutes les notions vues dans un projet complet
- Résoudre un problème réel ou simulé de manière optimale
Contenu :
- Définition du problème et choix des structures de données et algorithmes
- Implémentation et tests
- Présentation et analyse des performances
Activités :
- Mini-projet individuel ou en groupe : résolution d’un problème complexe (graphes, optimisation, etc.)
- Présentation finale et discussion sur les choix algorithmiques
Méthodologie
- Alternance théorie et exercices pratiques
- Études de cas et mise en situation réelle
- Implémentations guidées et mini-projets
- Analyse critique et optimisation des solutions
Évaluation
- Évaluation continue : exercices pratiques et mini-cas
- Évaluation finale : mini-projet algorithmique + présentation
- Auto-évaluation : maîtrise des structures de données et algorithmes avancés
Évaluation et Assurance Qualité :
À la fin de chaque programme de formation, les participants recevront un formulaire d’évaluation et d’assurance qualité.