Stage au CETIC

CETIC

Lors du deuxième quadrimestre de ma dernière année de Master en Architecture des systèmes informatiques, j’ai eu la chance d’obtenir un stage de 10 semaines en Centre d’Excellence en Technologie d’Information et de Communication (CETIC).

Le stage s’est inscrit dans le développement du framework de recherche opérationnelle OscaR, qui vise à résoudre des problèmes d’optimisation rencontrés par les industries (VRP, TSP, VRPTW, Scheduling, Bin packing, etc.).

TSP
Un exemple de TSP

Afin de briser la barrière entre le code « purement théorique » et code prêt à la production (concrètement, l’augmentation du TRL), l’équipe d’optimisation du CETIC était à la recherche d’une personne pour tester les structures de données sous-jacentes au moteur (via des tests unitaires et d’intégration). En l'espace de 10 semaines, je me suis mis dans la peau d'un responsable testing.

La valeur apportée au CETIC durant ce stage s’est déclinée en différents points :

  • Augmentation du TRL
  • Augmentation de la couverture de test
  • Homogénéisation des tests unitaires déjà présents, et rédaction de nouveaux tests
  • Amélioration du framework de test interne à OscaR

J'ai également contribué au projet en proposant une implémentation des Fibonacci Heap (basé sur une implémentation existante et du pseudocode).

CETIC
CETIC

Les domaines qui ont été abordés par le stage sont notamment :

  • La recherche opérationnelle
  • L’algorithmique théorique
  • Complexité algorithmique
  • Théorie des graphes
  • Structures de données (Tree,Heap,Queue …)
  • Le testing (unitaire et intégration)

Le stage s’est clôturé par un Team Information Meeting dans lequel j’ai résumé certaines bonnes pratiques concernant la rédaction de tests unitaires. J’ai également démontré la puissance des frameworks de tests proposés par Scala que sont ScalaCheck et ScalaTest.

J'ai aussi montré aux chercheurs du CETIC comment combiner efficacement IntelliJ et ces frameworks pour augmenter la productivité autant que possible.


Vous pouvez retrouver le contenu de la présentation ici

A de nombreuses reprises durant le stage, des échanges d’opinions concernant certaines lignes de code ont eu lieu, ce qui a fortement enrichi mes connaissances en algorithmique, et a contribué à la robustesse du framework.