Python mathématique
Découverte du langage Python à travers des projets mathématiques appliqués : algorithmes classiques, modélisation, visualisation graphique et programmation orientée objet.

Technologies
Liens
Pendant mon DUT Informatique, j’ai découvert et approfondi le langage Python à travers divers projets centrés sur la modélisation mathématique, les algorithmes classiques, et la visualisation graphique.
Ces projets m’ont permis d’acquérir des compétences solides en algorithmique, en programmation procédurale et orientée objet, ainsi qu’une capacité à résoudre des problèmes de manière structurée.
1. Reconnaissance de mots avec un automate fini
Objectif du projet
Créer un programme simulant un automate fini, capable de reconnaître si un mot appartient ou non au langage défini par l’automate.
Compétences développées
- Représentation de structures complexes avec des dictionnaires imbriqués.
- Gestion des transitions entre états.
- Construction de boucles et d’instructions conditionnelles robustes.
- Compréhension approfondie des automates finis déterministes.
2. Recherche du plus court chemin avec l’algorithme de Dijkstra
Objectif du projet
Implémenter l’algorithme de Dijkstra afin de trouver le plus court chemin entre un sommet de départ et tous les autres sommets dans un graphe pondéré.
Compétences développées
- Manipulation de graphes pondérés en Python.
- Application d’algorithmes gloutons.
- Utilisation de sets et de dictionnaires pour la gestion d’états.
- Développement d’algorithmes de parcours optimisé.
3. Résolution du problème des tours de Hanoï
Objectif du projet
Résoudre le problème classique des tours de Hanoï à l’aide d’un algorithme récursif.
Compétences développées
- Maîtrise de la récursivité.
- Simulation de structures de pile à l’aide de listes.
- Décomposition d’un problème complexe en sous-problèmes plus simples.
4. Construction d’un arbre couvrant minimal avec l’algorithme de Kruskal
Objectif du projet
Mettre en œuvre l’algorithme de Kruskal pour déterminer un arbre couvrant de poids minimal dans un graphe non orienté pondéré.
Compétences développées
- Tri d’arêtes en fonction de leur poids.
- Utilisation de structures d’ensembles disjoints (approche union-find simplifiée).
- Construction progressive d’un arbre minimal sans créer de cycles.
5. Manipulation de polynômes avec une classe dédiée
Objectif du projet
Créer une classe Python permettant de représenter, d’ajouter et d’évaluer des polynômes.
Compétences développées
- Programmation orientée objet en Python.
- Surcharge d’opérateurs (
+
,()
). - Application de la méthode de Horner pour une évaluation rapide de polynômes.
- Gestion de la modélisation mathématique à travers des objets.
6. Visualisation de fractales et formes géométriques avec Turtle
Objectif du projet
Utiliser la bibliothèque Turtle pour générer des fractales et des formes géométriques complexes, en s’appuyant sur la récursion.
Compétences développées
- Découverte et utilisation d’une librairie graphique en Python.
- Génération d’images par récursion graphique.
- Introduction aux concepts de fractales et de géométrie algorithmique.
Conclusion
Ces projets m’ont permis de :
- Développer une base solide en Python, tant en programmation procédurale qu’en orientée objet.
- Approfondir ma compréhension des algorithmes fondamentaux en informatique.
- Renforcer ma capacité à analyser, concevoir, structurer et implémenter des solutions efficaces.
- M’initier aux visualisations graphiques et à l’interprétation mathématique de certains problèmes complexes.
Ce premier contact approfondi avec Python m’a donné les outils nécessaires pour aborder par la suite des projets plus ambitieux et structurés.