Malo MONIN

Computer science student at ENS Rennes.

  1. Baccalauréat
    ≈ A-level
  2. Licence (3 years)
    ≈ bachelor’s degree
  3. Master’s degree (2 years)
  4. Doctorate (3 years)
The French academic degrees.

M1 research project in DiverSE team (2024–2025).

A novel method to study the emergence of software vulnerabilities in code.

IRISA, Inria center at Rennes University (Rennes, France).

Year-long, one-day-a-week research project at IRISA in the DiverSE team, supervized by Djamel Eddine Khelladi and Arnaud Blouin.

Large codebases with many contributors inevitably fall victim to the emergence of bugs and vulnerabilities. The precise way they are progressively introduced is not yet fully understood. Prior works have focused mainly on small amounts of Java codebases because they rely on slow tools and require human intervention. We propose and evaluate a novel process for extracting from a Git commit history the changes that induce a fixing commit and mining patterns from those changes. For tracking down fix-inducing changes, we use HyperAST, a tool that far surpasses its predecessors both in terms of memory usage and in terms of execution time.

Project report.

M1 SIF (2024–2025, ongoing).

ENS Rennes (Rennes, France).

As part of my first year of master, I have followed courses in the following scientific fields:

In those courses, we used C, Java, Scala, the Isabelle/HOL proof assistant, and the NuSMV model checker.

I also had a course on making scientific presentations, as well as many seminars, and English classes.

Archived January 2025 M1 SIF webpage (in French).

L3 research internship in Cambium team (summer 2024).

Higher-level error messages for OCaml modules.

Inria Paris center (Paris, France).

Eight-week internship within the Cambium team, supervized by Florian Angeletti.

Small mistakes in OCaml modules often result in huge error messages that are both hard to read and uninformative, although technically correct. Indeed, some modules contain many thousands of items. Detecting typos in field names can greatly improve error messages by providing a few “did you mean”-like suggestions to the user instead of a long list of missing fields. In order to display those hints in reasonable time, we have explored a way to compute them efficiently using an ingenious combination of commonly known data structures and algorithms.

During this internship, we explored a way to improve OCaml module error messages by detecting spelling mistakes efficiently using an ingenious combination of algorithms and data structures. An implementation of this work in a fork of the OCaml compiler has been done, and will soon be proposed as a pull request on the main compiler branch.

Internship report.

L3 SIF (2023–2024).

ENS Rennes (Rennes, France).

As part of my third year of licence, I followed courses in the following scientific fields:

In those courses, we used C, C++, OCaml, and Python, as well as RISC-V assembly.

I also had a pedagogy module, as well as many seminars, and English classes.

Archived February 2024 L3 SIF webpage (in French).

CPGE MP2I/MPI (2021–2023).

Lycée du Parc (Lyon, France).

The MP2I/MPI pathway is part of the French “CPGE” system, which is an intensive two-year preparation program for entrance exams to grandes écoles, such as ENS Rennes. It corresponds to the first two years of licence. This pathway focuses specifically on mathematics, computer science, and physics. Students follow courses on computational complexity theory, formal languages, and logic. Studied languages are C, OCaml, and SQL.

Baccalauréat général (2021).

Very high honors (mention « Très bien »). Majors: computer science, mathematics and physics & chemistry.

The computer science major introduces students to basic topics such as graph theory, recursion, and object oriented programming.