Skip to main content

Open Week

ingi |

Contribuez à des projets Open Source, élargissez vos compétences, étoffez votre CV.

Du 23 au 27 juin 2025 se déroulera la 8ème édition de l'Open Week au sein de l'UCLouvain. Cette semaine consacrée au développement Open Source et à la collaboration a pour but de présenter aux étudiants cet univers en les faisant participer à de vrais projets.

Open Source

Publier un travail sous licence Open Source permet non seulement d'offrir au monde une panoplie d'outils informatiques utiles, mais aussi d'apprendre les conditions d'utilisations et d'intégration d'un travail Open Source à son propre travail, conditions souvent négligées à tort par les programmeurs. La semaine Open Source propose donc aux participants d'acquérir une connaissance de base concernant cet univers.

Finalement, participer à un projet Open Source offre aux développeurs une preuve tangible de leurs connaissances en informatique et une expérience pratique sur le terrain, souvent requise chez les employeurs pour l'engagement. Un dépôt Open Source peut ainsi être exposé sur votre CV comme un échantillon de vos compétences, validé et reconnu par les autres comme un travail de qualité.

Durant la semaine seront organisées des activités de détente. Le panel d'activités possibles est large et va de la partie de bowling à la soirée au restaurant en passant par la dégustation de bières. Ces activités ne demanderont pas de dépense de la part des participants, pour s'assurer de la participation d'un maximum de monde.

Qui peut participer ?

Tout étudiant inscrit en Bachelier ou Master en informatique peut participer à l'Open Week. La participation est entièrement gratuite et requiert surtout des personnes désireuses d'apprendre, de s'amuser et de se développer dans la bonne ambiance !

Les projets de cette année :

Cet outil est un firewall destiné aux réseaux locaux comprenant des appareils connectés, dits "Smart Home".  Il est supposé tourner directement sur le point d'accès local, qui serait un OS OpenWrt, et est donc très léger et est basé sur NFTables, l'utilitaire de firewall du kernel Linux (l'évolution du bien connu IPTables). Par défaut, NFTables ne supporte que les protocoles aux couches 2, 3 et 4 du modèle OSI. 

Le travail sur cet outil aurait pour but d'ajouter de nouvelles fonctionnalités comme :

  • le support pour d'autres protocoles, principalement situés à la couche applicative (ex. HTTP, DNS, DHCP).   
     
  • Interface avec le serveur DNS du point d'accès pour récupérer les adresses IPs correspondant aux noms de domaine  
  • Interface avec le serveur DHCP pour gérer les appareils dans le réseau local 
     

Ce projet nécessite une certaine connaissance du système Unix et des réseaux
Public cible : Bac3 -> Masters 
Contact : francois.dekeersmaeker@uclouvain.be

GitHub: https://github.com/smart-home-network-security/smart-home-firewall

OpenWRT est un projet open source pour les systèmes embarqués, et donc notamment pouvant servir de software pour un point d’accès. L’idée de ce projet serait de former une équipe d’étudiant.e.s qui travailleraient sur la création de configurations OpenWrt clé-en-main pour qu'ensuite, quiconque puisse emprunter un de nos routeurs et utiliser ces configurations préfaites pour améliorer l'expérience internet dans son kot. Par exemple :   
 

  • Ajuster la qualité de service pour favoriser le délai (exemple : jeux en ligne)  
  • Changer les bandes de fréquences WiFi pour éviter les collisions radio avec les autres kots 
     
  • Des choses plus exotiques comme du multi-homing pour améliorer la résilience  

Le projet se base sur des concepts assez intuitifs (délais, bande passante, etc…) et rentrer dans les configurations OpenWRT, 
Public cible : Bac2 -> Masters 
Contact : louis.navarre@uclouvain.be

NPF est un framework open source permettant d’orchestrer facilement des expériences réseaux, il permet d’automatiser une expérience depuis la collecte des données, incluant l’automatisation de l’exploration des paramètres, jusqu'à la génération de graphiques. Votre tâche sera d’ajouter une nouvelle fonctionnalité : la possibilité de sauvegarder l’état d’une expérience afin de pouvoir le re-injecter dans le pipeline NPF. Cette fonctionnalité permettra de collecter des résultats partiels, arrêter une expérience et ensuite pouvoir la relancer tout en réutilisant les résultats déjà obtenus. 
 

Public cible : Bac3 -> Masters

Contact : nikita.tyunyayev@uclouvain.be

GitHub: https://github.com/tbarbette/npf

Dans le cadre du cours LINFO1140 Principes de fonctionnement des ordinateurs, un simulateur d'assembleur open source est utilisé. Ce simulateur propose de voir une version simplifier du fonctionnement d'un CPU via un langage d'assembleur simplifié basé sur NASM.  Il utilise: 

  •     Un CPU 16-bits  
  •     4 registres génériques
  •     Une mémoire sur 1024 bytes
  •     Une console d'output (texte uniquement)

Le but principal serait de transformer la console d'output pour permettre de simuler un écran 2D en noir et blanc, mais il y a d'autres améliorations possibles comme ajouter une numérotation à la mémoire, rendre plus clair l'affichage des valeurs sur 2 bytes, améliorer l'ergonomie de l'éditeur de code... 

Le projet est en Javascript et utilise le framework Angular. Une petite expérience dans le développement web de type P2 est souhaitable, mais pas forcément requise. 
 

Public cible : Bac1 -> Masters 
Contact : aurelien.buchet@uclouvain.be

Les étudiants seront amenés à implémenter et expérimenter différentes variantes de l’algorithme Monte Carlo Tree Search (MCTS) dans le cadre du framework open-source Ludii, qui prend en charge plus de 1400 jeux aux mécaniques variées. L’objectif est d’évaluer les performances de variantes MCTS non implémentées actuellement dans Ludii en les comparant sur une grande diversité de jeux. Ce travail s’inscrit dans la problématique plus large du General Game Playing (GGP), où l’enjeu est de déterminer dans quelles conditions une approche MCTS permet d’obtenir de meilleurs résultats qu’une autre. 
 
Les étudiants commenceront par analyser les variantes existantes de MCTS déjà implémentées dans Ludii. Ils implémenteront ensuite de nouvelles variantes inspirées des approches proposées dans la littérature (2 surveys en particulier), en choisissant soit d’optimiser MCTS pour des jeux spécifiques, soit d’élaborer des stratégies plus généralistes. Enfin, ces variantes pourront être expérimentées à grande échelle via des simulations automatisées sur plusieurs jeux du catalogue de Ludii, afin de collecter des données empiriques et d’évaluer leur efficacité. 

Connaissances requises : Ce projet nécessite les connaissances liées aux structures de données, ainsi qu'à l'exploration intelligence de ces structures dans le cadre de recherche arborescence. Il est nécessaire de connaître Minimax, AlphaBeta et plus particulièrement avoir une connaissance des algorithmes classiques de type Monte-Carlo Tree Search (MCTS) (e.g. UCT). Les compétences obtenues en suivant le cours LINFO1361 Intelligence Artificielle et le cours Algorithmique et structures de données LINFO1121 sont suffisantes.

Public : Bac3 --> Master

Lien GitHub : https://github.com/Ludeme/Ludii 

Contact : achille.morenville@uclouvain.be

Les jeunes en ont marre des feuilles de vocabulaire scannées et ennuyeuses à étudier.  Imaginez comme cela serait mieux pour eu de disposer d'un outil qui transforme automatiquement ta liste de mots au départ d’une simple photo de la feuille en quiz interactifs façon Duolingo !

📌 Ce qui existe déjà :

J’ai développé une première version basique qui génère des quiz à partir de fichiers statiques en JavaScript. Mais on peut aller beaucoup plus loin !

• Ajouter une IA qui crée des exercices plus variés et interactifs

• Améliorer le design et l’expérience utilisateur

• Rendre l’outil accessible sur mobile

💻 Techniques utilisées :

• HTML / JavaScript pour l’interface et les quiz

• IA / OCR pour reconnaître les mots sur une feuille et générer les exercices

• (Optionnel) Mettre une DB

👨‍🎓 Qui peut participer ?

• Étudiants Bac2, Bac3, Master en informatique ou domaines connexes

• Curieux et motivés à apprendre HTML, JavaScript et IA appliquée

🔥 Pourquoi nous rejoindre ?

• Expérience pratique sur un projet innovant

• Travail sur un outil open-source avec une vraie utilité pédagogique

• Améliorer tes skills en dev web et en IA

• S’amuser et coder ensemble !

👉 Viens révolutionner l’apprentissage des langues avec nous ! 

Contact : pierre.schaus@uclouvain.be


Le projet initial a commencé en 2019 et a été présenté à Black Hat Europe 2019. Il s'agit d'un framework de pentesting orienté spécialement sur les drones similaire à Metasploit. Actuellement, seulement quelques modules sont implémentés pour exploiter peu de modèles de petits drones commerciaux. L'objectif est :

   d'analyser plus de drones en appliquant la méthodologie de test d'intrusion pour trouver des failles sur des petits drones commerciaux (style DJI Tello ou Mavic). De ces failles, déduire des modules pour Dronesploit pour l'augmenter.
   étudier les protocoles d'interaction avec les drones qu'on trouve sur le marché. Les automatiser dans Dronesploit afin d'étendre le scope des types de drones couverts.

Public cible : Bac3 -> Masters 
Contact : alexandre.dhondt@uclouvain.be
GitHub : https://github.com/dhondta/dronesploit

Constraint Programming (CP) is an important technique in solving combinatorial problems found across various domains, from scheduling and planning to resource allocation and beyond. CP solvers like miniCP and MaxiCP offer specialized capabilities for solving CP problems efficiently. However, the widespread adoption of CP techniques, especially in the Python community, is often hampered by the lack of seamless integration between CP solvers and high-level programming languages. CPMpy is a Python library that provides a modeling environment for CP, but its effectiveness is limited by the direct support of underlying CP solvers.

GraalVM, a high-performance polyglot virtual machine, presents a novel opportunity to bridge this gap. By enabling interoperability between different programming languages, GraalVM facilitates the creation
of interfaces between Python and Java or C++-based CP solvers. This approach has been successfully demonstrated with projects like python-jgrapht and pychoco, which use GraalVM to integrate Java libraries with Python.


The goal is to implement Python interfaces for the MaxiCP solvers utilizing GraalVM for interoperability.
This integration aims to enhance the accessibility and usability of these solvers within the Python ecosystem, promoting their adoption for solving complex CP problems.

Contact : pierre.schaus@uclouvain.be

Référence :

https://github.com/d-michail/python-jgrapht

www.maxicp.org
https://github.com/aia-uclouvain/maxicp
https://www.graalvm.org/

 

 

 

Syncthing est un logiciel de synchronisation de fichiers open-source puissant et flexible. Une bonne alternative à iCloud, OneDrive, WeTransfer, Google Drive, etc. 

Cependant, dans sa forme actuelle, Syncthing télécharge tous les blocs de fichiers dès qu'un appareil distant est disponible, ce qui peut entraîner une utilisation importante de la bande passante et du stockage, même pour les fichiers volumineux qui ne sont pas immédiatement nécessaires. Ce projet propose d'implémenter une fonctionnalité de "lazy fetching" (récupération paresseuse) pour Syncthing. L'idée est de modifier le comportement de Syncthing pour qu'il ne télécharge que les parties d'un fichier qui sont réellement nécessaires, au moment où elles sont requises par l'utilisateur ou une application. 

Langage de programmation utilisé : Golang 

Public Cible: Bac3 -> Masters 

Contact : vany.ingenzi@uclouvain.be

GitHub : https://github.com/syncthing/syncthing

Où poser des questions ?

Si vous avez des questions, il suffit de nous envoyer un mail à l'adresse staffopenweek@listes.uclouvain.be .

Comment s'inscrire ?

Pour vous inscrire, il vous suffit de cliquer sur ce lien et de remplir le formulaire !

Comment se rendre sur place ?

L'évènement se déroulera en salle Intel (salle b0.80) 
Place Sainte-Barbe, 2 bte L5.02.01
B-1348 Louvain-la-Neuve (Belgium)

Planning type d'une journée

  • 9h00 - 9h30 Petit déjeuner
  • 9h30 - 12h30 Contribution aux projets
  • 12h30 - 13h30 Lunch
  • 13h30 - 16h30 Contribution aux projets
  • 16h30 - . . . Activitée