# My teaching activities¶

Note

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.

In February 2021, I had fun adding these applications there on my site, to be able to write small codes, give quick explanations without having to install anything on his computer: http://ocaml.besson.link for OCaml 4.08, http://jscpp.besson.link for C/C++, http://python.besson.link and http://notebook.besson.link for Python 3.8, http://turing.besson.link for Turing machines, and http://tableaunoir.besson.link for an interactive and super functional blackboard! Note: I did not develop these applications myself, they are all free under the MIT or GPLv3 license.

À 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

I am in charge of the training for Computer Science option for the national exam of « agrégation de mathématiques » (to become a teacher in maths and/or computer science) (

**« prépa agrég »**, option D), and in particular I’m in charge of the practical sessions of programming, in Python 🐍 and OCaml 🐫. (80 h / year) The time table is here!I give the course of Introduction to Algorithmic

**(ALGO1)**for the first year student (in L3) at ENS de Rennes (see the page for the same course in the maths department, given by François Schwarzentruber). (20h / year)I give the tutorial sessions for the course of Advanced Algorithmic

**(ALGO2)**, for the first year student (in L3) at ENS de Rennes, given by Nathalie Bertrand. (20h / year)I’m also in charge of the bi-monthly research seminar of the Computer Science department, of some visits of research labs, and of the internships of first year students (in L3) at ENS de Rennes, as well as responsible of sorting the admission on file of new students (not the competitive exam). (60h / year)

Avertissement

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).

For more details on the oral exams I am giving for the « Computer Science option for agrégation » at ENS de Rennes, see this page (2017/2018 and 2018/2019).

For more details on the TAing I am doing for the course « Complexity and Computability » at ENSAI, see this page (only 2017/2018).

I helped for some practical sessions theoretical computer science using OCaml, for students in prep” school (MPSI), at the Lycée Chateaubriand, in Rennes (not paid).

I gave again some training sessions for the exam in Computer Science for students in prep” school for the CentraleSupélec national entrance exam (PSI), at the Lycée Joliot Curie, in Rennes. See the solutions of the problems we covered.

Note

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).

For more details on the oral exams for the « Computer Science option for agrégation » at ENS de Rennes, see this page.

For more details on the TAing for the course « Complexity and Computability » at ENSAI, see this page. I translated and tweaked this Turing machine simulator into French : my version is available here (open source on GitHub).

I also gave some training sessions for the exam in Computer Science for students in prep” school for the CentraleSupélec national entrance exam (prep” school PSI), at the Lycée Joliot Curie in Rennes. See the solutions of the problems we covered (not paid).

Note

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:

a teaching assistant for regular oral exams in Mathematics (2 hours a week). My references for the course content and the tutorial problems are these (

*French*) websites: mp.cpgedupuydelome.fr (mainly), these exercises by Nicolas Martin and by Loïc Devilliers, and « Le Frido », and this True/False by Roger Mansuy (and Wikipedia, of course).and as a Teaching Assistant for the common Computer Science course (based on this good book), with Python 3k and the open-source Pyzo environement (2 hours every 2 weeks). My references for the course content and the tutorial problems are Python’s documentation, introtopython.org and these problems written by Jill-Jênn Vie.

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 bitbucket.org/lbesson/info-mp-2015-2016).

Note

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.

- Total
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:

*« About data-structures in Python (lists, sets, dictionaries) »*: slides_CS101_part3.pdf,*« Then, about the use of files in Python (open, read from and write to a file) »*: slides_CS101_part5_1.pdf,*« 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.

- Projects
In April 2015, we gave to our students a programming project, and my teams had two projects: one about matrices and linear algebra operations (→ mec-cs101-matrices.rtfd.io) and one about numerical integration techniques (→ mec-cs101-integrals.rtfd.io). I wrote the complete solutions for these two projects, in Python, and they are hosted on ReadTheDocs.org.

- Examples
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.

- Hackhathon
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:

Exams (MA102): exam papers and complete solutions,

Assignments (MA102): assignments and some solutions for the practical sessions (tutorial),

Techniques (MA102): some small documents summing up useful techniques of computations and proofs,

Quiz (MA102): small quiz exam papers and solutions.

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:

Exams (MA101): exam papers and complete solutions,

Assignments (MA101): assignments and some solutions for the practical sessions (tutorial),

Techniques (MA101): some small documents summing up useful techniques of computations and proofs,

Quiz (MA101): small quiz exam papers and solutions.

- 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).- Examens
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.

Note

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.