Teaching

Since September 2021, I am an associate professor at Sorbonne University, with my teaching duty in the Faculty of Science and Engineering and at Polytech Sorbonne. From September 2017 to August 2021, I was an associate professor at the University of Limoges, France. Half of my teaching duty was in the Departement of Computer Science (Dept. Comp. Sci.) and the other half was in the Departement of Information and Communication Technologies (Dept. ICT). From September 2018 to August 2021, I was co-chair of the DEUST Webmaster & Métiers de l’Internet. Below, clicking on one of the courses will unroll some details about the context and content of this course.

Spring 2024 (Sorbonne Univ., France)

Student project supervision (??h)Supervision of a project of software development by students in second-year of Bachelor in double major Math/CS. Supervision of projects of students in Master SFPN.

Foundations of algebraic algorithms (76h)Main instructor of this course, for M1 students in Master SFPN/MAIN at Sorbonne Université / Polytech Sorbonne.

Python programming (20h)Main instructor of this course, an advanced introduction to Python programming (regular expressions, object-oriented programming, external libraries numpy/matplotlib/pandas, automatic differentiation, …) for 3rd year students in the MAIN specialty at Polytech Sorbonne.

Fall 2023 (Sorbonne Univ., France)

Numerical representations and methods (42h)Teaching assistant for this course, for Bachelor students in Computer Science.

Algorithmes Efficaces en Calcul Formel (18h, Master MPRI)Co-instructor of this course, for M1 students in the Parisian Master of Research in Computer Science (MPRI). I gave four lectures of three hours each, providing an introduction to the course as well as to computations with univariate polynomial matrices.

Spring 2023 (Sorbonne Univ., France)

Student project supervision (18h)Supervision of a project in software development by students in second-year of Bachelor in double major Math/CS. Supervision of projects of students in Master SFPN.

Foundations of algebraic algorithms (44h)Main instructor of this course, for M1 students in Master SFPN/MAIN at Sorbonne Université / Polytech Sorbonne.

Fall 2022 (Sorbonne Univ., France)

Numerical representations and methods (38.5h)Teaching assistant for this course, for Bachelor students in Computer Science.

High-performance computing (40h)Teaching assistant for this course, for M1 students in Master SFPN/MAIN at Sorbonne Université / Polytech Sorbonne.

Informatique 2, Fortran (28h)Main instructor of this course, for M1 students in Earth Sciences at Polytech Sorbonne.

Algorithmes Efficaces en Calcul Formel (18h, Master MPRI)Co-instructor of this course, for M1 students in the Parisian Master of Research in Computer Science (MPRI). I gave four lectures of three hours each, providing an introduction to the course as well as to computations with univariate polynomial matrices.

Spring 2022 (Sorbonne Univ., France)

Student project supervision (14h)Supervision of a project in software development by two students in second-year of Bachelor in double major Math/CS. Co-supervision of the project of two students in Master SFPN.

Foundations of algebraic algorithms (55h)Co-instructor of this course, for M1 students in Master SFPN/MAIN at Sorbonne Université / Polytech Sorbonne.

High-performance computing (40h)Teaching assistant for this course, for M1 students in Master SFPN/MAIN at Sorbonne Université / Polytech Sorbonne.

Fall 2021 (Sorbonne Univ., France)

Numerical and Symbolic Algorithms Modeling (14h)Co-instructor of this course, for M1 students in Master SFPN at Sorbonne Université.

Informatique 2, Fortran (28h)Main instructor of this course, for M1 students in Earth Sciences at Polytech Sorbonne.

Algorithmes Efficaces en Calcul Formel (13.5h, Master MPRI)Co-instructor of this course, for M1 students in the Parisian Master of Research in Computer Science (MPRI). I gave three lectures of three hours each, providing an introduction to computations with univariate polynomial matrices.

Spring 2021 (Univ. Limoges, France)

Scientific computation and parallelization (Dept. Comp. Sci., 17.5h)

Co-instructor, with Benoît Crespin, of this course intended for fourth-year students in Computer Science.


Operating systems (Dept. Comp. Sci., 67.5h)

Instructor of this course, intended for third-year students in Computer Science. This is an introduction to operating systems. The following concepts will be studied: architecture, processes, memory management, input-output, and security.


Unix Programming (Dept. Comp. Sci., 20h)

Co-instructor, with Benoît Crespin, of this course intended for second-year students in Computer Science.


Introduction to algorithms, part 2 (Dept. Comp. Sci., 52.5h)

Instructor of this course, intended for first-year students in Computer Science.


Fall 2020 (Univ. Limoges, France)

Dynamic web pages and Databases (Dept. ICT, 27h)

Co-instructor with Baptiste Saint-Pierre. This course is taught online and intended for second year students in DEUST Webmaster & Internet expertise. This course gives an introduction to dynamic web pages (with the language PHP) and to databases (with the language SQL).


Database management (Dept. ICT, 60h)

Instructor of this course, which is taught online. Students: first year in DEUST Webmaster & Internet expertise. This course gives an introduction to to the design and management of databases. Implementations are done with the language SQL.


Spring 2020 (Univ. Limoges, France)

Supervision of internships in a professional environment (Dept. ITC, 12 hours)

Academic advisor for the internships of 6 students towards their diploma for the program “DEUST Webmaster & Métiers de l’Internet”, focusing on web development and integration.


Operating systems (Dept. Comp. Sci., 46.5h)

Instructor of this course, intended for third-year students in Computer Science. This is an introduction to operating systems. The following concepts will be studied: architecture, processes, memory management, input-output, and security.


Unix Programming (Dept. Comp. Sci., 20h)

Co-instructor of this course, intended for second-year students in Computer Science.


Introduction to algorithms, part 2 (Dept. Comp. Sci., 31.5h)

Instructor of this course, intended for first-year students in Computer Science.


Fall 2019 (Univ. Limoges, France)

Dynamic web pages and Databases (Dept. ICT, 34h)

Co-instructor with Baptiste Saint-Pierre. This course is taught online and intended for second year students in DEUST Webmaster & Internet expertise. This course gives an introduction to dynamic web pages (with the language PHP) and to databases (with the language SQL).


Database management (Dept. ICT, 59h)

Instructor of this course, which is taught online. Students: first year in DEUST Webmaster & Internet expertise. This course gives an introduction to to the design and management of databases. Implementations are done with the language SQL.


Spring 2019 (Univ. Limoges, France)

Supervision of internships in a professional environment (Dept. ITC, 6 hours)

Academic advisor for the internships of 3 students towards their diploma for the program “DEUST Webmaster & Métiers de l’Internet”, focusing on web development and integration.


Algorithms and programming (Dept. Comp. Sci., 15h)

Lab sessions for this course on the fundamentals of programming and algorithms, for first year students in Computer Science.


Operating systems (Dept. Comp. Sci., 34.5h)

Instructor of this course, intended for third-year students in Computer Science. This is an introduction to operating systems. The following concepts will be studied: architecture, processes, memory management, input-output, and security.


Unix Programming (Dept. Comp. Sci., 31.5h)

Instructor of this course, intended for second-year students in Computer Science.


Fall 2018 (Univ. Limoges, France)

Dynamic web pages and Databases (Dept. ICT, 42h)

Co-instructor with Baptiste Saint-Pierre. This course is taught online and intended for second year students in DEUST Webmaster & Internet expertise. This course gives an introduction to dynamic web pages (with the language PHP) and to databases (with the language SQL).


Database management (Dept. ICT, 71h)

Instructor of this course, which is taught online. Students: first year in DEUST Webmaster & Internet expertise. This course gives an introduction to to the design and management of databases. Implementations are done with the language SQL.


Capstone course in Computer Science and Algorithms (ESPE de Limoges, 12h)

Co-creator and co-instructor of this course with Tristan Vaccon. Intended for students who are preparing the French competitive exam CAPES in Mathematics, and are in their first year of a Master’s degree on Teacher and Education jobs.


Spring 2018 (Univ. Limoges, France)

Operating systems (Dept. Comp. Sci., 37.5h)

Instructor of this course, intended for third-year students in Computer Science. This is an introduction to operating systems. The following concepts will be studied: architecture, processes, memory management, input-output, and security.


Fall 2017 (Univ. Limoges, France)

Dynamic web pages and Databases (Dept. ICT, 27h)

Co-instructor with Guillaume Andrieu and Baptiste Saint-Pierre. This course was taught online and intended for second year students in DEUST Webmaster & Internet expertise. This course gives an introduction to dynamic web pages (with the language PHP) and to databases (with the language SQL).


Database management (Dept. ICT, 37h)

Instructor of this course, which was taught online. Students: first year in DEUST Webmaster & Internet expertise. This course gives an introduction to to the design and management of databases. Implementations were done with the language SQL.


Informatique 1 (Dept. Comp. Sci., 27 hours)

Instructor: Guillaume Gilet. This course gives an introduction to algorithms and programming for first year students in Computer Science. I was responsible for the practical sessions of a group with about 15 students; the chosen programming languages were Sketch and Processing.


Spring 2016

Cryptography and Security (ENS de Lyon, Lyon, France, 20 hours)

Instructors: Benoît Libert and Damien Stehlé. This course is intended for Graduate students in computer science.
Cryptography aims at securing communications against malicious parties. This field enjoys numerous links with theoretical computer science (complexity theory, security proofs) but has also a very rich practical counterpart: Cryptographic protocols are part of every-day life (electronic commerce, payment cards, electronic voting, etc).
This course is an introduction to the different facets of modern cryptography. The following topics will be addressed: Symmetric encryption, Asymmetric encryption, Cryptographic hashing, Authentication, Pseudo-random number generators, Zero-knowledge proofs, Public-key infrastructure, Cryptanalysis, Provable security, Secret sharing. We will also describe several practical applications, such as PGP, TLS/SSL and electronic voting.


Functional and recursive algorithms and programming (University Lyon I, Lyon, France, 27 hours)

Instructor: Florence Zara. Students: first year in Computer Science.
Functional and recursive programming in Scheme (Notions: function, recursiveness, alternative, memorization, deep recursiveness, higher order programming; Data structures: lists, trees; Algorithms: traversing a list, sorting a list, traversing a tree), and logic (Propositional logic; Truth tables; transformation rules; Boolean algebra; Simplifying boolean functions: Quine-McCluskey algorithm, Karnaugh maps).


Hardware and software architecture (University Lyon I, Lyon, France, 17 hours)

Instructor: Nicolas Louvet, Laure Gonnord. Students: second year in Computer Science.
The goal of this course is to present the fundamental principles behind how computers work, both on the level of hardware and of the lowest layers of the operating system. We will first study the basic blocks (logic circuits, microprocessors, buses, memory), then the notions of architecture and of set of instructions, to finally move up to the assembly language. Thus, the goal is to gain knowledge about notions that will later allow studying operating systems and compilation, and also to better understand the problems related to software performance.


Spring 2015

Introduction to probability theory (ENS de Lyon, Lyon, France, 32 hours)

Instructor: Pascal Koiran.
This course is intended for students in their last year towards a Bachelor’s degree in theoretical computer science. It is an in-depth introduction to the concepts of probability theory illustrated with many examples of applications in computer science and discrete mathematics (probabilistic algorithms, average-case analysis, probabilistic methods in combinatorics…).


Cryptography and Security (ENS de Lyon, Lyon, France, 24 hours)

Instructors: Benoît Libert and Damien Stehlé. This course is intended for Graduate students in computer science.
Cryptography aims at securing communications against malicious parties. This field enjoys numerous links with theoretical computer science (complexity theory, security proofs) but has also a very rich practical counterpart: Cryptographic protocols are part of every-day life (electronic commerce, payment cards, electronic voting, etc).
This course is an introduction to the different facets of modern cryptography. The following topics will be addressed: Symmetric encryption, Asymmetric encryption, Cryptographic hashing, Authentication, Pseudo-random number generators, Zero-knowledge proofs, Public-key infrastructure, Cryptanalysis, Provable security, Secret sharing. We will also describe several practical applications, such as PGP, TLS/SSL and electronic voting.


Fall 2014

CS 1037a --- Computer Science Fundamentals II (C++) (Western University, London ON, Canada, 40 hours)

Instructor: Ali Bou Nassif.
Syllabus: this course is intended for students in the Faculty of Engineering. Emphasis is placed on Arrays, Pointers, Vectors and Object Oriented Programming such as Classes, Data Encapsulation, Inheritance and Polymorphism. Data Structure types such as Linked Lists, Stacks and Queues will be briefly introduced. The main language of this course is C++.


Spring 2014

Introduction to probability theory (ENS de Lyon, Lyon, France, 32 hours)

Instructor: Pascal Koiran.
This course is intended for students in their last year towards a Bachelor’s degree in theoretical computer science. It is an in-depth introduction to the concepts of probability theory illustrated with many examples of applications in computer science and discrete mathematics (probabilistic algorithms, average-case analysis, probabilistic methods in combinatorics…).


Computer algebra (ENS de Lyon, Lyon, France, 24 hours)

Instructors: Guillaume Hanrot and Jean-Michel Muller.
This course is intended for Graduate students in computer science.


Fall 2013

CS 1037a --- Computer Science Fundamentals II (C++) (Western University, London ON, Canada, 40 hours)

Instructor: Yuri Boykov.
Syllabus: this course is intended for students in the Faculty of Engineering. Emphasis is placed on data structures (lists, queues, trees), basic algorithms (searching, sorting) and their analysis. Students will learn both how to use and how to implement data structures in C++, leveraging powerful language concepts (templates, classes) where appropriate.


2011–2012

Oral exams in Mathematics (la Martinière-Monplaisir, Lyon, France, 52 hours)

Fourty-minute oral exams in Mathematics for students in their first year of “preparatory classes for the Grandes Écoles”.


2010–2011

Introduction to algorithmics (la Martinière-Monplaisir, Lyon, France, 48 hours)

Practical Matlab sessions that served as an introduction to Computer Science for students in their first year of “preparatory classes for the Grandes Écoles.