Portfolio d'Apprentissage

Analyse des compétences de niveau 2

Dans le cadre de ma formation BUT Informatique avec spécialisation IAMSI (Intégration d'Applications et Management du Système d'Information), j'ai développé plusieurs compétences clés. Cette page présente les trois compétences qui s'arrêtent au niveau 2 dans mon parcours : Optimiser, Administrer et Gérer.

Pour chacune de ces compétences, je détaille les apprentissages critiques et les composantes essentielles, ainsi que les différentes manières dont je les ai travaillées et validées au cours de ma formation.

Optimiser des applications

Cette compétence concerne la sélection et l'utilisation d'algorithmes adaptés pour résoudre efficacement des problèmes complexes.

Apprentissages Critiques

AC1: Choisir des structures de données complexes adaptées au problème
AC2: Utiliser des techniques algorithmiques adaptées pour des problèmes complexes
AC3: Comprendre les enjeux et moyens de sécurisation des données et du code
AC4: Évaluer l'impact environnemental et sociétal des solutions proposées

Application et validation de la compétence

Développement d’un algorithme de chiffrement des données (RSA)

Dans le cadre de mon stage, j’ai été chargé d’implémenter un algorithme de chiffrement RSA dans le but de sécuriser les données sensibles des clients de l’entreprise. Ce projet m’a permis de mobiliser l’ensemble des apprentissages critiques associés à la compétence "sélection et utilisation d'algorithmes adaptés pour résoudre efficacement des problèmes complexes".

Tout d’abord, le choix des structures de données a été déterminant pour garantir l’efficacité et la robustesse du chiffrement. J’ai utilisé des structures adaptées telles que les grands entiers (pour les clés), des paires de clés publiques/uniques.Ce choix, réfléchi et justifié, relève de l’AC1.
Ensuite, le développement de l’algorithme m’a permis de mettre en œuvre des techniques algorithmiques avancées (AC2), notamment :
- la génération de grands nombres premiers,
- l’exponentiation modulaire,
- et le calcul de l’inverse modulaire via l’algorithme d’Euclide étendu.
Ces éléments sont essentiels au bon fonctionnement de l’algorithme RSA, qui repose sur des fondements mathématiques solides et une logique algorithmique rigoureuse.
Ce projet m’a aussi permis de me confronter directement aux enjeux de la sécurité informatique (AC3). En plus du chiffrement, j’ai intégré des mécanismes de validation des entrées pour éviter les injections SQL, protégé les clés contre les fuites potentielles, et suivi les bonnes pratiques en matière de développement sécurisé.
Enfin, j’ai également pris en compte les aspects environnementaux et sociétaux (AC4). L’algorithme ayant un coût computationnel élevé, j’ai optimisé les traitements pour réduire la consommation de ressources (temps CPU, mémoire), et ainsi limiter l’impact environnemental. Sur le plan sociétal, la sécurisation des données client contribue à renforcer la protection de la vie privée, un enjeu majeur dans notre société numérique.
Ainsi, ce projet a été une occasion concrète d’appliquer et de valider la compétence visée, à travers un travail complet allant de l’analyse du besoin à l’implémentation, en passant par l’optimisation et la sécurisation du code.
Voir le projet

Administrer des systèmes informatiques communicants complexes

Cette compétence concerne le déploiement et la gestion de services dans une architecture réseau.

Apprentissages Critiques

AC1: Concevoir et développer des applications communicantes
AC2: Utiliser des serveurs et des services réseaux virtualisés
AC3: Sécuriser les services et données d'un système

Application et validation de la compétence

TP - Développement d’applications communicantes en C avec l’API Socket

Dans le cadre des travaux pratiques du module réseau, j’ai conçu plusieurs applications client-serveur en langage C, en utilisant l’API socket avec le protocole TCP/IP. Ces applications permettaient d’établir une communication fiable entre deux machines pour l’échange de messages textuels ou de fichiers.

Ce travail m’a permis de valider l’AC1, car il m’a donné l’opportunité de maîtriser la création de sockets, la gestion des connexions multiples via select() et la structuration des échanges réseau. J’ai également implémenté des mécanismes de détection et gestion des erreurs réseau, et respecté les normes liées au protocole TCP pour garantir une communication fiable et structurée.

Sécurisation de l’authentification utilisateur

Lors d’un projet de développement d’un site web en PHP, j’ai mis en place un système d’authentification sécurisé. Pour cela, j’ai utilisé un mécanisme de hachage des mots de passe avec ajout de sel et poivre avant stockage en base de données. J’ai également veillé à la sécurité des sessions en régénérant les identifiants de session et en configurant les cookies avec les options HttpOnly et Secure.

Cette mise en œuvre m’a permis de valider l’AC3 en assurant la protection des données sensibles des utilisateurs face à des menaces courantes telles que le vol de mots de passe, les attaques par force brute ou le vol de session. J’ai appliqué les bonnes pratiques de sécurité web et suivi les recommandations de l’OWASP.
Voir le projet

Gérer des données de l’information

Cette compétence concerne l'optimisation des bases de données et leur intégration dans des applications tout en garantissant la sécurité.

Apprentissages Critiques

AC1: Optimiser les modèles de données de l'entreprise
AC2: Assurer la confidentialité des données (intégrité et sécurité)
AC3: Organiser la restitution de données à travers la programmation et la visualisation
AC4: Manipuler des données hétérogènes

Application et validation de la compétence

Développement d'un site E-Commerce

Réalisation d'un site de e-commerce proposant des produits de notre choix, sans restrictions particulières. L’objectif pédagogique de ce projet était de mettre en œuvre les techniques apprises en cours tout en respectant les critères de notation établis, notamment la gestion des produits via un MVC.

Cette réalisation m'a permis de travailler sur l'AC2 en mettant en œuvre des mécanisme de securité comme le hachage de mot de passe, la préparation de requêtes SQL limitant les injections de tous type. Également, ce travail m'a permis de développer l'AC1 en créant une interface qui simplifie les opérations CRUD (Create, Read, Update, Delete) et en implémentant des mise en cache pour réduire la charge sur la base de données. Ce qui a impliqué les compétences CE4.01, CE4.02 et CE4.04 en respectant les règlementations sur le respect de la vie privé, en assurant la cohérence et la qualité du code et pour finir en respectant les enjeux économiques, sociétaux et écologiques de l'utilisation du stockage de données.
Voir le projet

Interface de gestion commerciale et comptable

Réalisation d’une application web destinée à centraliser la gestion des activités commerciales et comptables d'une entreprise fictive. L'objectif pédagogique de ce projet était de structurer, exploiter et restituer efficacement des données commerciales (factures, paiements) à travers une interface claire et fonctionnelle, tout en appliquant les bonnes pratiques de développement et de visualisation.

Cette réalisation m’a permis de valider l’AC3 en mettant en place des tableaux de bord dynamiques et interactifs pour les utilisateurs. Ces tableaux affichaient des indicateurs clés (Nom de compte, informations bancaires, paiement, etc.) sous forme de tableaux et de visualisations créés avec la librairie DataTables de JavaScript.J’ai également développé des fonctionnalités de filtres, tris et exports (PDF, CSV) permettant une restitution personnalisée et exploitable des données. J’ai également mobilisé l’AC4 en traitant des données hétérogènes provenant de différentes sources comme des fichiers Excel transmis par les commerciaux et des informations saisies directement via l'interface utilisateur. Cela m’a amené à implémenter des mécanismes de nettoyage, validation, formatage et transformation des données pour assurer leur intégration dans la base de données de manière cohérente.
Voir le projet

Bilan et Perspectives

Au cours de ma formation en BUT Informatique parcours IAMSI, j'ai pu développer ces trois compétences clés jusqu'au niveau 2. Ces acquis constituent une base solide pour ma future carrière dans le développement web et la gestion de systèmes d'information.

Les projets et travaux pratiques réalisés m'ont permis de mettre en application ces compétences dans des contextes variés et de comprendre leur importance dans le développement de solutions informatiques robustes, performantes et sécurisées.

Pour la suite de mon parcours, je souhaite approfondir ces compétences et les compléter par d'autres qui me permettront de devenir un professionnel polyvalent dans le domaine de l'informatique.