2

Optimiser des applications informatiques

Appréhender et construire des algorithmes

Cette compétence vise à développer la capacité à analyser, concevoir et optimiser des algorithmes pour améliorer les performances des applications informatiques. Elle couvre la comparaison d'algorithmes, l'analyse de leur complexité, et l'implémentation de solutions optimisées.

1.

Analyser un problème avec méthode

Objectif de ce point

Être capable de décomposer un problème complexe en sous-problèmes plus simples et d'identifier les étapes de résolution méthodique.

S2.01

Décomposition méthodique - Initialisation du graphe MPM

Pourquoi cette SAE valide ce point

Dans cette SAE, j'ai démontré ma capacité à analyser méthodiquement un problème complexe en le décomposant en sous-problèmes clairs et structurés. L'initialisation de notre graphe MPM a été divisée en 4 étapes distinctes pour faciliter l'implémentation et le débogage.

Décomposition en 4 étapes de l'initialisation du graphe MPM :
  • Étape 1 - Chargement du fichier : Lecture des données du projet depuis le fichier d'entrée
  • Étape 2 - Tri des tâches : Organisation et structuration des tâches selon leurs dépendances
  • Étape 3 - Calcul des dates au plus tôt et au plus tard : Application des algorithmes de calcul temporel
  • Étape 4 - Identification des chemins critiques : Détermination des tâches critiques et des marges
Avantages de cette approche méthodique :
  • Séparation claire des responsabilités pour chaque étape
  • Facilitation du débogage et de la maintenance du code
  • Possibilité de tester chaque étape individuellement
  • Amélioration de la lisibilité et de la compréhension du processus
Preuves visuelles
2.

Comparer des algorithmes pour des problèmes classiques

Objectif de ce point

Être capable d'évaluer et de comparer différentes approches algorithmiques pour résoudre un même problème en analysant leurs performances et leurs caractéristiques.

S1.02

Tests de performance sur tableaux de 68 000 éléments

Pourquoi cette SAE valide ce point

J'ai implémenté et comparé plusieurs algorithmes de tri en effectuant des tests de performance rigoureux sur des tableaux de grande taille (68 000 cases d'entiers) pour évaluer leurs performances réelles et identifier l'algorithme optimal selon le contexte.

Tests réalisés avec tableaux de 68 000 cases :
  • Tri par sélection
  • Tri à bulles
  • Tri par insertion
Méthodologie de test appliquée :
  • Tests sur 3 types de données : aléatoires, inversées, presque triées
  • Mesure précise des temps d'exécution en nanosecondes
  • Vérification de la correction des algorithmes après chaque tri
  • Comparaison directe des performances sur la même taille de données
Preuves visuelles
3.

Formaliser et mettre en œuvre des outils mathématiques pour l'informatique

Objectif de ce point

Être capable d'utiliser des concepts mathématiques (logique, ensembles, graphes) pour modéliser et résoudre des problèmes informatiques.

DS S2.01

Application du théorème de Pythagore en programmation

Pourquoi cette validation démontre la maîtrise du point

Lors d'un devoir surveillé de développement, j'ai utilisé le théorème de Pythagore pour calculer des distances entre points dans un problème concret de programmation.

Application du théorème de Pythagore :
  • Formule utilisée : distance = √((x₂-x₁)² + (y₂-y₁)²)
  • Contexte : Calcul de distance entre deux points
Preuves visuelles
4.

S'appuyer sur des schémas de raisonnement

Objectif de ce point

Être capable d'utiliser des modèles et des schémas structurés pour raisonner et résoudre des problèmes algorithmiques de manière méthodique.

S2.01

Parcours en largeur pour la détection de cycles dans un graphe MPM

Pourquoi cette SAE valide ce point

Dans la SAE S2.01, j'ai appliqué un parcours en largeurpour détecter les cycles lors de l'ajout de nouvelles dépendances entre tâches.

Contexte concret de la SAE S2.01 :
  • Problématique : Lors de l'ajout d'une dépendance "Tâche A → Tâche B", vérifier qu'il n'existe pas déjà un chemin "Tâche B → ... → Tâche A"
Preuves visuelles
5.

Justifier ses choix et valider les résultats

Objectif de ce point

Être capable d'argumenter ses décisions algorithmiques et de valider la correction des solutions proposées par des méthodes appropriées.

S1.02

Justification des choix d'algorithmes et validation par tests

Pourquoi cette SAE valide ce point

J'ai justifié mes choix d'algorithmes de tri en me basant sur des critères mesurables et j'ai validé la correction de mes implémentations par une batterie de tests rigoureuse. La conclusion de cette analyse comparative a démontré la supériorité du tri par insertion pour notre contexte spécifique.

Conclusion justifiée : Tri par insertion optimal :
  • Tri par insertion : Identifié comme le meilleur algorithme après analyse
  • Justification principale : Performances supérieures sur les tableaux partiellement triés ou de taille modérée
  • Avantages mesurés : Plus rapide que le tri à bulles et par sélection dans la majorité des cas testés
Preuves visuelles