Dans le cadre du BUT Informatique à l'IUT de Lannion, la formation est structurée autour de 6 compétences majeures. Voici une analyse réflexive détaillée de chaque compétence, appuyée par des preuves concrètes de mes réalisations.
Trace principale : Jeu Sokoban en langage C
J'ai conçu et programmé un jeu de Sokoban complet en langage C. Ce projet m'a demandé de traduire un ensemble de spécifications fonctionnelles (les règles du jeu, le déplacement du personnage, la poussée des boîtes sur les cibles) en structures de données et algorithmes logiques en console.
J'ai mis en place une architecture modulaire en séparant le code en plusieurs fichiers sources et fichiers d'en-tête (headers), assurant ainsi une bonne maintenance et une clarté du code. J'ai également géré les entrées clavier en temps réel et implémenté la lecture de fichiers externes pour charger dynamiquement les différents niveaux du jeu.
Trace principale : Optimisation du jeu Sokoban
À la suite de la réalisation du Sokoban, l'objectif était d'analyser la complexité de notre code pour en améliorer les performances d'exécution. J'ai étudié les coûts temporels (vitesse) et spatiaux (mémoire) des algorithmes de mise à jour de la grille et de rendu graphique.
En réorganisant les structures de données internes (remplacement de boucles imbriquées lourdes par des accès directs indexés et optimisation des allocations dynamiques de mémoire), j'ai considérablement accéléré le temps de réponse du jeu et évité toute fuite mémoire.
Trace principale : Installation d’un Poste de Développement Docker
Pour ce projet, j'ai configuré et mis en place un poste de développement complet et isolé à l'aide de la technologie de conteneurisation Docker. J'ai conçu des environnements cloisonnés pour faire tourner un serveur web Apache, PHP, et une base de données MySQL.
J'ai également écrit des scripts d'automatisation en Bash (shell Linux) pour automatiser la création des conteneurs, le déploiement de l'application et la sauvegarde régulière des données. Ce projet m'a permis de me confronter aux problématiques de configuration réseau inter-conteneurs et de droits d'accès système sous Linux.
Trace principale : Conception et exploitation d'une base de données PostgreSQL
Ce projet m'a demandé de traduire un cahier des charges d'entreprise en un schéma relationnel de base de données structuré. J'ai utilisé le langage de modélisation UML (diagramme de classes) pour concevoir le modèle conceptuel des données (MCD) en veillant au respect des contraintes d'intégrité et des formes normales.
J'ai ensuite créé le schéma physique sous le SGBD relationnel PostgreSQL. J'ai peuplé la base de données de milliers de données fictives et rédigé des requêtes d'agrégation et de jointures avancées pour extraire des statistiques opérationnelles précises.
Trace principale : Projet de Gestion de Projet & Création d'entreprise fictive
Dans le cadre de la gestion de projet, nous devions élaborer une application web complète pour une entreprise fictive. J'ai participé activement à la planification des tâches, à la répartition des charges de travail et à l'estimation des jalons (milestones).
J'ai conçu les maquettes haute fidélité de l'interface utilisateur sur l'outil Figma (maquettage UI/UX adaptatif). Nous avons géré le projet en utilisant des méthodologies proches des méthodes agiles, en centralisant et suivant l'avancement des tickets sur Trello.
Trace principale : Projet de Travail Collaboratif (Création de flyer)
Pour démontrer la compétence de collaboration, nous avons travaillé en groupe de 3 étudiants sur la réalisation d'un support de communication (flyer) professionnel. Ce travail nous a obligés à nous organiser très tôt, à planifier nos réunions et à échanger quotidiennement sur nos avancées.
Nous avons utilisé Discord pour nos échanges à distance et Trello pour affecter clairement les tâches de chacun afin d'éviter les doublons. L'objectif était de confronter nos idées de design et de contenu de manière constructive pour aboutir à un document de haute qualité.