Mes compétences en BUT Informatique

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.

Compétence 1 : Réaliser un développement d'application

Trace principale : Jeu Sokoban en langage C

Langage C Algorithmique Modulabilité

Description de la réalisation & Démarche réflexive :

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.

Acquis d'apprentissage & Soft Skills :

  • Rigueur logique et algorithmique : Structuration rigoureuse de la logique de jeu en C.
  • Analyse des besoins : Traduction d'un cahier des charges précis en fonctionnalités logicielles.
  • Respect des délais : Gestion rigoureuse du temps pour livrer un livrable fonctionnel en temps voulu.
Essayer le jeu Sokoban

Compétence 2 : Optimiser des applications informatiques

Trace principale : Optimisation du jeu Sokoban

Complexité Profilage Gestion Mémoire

Description de la réalisation & Démarche réflexive :

À 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.

Acquis d'apprentissage & Soft Skills :

  • Choix des structures de données : Sélectionner les types de données appropriés pour minimiser l'empreinte mémoire.
  • Profilage & Analyse : Capacité à lire et évaluer la complexité algorithmique d'un programme informatique.
  • Rigueur et précision : Traque minutieuse des fuites mémoire et optimisation fine.

Compétence 3 : Administrer des systèmes informatiques

Trace principale : Installation d’un Poste de Développement Docker

Docker Linux Bash Réseaux

Description de la réalisation & Démarche réflexive :

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.

Acquis d'apprentissage & Soft Skills :

  • Virtualisation & Conteneurisation : Comprendre le cycle de vie des conteneurs et leur intérêt dans le cycle de dev.
  • Automatisation système : Écriture de scripts système en Bash sous environnement Linux.
  • Sécurisation de base : Gestion des privilèges utilisateur, isolation réseau et volumes de persistance.

Compétence 4 : Gérer des données (Bases de données)

Trace principale : Conception et exploitation d'une base de données PostgreSQL

SQL UML / MCD PostgreSQL

Description de la réalisation & Démarche réflexive :

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.

Acquis d'apprentissage & Soft Skills :

  • Modélisation de données : Capacité à structurer proprement des données complexes sans redondances.
  • Langage SQL : Requêtes DDL (création) et DML (manipulation/requêtes avancées : JOIN, GROUP BY, HAVING).
  • Esprit analytique : Extraire de la valeur d'une masse de données brutes via des requêtes ciblées.

Compétence 5 : Conduire un projet informatique

Trace principale : Projet de Gestion de Projet & Création d'entreprise fictive

Trello (Kanban) Figma Planification

Description de la réalisation & Démarche réflexive :

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.

Acquis d'apprentissage & Soft Skills :

  • Maquettage & Design UI/UX : Conception visuelle d'applications ergonomiques avec Figma.
  • Outils de gestion de projet : Suivi des tâches, gestion des priorités et respect des jalons avec Trello.
  • Rigueur et organisation : Suivre un plan de développement structuré.

Compétence 6 : Travailler dans une équipe informatique

Trace principale : Projet de Travail Collaboratif (Création de flyer)

Discord Outils Collaboratifs Communication

Description de la réalisation & Démarche réflexive :

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é.

Acquis d'apprentissage & Soft Skills :

  • Communication efficace : Échanger régulièrement et clairement, savoir écouter et intégrer les avis des autres.
  • Co-création & Partage : Utiliser des outils en temps réel pour concevoir à plusieurs mains.
  • Autonomie et Responsabilité : Prendre en charge sa part du projet et la livrer en temps voulu pour le groupe.