My teaching activities


I am Lilian Besson, professor of Computer Science at ENS Rennes, and former student in Mathematics and Computer Science at ENS de Cachan. I am a passionate programmer, an open-source enthusiast, and I did research for my PhD thesis, in machine learning, learning theory and cognitive radio. I also love to cook and meet people, to travel and exchange, to bike or hike, and I am chaotic-good even IRL. Welcome to my website.

In 2021/2022

I will be a full-time professor of Computer Science in Classes Préparatoires (in MP2I) from next September 2021, in lycée Kléber in Strasbourg.

I will teach full-time computer science at bac+1 level in France, and for now I started writing a few web-pages, here in this folder (and there on GitHub). I will also give a few oral exam in mathematics in Classes Préparatoires, some lectures and practical sessions in computer science in other classes in Lycée Kléber, and will most certainly stay involved with the class preparing for the new national competitive exam to become a professor in Computer Science (« Agrégation d’Informatique »), at Computer Science department at ENS Rennes (remotely).

Nowadays, as I now define myself as a « developer-teacher », I’ll stay very active in my programming and development activities, on GitHub, GitLab, and bitbucket.

À faire

Hey listen! 2021/22 is in the future! Don’t worry, I’ll update this section before september.

À faire

Update Tableaunoir, Basthon and BetterOCaml in the summer 2012, for more recent versions (Basthon will support OCaml !).

In 2020/2021

I kept the same responsibilities as last year 2019/2020, but I was also teaching two new courses:

  • A small course, of 6 lectures of 2 hours, of Introduction to Computer Science, for the first year students of the department « Droit Économie Management »: see the page of the course. I teach the basics of computer science, both from a historical and technological point of view, and the basics of programming with an introduction to the Linux/Mac/Windows shell (terminal) and with Python ;

  • I also give TDs and TPs (10 of each, 2*2*10h=40h) for the course Computer Science 1, for the first year students of Computer Science and Mathematics bachelors, at the University of Rennes 1. On my course page I give solutions to TDs and TPs in Java (and Python, for the curious) in Jupyter notebooks. I also made videos of TD and TP corrections in Java, published on this YouTube channel, I wrote and made the scale and correction of the CC2 and the MineSweeper Java project. (60 h / year)

  • I’m in charge of supervising a Wikipedia project (in French) for the Advanced Algorithms (ALGO2) course on the second semester.

In 2019/2020

I am a junior professor (agrégé préparateur) in Computer Science at ENS de Rennes


Information about the coronavirus outbreak, and how it affects me, and my teaching activities : please read this webpage : coronavirus.en.html, I am updating it regularly (as of 13/03/2020).

In all my teaching activities or anytime with students, I wish to be the exact opposite of the famous French comic actor Pierre Richard in this short video (in French, from the movie La moutarde me monte au nez (1974) - Leçon de Mathématiques) :

Keep in mind that we all have all the right to fail, and try again. As Master Yoda said, « The Greatest Teacher Failure is » :

In 2017/2018 and 2018/2019

I continued to teach, about 64 h / year, for 2017/2018 and 2018/2019, during my PhD in Rennes (France), at ENS de Rennes (for the « agrégation » national exam) and ENSAI (complexity and computability).

I gave oral exams and programming practical sessions (for OCaml) at ENS de Rennes (about 20 times 2h, level M2), and I was a teaching assistant (TA) at ENSAI (4 times 3h, for two groups, level L3).


I also evaluate research internship reports for students finishing their first year of Masters degree in theoretical Computer Science, at ENS de Rennes, as well as oral exam for students finishing the Bachelor degree and defending the thesis they wrote during their summer internship (September 2017 and 2018).

In 2016/2017

I had a teaching load of ~ 64 h / year, for 2016/2017, during my PhD in Rennes (France), at ENS de Rennes (for the « agrégation » national exam) and ENSAI (complexity and computability).

I was giving oral exams at ENS de Rennes (about 20 times 2h; level M2), and I was a teaching assistant (TA) at ENSAI (4 times 3h, for two groups; level L3).


Extras :

I was also in charge of evaluating research internship reports for students finishing their first year of Masters degree in theoretical Computer Science, at ENS de Rennes, in last September 2016. I gave a few practical sessions in programming and maths for students in Rennes training for the national competitive exam for CentraleSupélec engineering schools in June 2017. And I went to Lycée Pasteur in Lille in July 2017 to attend a lot of oral exams for the national « agrégation de mathématiques » competitive exam (maths, modeling and CS).

In 2015

Second semester of 2015 (in France)

Between September 2015 and June 2016, I was teaching, on a weekly basis, at Lycée Lakanal (at Sceaux, near Paris) in a preparatory class (MP), as:

Voir aussi

Complete solutions for the Computer Science course:

Hey, you can have a look to my solutions: to some algorithmic problems (written), to some written exams about algorithms and data structures, as well as some programming problems (implementation, on a computer, during a practical session) and exercises for the oral exams. I was doing my best to provide full solutions for every week, and keep them up-to-date. Feel free to explore them!

The solutions (Python files) are all in open access (→ infoMP/ folder), in French, and also open-source (on


Replacement in BCPST-2A (2nd year biology prep” school)

Between November 2015 and February 2016, I also gave one weekly hour of oral exam (in maths) for a class of BCPST 2 prep school.


For the scholar year 2015-16, I evaluate my teaching load to be about 106 hours (number of hours teaching to a group of students, or in charge of a practical session or an oral exam).

First semester of 2015 (in India)

  • CS101 @ MEC: in charge of the CS labs (practical sessions) and in charge of certain lectures! It was about 4 hours a week of CS labs, during 17 weeks, and 4 hours a week of lectures for 5 weeks (lectures were in an amphitheater of 115 students!). The slides for some of my lectures are here:

    1. « About data-structures in Python (lists, sets, dictionaries) »: slides_CS101_part3.pdf,

    2. « Then, about the use of files in Python (open, read from and write to a file) »: slides_CS101_part5_1.pdf,

    3. « And finally an introduction to scientific plotting in Python with MatPlotLib »: slides_CS101_part5_2..

    More resources are available:

    • Exams (CS101): exam papers and complete solutions,

    • Labs (CS101): assignments and complete solutions for the practical sessions (labs),

    • Solutions (CS101): solutions to various website or books about learning Python.


    In April 2015, we gave to our students a programming project, and my teams had two projects: one about matrices and linear algebra operations (→ and one about numerical integration techniques (→ I wrote the complete solutions for these two projects, in Python, and they are hosted on


    This new git repository (python-demos) now hosts about 60 examples of Python programs, involving various domains (such as image processing, scientific plotting, numerical or symbolical calculus, machine learning, linear algebra etc). These examples were and are here to illustrate what I covered during my lectures, in March and April 2015.


    For Pi day 2015 (3.14.15), I organized a huge hackhathon about pi (the number, but also pie charts). The written exam paper for the hackhathon is available here (publis/hackhathon). About 50 students worked on it and had fun together on that day!

  • MA102 @ MEC: in charge of one group for Maths tutorials (linear algebra and multi-variable calculus).

    More resources are available:

  • I am also at the origin of an initiative to help our MEC students by giving them lists of things to read or work on during the 2015 summer (work in progress).

Total 2

For the first semester of 2015, I evaluate my teaching load to be about 140 hours (number of hours teaching in front of a group or an amphitheater of students).

In 2014

Second semester of 2014 (in India)

  • MA101 @ MEC (July – December 2014). In charge of 3 groups (out of 8) for Maths tutorials (introduction to calculus and logical thinking). 6 hours weekly, during 17 weeks (~ 102 hours).

    More resources are available:

Total 1

For the second semester of 2014, I evaluated my teaching load to be about 110 hours (number of hours teaching in front of a group or an amphitheater of students).


During the whole year, I was also in charge of the exam papers for Maths and CS: conceive them, merge the ideas from the colleagues, then write everything (in \(\LaTeX2e{}\) of course), and write a complete and detailed solution, grade myself some of the papers and also overlook the grading done by my colleagues… With a total number of 9 exams (3 for MA101, 3 for CS101, 3 for MA102: 1st and 2nd Mid-Term, and Final), and about a dozen of quiz papers and lab exams, I became quite skilled at this kind of things.

First semester of 2014 (in France)

  • Regularly grading exam answer scripts @ corrections-rue-ulm (exam answer scripts of high-school students, in mathematics).

  • Occasionally helping high-school students and in charge of oral exams (at the level of Baccalauréat), with the « Cours Thalès » organization.


In 2014, I also got admitted to the French national competitive exam for becoming a prep” school professor (« agrégation ») in mathematics (with a major in maths, minor in CS).

Here are a lot of resources for preparing the exam (in French).

For the two scholar years 2014-15 and 2015-16, I asked to postpone the beginning of my carrier as a professor in the French secondary education, in order to properly conclude my training at École Normale Supérieure de Cachan (ENS of Cachan) (thanks to the choice « fin de scolarité normalienne »). From 2016-17, I am teaching 64 hours / year, to validate the internship require to become a full-track professor (« professeur agrégé »).

Between 2009 and 2013

Nothing serious, but I used to regularly help my friends for Chemistry, Engineering, Physics (2009-2011), and Maths and Computer Science of course (2009-2014).

Before 2009 (high-school and before)

I used to regularly help my friends for Maths, Chemistry, Biology, Physics… but also theater.