🚀 Preuves “ressources”

AC22.01 | Choisir des structures de données complexes adaptées au problème

En cours, j'ai appris à analyser des problèmes informatiques de grande taille et à les découper de manière logique. J'ai étudié des structures de données complexes comme les arbres de recherche, les graphes, les tables de hachage ou les files de priorité. La formation m'a appris à évaluer les forces et les limites de chaque structure afin de choisir celle qui organise le mieux les informations. Ce choix permet de garantir que les données de l'application restent faciles d'accès et optimisées pour les traitements futurs.


AC22.02 | Utiliser des techniques algorithmiques adaptées pour des problèmes complexes (par ex. recherche opérationnelle, méthodes arborescentes, optimisation globale, intelligence artificielle...)

Mes cours m'ont permis de découvrir des techniques algorithmiques avancées pour résoudre des problèmes complexes qui ne peuvent pas être traités par des méthodes simples. J'ai étudié des approches comme la recherche opérationnelle, le parcours de graphes, l'optimisation et les bases de l'intelligence artificielle. J'ai appris à mesurer précisément l'efficacité de ces algorithmes en termes de temps d'exécution et d'occupation de la mémoire, en utilisant des outils d'analyse comme la notation Big O ou le Master Theorem, pour sélectionner la solution la plus performante.


AC22.03 | Comprendre les enjeux et moyens de sécurisation des données et du code

Dans ma formation, j'ai été sensibilisé aux risques liés à la sécurité lors du développement d'applications. J'ai appris à identifier les vulnérabilités courantes dans le code et à appliquer des bonnes pratiques pour protéger l'accès aux données. Les cours m'ont enseigné l'utilisation de concepts mathématiques comme la cryptographie et l'algèbre pour sécuriser les communications, ainsi que l'importance de valider et de nettoyer toutes les données entrantes pour éviter les failles de sécurité et les injections de code.


AC22.04 | Évaluer l’impact environnemental et sociétal des solutions proposées

Mes études m'ont appris que l'informatique a un coût écologique et social qu'il faut savoir mesurer. J'ai été formé aux principes du numérique éco-responsable (Green IT). J'ai appris à analyser l'impact environnemental de mes choix algorithmiques en calculant la consommation d'énergie des serveurs et du matériel. On nous a également appris à prendre en compte les enjeux sociétaux, comme le respect de la vie privée des utilisateurs et l'éthique dans le traitement des données, pour concevoir des logiciels durables et respectueux.

🚀 Preuves SAE 3.1/4.1 & Alternance

▶︎ Les apprentissages critiques

AC22.01 | Choisir des structures de données complexes adaptées au problème

Dans le cadre de la SAE pour la plateforme de challenges, j'ai été confronté à la nécessité de stocker et de manipuler des données d'utilisateurs et de scores de manière performante. Pour concevoir le système de classement en temps réel, un simple tableau n'était pas suffisant en raison du coût des tris répétitifs. J'ai donc choisi d'utiliser des structures de données plus adaptées comme des listes chaînées triées et des dictionnaires pour associer instantanément un participant à ses résultats.

En alternance, cette compétence m'a permis de comprendre comment les structures de données influencent les bases de données de production de l'entreprise. J'ai dû analyser la manière dont les informations réseau et les profils des employés étaient organisés dans nos systèmes afin de proposer des restructurations de tables et de clés d'indexation, garantissant ainsi que les requêtes des différents services s'exécutent sans latence.


AC22.02 | Utiliser des techniques algorithmiques adaptées pour des problèmes complexes (par ex. recherche opérationnelle, méthodes arborescentes, optimisation globale, intelligence artificielle...)

Pour la plateforme de challenges, notre équipe a dû mettre au point un moteur d'évaluation capable de vérifier la validité des réponses soumises par les étudiants de BUT 3. J'ai implémenté des algorithmes de recherche et de comparaison de chaînes de caractères pour analyser les codes soumis, ainsi qu'une logique de tri optimisée pour mettre à jour le tableau des scores de façon dynamique. J'ai veillé à mesurer la complexité de mon code pour éviter que le serveur Proxmox ne sature lors des vagues de connexions simultanées.