🚀 Preuves SAE 1.02 et SAE 2.02

Titre SAE :

SAE 1.02 — Comparaison d’approches algorithmiques (Jeu de Grundy)

SAE 2.02 — Exploration algorithmique d’un problème (Affectation de secouristes)

▶︎ Les apprentissages critiques

  1. AC11.04 | Comparer des algorithmes pour optimiser un programme
  2. AC11.05 | Appréhender la notion d’efficacité d’un code informatique

▶︎ Analyse et réflexivité sur vos actions (à compléter max 1 page par question)

<aside> 💡 Quelles ont été vos démarches, prises de décisions, degré d'implication et d'autonomie ?

</aside>

Pour la SAE 1.02, j’ai travaillé en binôme sur le jeu de Grundy en Java. Le but était d’implémenter plusieurs versions du même algorithme pour comparer leur efficacité. On est allé jusqu’à la version 4, en prenant le temps de tester, mesurer les performances, et surtout de comprendre ce qui faisait qu’un algo était plus rapide qu’un autre. On a vraiment fait tout à deux, de la compréhension des règles à la rédaction des graphiques.

La version que j’ai trouvée la plus intéressante, c’est la version 3, car elle se base sur une vraie logique mathématique (le théorème des tas neutres) pour simplifier les calculs. On voit clairement l’amélioration dans les temps d’exécution grâce à cette idée.

Pour la SAE 2.02, on vient juste de commencer. Pour l’instant, je me suis plutôt concentrée sur l’intégration de l’algo dans l’application Java. On n’a pas encore eu le temps d’implémenter et comparer les deux approches (exhaustive et gloutonne), mais je comprends déjà les enjeux en termes d’optimisation : selon le contexte, il faudra faire un choix entre rapidité et précision.

<aside> 💡 Quelles ressources avez vous choisies et combinées pour réaliser vos tâches et résoudre les problèmes rencontrés dans cette SAé ?

</aside>

Pour Grundy, on s’est beaucoup appuyé sur la base de code fournie au début (GrundyRecBrute.java), la doc Java (notamment sur les arrayList ), et les supports de cours sur la récursivité et la complexité. On a aussi utilisé des outils pour mesurer les temps d’exécution et compter les opérations.

Pour l’affectation des secouristes, je me suis servie des exemples d’algos de parcours de graphes vus en TD de R2.07, et des conseils du prof sur la modélisation du problème. L’intégration reste en cours, mais on commence à bien voir comment relier les algos à l’interface.

<aside> 💡 En vous appuyant sur vos traces, justifiez la maitrise des apprentissages visés, ainsi que la prise en compte des composantes essentielles pour le développement de vos compétences.

</aside>

Pour la SAE 1.02, on a vraiment constaté que chaque version apportait une vraie amélioration. Plus on avançait, plus les temps d'exécution diminuaient. On a fait pas mal de tests et les résultats étaient super visibles dans les courbes et les tableaux qu’on a réalisés. On voyait clairement que ça valait le coup d’optimiser.

Ce projet m’a surtout fait comprendre que des choses toutes simples, comme éviter de recalculer ce qu’on a déjà traité, peuvent faire gagner un temps fou. J’avais pas forcément conscience de ça avant, mais là c’était flagrant.