Martin Pépin

About me


Since the 1st September 2023, I am a French “maître de conférences” (≈ lecturer) at GREYC (Unicaen (Université Caen Normandie) in the Amacc team. Before that I did a post-doc with Olivier Bodini at LIPN in the CALIN team, a post-doc with Thomas Ehrhard at IRIF in the “Algèbre et Calcul” group, and I did my PhD at LIP6 (Sorbonne Université) in the APR team under the supervision of Antoine Genitrini and Frederic Peschanski. My research revolves around the study of programming concepts under the lens of combinatorics, providing theoretical and algorithmic tools to analyse them. In particular, I develop efficient (uniform) random generation algorithms to experiment with and test complex systems that would be hard to tackle exhaustively.

I also like to program a lot, for fun and also as a research activity. I consider it to be a real part of research to provide a clean and usable implementation of the algorithms and ideas we develop; and I dedicate a good part of my time to it.

PhD thesis

I defended my PhD thesis, entitled "Quantitative and algorithmic analysis of concurrent programs", on Wednesday, September 29th 2021 in Paris. The most up-to-date version of the manuscript is available here.



Random Generation of Git Graphs

Julien Courtiel, Martin Pépin

[HAL] [arXiv]

Asymptotic analysis and efficient random sampling of directed ordered acyclic graphs

Martin Pépin, Alfredo Viola

[arXiv] [PDF]


Uniform SAmplINg with BOLTZmann [tool paper]

Matthieu Dien, Martin Pépin

SYNASC 2023 - 25th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing


Automatic Synthesis of Random Generators for Numerically Constrained Algebraic Recursive Types

Ghiles Ziat, Vincent Botbol, Matthieu Dien, Arnaud Gotlieb, Martin Pépin, Catherine Dubois

Accepted for presentation at LOPSTR 2022

[HAL] [arXiv]

A quantitative study of fork-join processes with non-deterministic choice: application to the statistical exploration of the state-space

Antoine Genitrini, Martin Pépin, Frédéric Peschanski

Theoretical Computer Science 2021, 912


Lexicographic unranking of combinations revisited

Antoine Genitrini, Martin Pépin

Algorithms 2021, 14(3), 97


Unlabelled ordered DAGs and labelled DAGs: constructive enumeration and uniform random sampling

Antoine Genitrini, Martin Pépin, Alfredo Viola

LAGOS 2021 - XI Latin and American Algorithms, Graphs and Optimization Symposium


Statistical Analysis of Non-Deterministic Fork-join Processes

Antoine Genitrini, Martin Pépin, Frédéric Peschanski

ICTAC 2020 - 17th International Colloquium on Theoretical Aspects of Computing



Directed Ordered Acyclic Graphs - Enumeration, uniform sampling and links with classical labelled DAGs

November 2022 Séminaire CALIN [slides]

Statistical Analysis of Non-Deterministic Fork-join Processes

December 2020 ICTAC'20 [slides]


A short and non-exhaustive list of softwares I have developed or contributed to as part of my research: Other non research-related projects can be found on my GitHub, the GitHub of « Les Boloss⋅es », and on the ENS gitlab.

Teaching - past years

Éléments de programmation 2 (LU1IN002)

Jan. 2021 (38h) - Written exercises

Programming class in C for first year students.

Projet STL (PSTL)

Feb. 2020

Tutoring of master students on programing projects:

  • Implementation and comparison of modern sorting algorithms.
    Their work is available on Github.
  • Development of a web inteface for a pedagogical tool helping students of the functional programming class (LU2IN019) understanding the evaluation model of the subset of OCaml taught in the class.
    Their work is available on Gitlab and a demo in running here.

Programmation fonctionnelle (LU2IN019)

Sept. 2019 (38h) - Written & practical exercises

Introduction to functional programming in OCaml for second year students.

Groupe de recherche (GRAPA)

Sept. 2019 (6h)

Tutoring of master students on a research project.

Ateliers de Recherche Encadrée (ARE CALRAIS)

Feb. 2019 (20h) - Tutoring

Introduction to the research methodology for first year students.

Fonctions et procédures de calcul (2I008)

Feb. 2019 (19h) - Practical exercises

Programming class in OCaml in the functional and imperative styles for second year students.

Algorithmique Avancée (ALGAV)

Sept. 2018 (10h) - Written exercises

Advanced algorithmic class for master students.

Analyse d'algorithmes et Génération aléatoire (AAGA)

Sept. 2018 (8h) - Practical exercises

Algorithm analysis and random generation of integers and tree-like structures.

Éléments de programmation 1 (I1001)

Sept. 2018 (19h) - Practical exercises

Introduction to programming for first year students.