top of page

I have experienced many different contexts for teaching:
- Engineering schools, CPGE and Universities, Bachelor and Master levels
- Optimization and Operations Research, Machine Learning and also basis of mathematics and computer science (algorithms and programming mainly)
- Lectures, Practical and exercise sessions, labs, projects

- Creation of new courses and labs, new labs in an existing course, or adaption to given materials
- in standard mode, and also in many different remote modes with the 2 years changing conditions with CoViD-19 health crisis.
- in French or in English

The full transcript of my teaching experiences is listed below.

​

I also experienced to make bridges between Operations Research, Machine Learning and good practices of Programming, in the Lectures and labs I created. Such approach was presented in the 2021 ROADEF conference: N. Dupin, D. Quadri, Enseigner en même temps la Recherche Opérationnelle avec de bonnes pratiques de programmation, c'est possible!, Mulhouse (distanciel) 2021.   Paper Slides

From my OR lectures in ENSTA Paris, Polytech' Paris-Saclay, and université Paris-Saclay, I put online a unified and extended version of my Operations Research and Discrete Optimization course in https://github.com/ndupin/ORteaching in French only, and distributed under a Creative Commons CC BY-NC-SA license. If the original lecture focused on an perspectives for engineers: initiation to the fundamental notions to use the OR tools or discuss with OR experts, teaching a similar course to selected students of Bachelor with a double specialization mathematics and computer science induced to develop more links and bridges with mathematical rigor and solid foundations of algorithms and theretical computer science. This course is organized as follows in the online version:

Optional Introduction chapters, to recall or mention results with continuous optimization, to highlight differences with discrete and mixed optimization, to avoid confusions. N.B: it is also interesting before Machine Learning courses to have notions of gradient algorithms. For this course, one can see also the simplex algorithm as a specialized projected gradients algorithm for Linear Programs:

- OA00-OptimDimension1.pdf : recall of properties and general difficulties of continuous optimization in dimension one (one variable)
- OA0-OptimDimensionN.pdf : from unconstrained to constrained optimization and numerical algorithms for optimization in R^n.


First part of the course, with foundations of discrete and linear optimization, first fundamental algorithms and modeling techniques for linear optimization

- OA1-optim-complexite.pdf : introduction to discrete optimization, general definitions for Linear Programming (LP), (Mixed) Integer Linear Programming ((M)ILPs), recalls for complexity theory, modeling first ILPs (knapsack problem and variants)
- OA2-ProgDynamique.pdf : Cases studies to solve optimization with dynamic programming algorithms: knapsacks, shortest path problems, traveling salesman problem, 1D clustering and industrial application in train timetabling
- OA3-PL-dualite.pdf : solving LPs: graphical resolution with two variables, simplex algorithm, elements of duality theory
- OA4-model-PLNE.pdf : general techniques to linearize and model complex optimization problems as MILPs, applications to assignment, clustering, scheduling problems, application to power production.
- OA5-optim-graphes-PLNE.pdf : ILP modeling of graph optimization problems: covering, vertex coloring, maximum cliques/independent sets, shortest path problems, traveling salesman problem. Presentation of simple heuristics and use of LP theory for graph optimization.

Last part of the course OA focus on tree search algorithms and variants of the Branch&Bound algorithm to solve combinatoiral optimization problems.

- OA6-KnapsackResolution.pdf : solving the standard knapsack problem: greedy algorithms, dynamic programming heuristic with Kernel Search, Branch&Bound.
- OA7-resolPLNE.pdf :  generalization of the Branch&Bound presented for the knapsack problem: Branch&Bound algorithm, operators and tools to solve MILPs.
- OA8-treeSearch.pdf: generalization of Branch&Bound: Branch&Cut, Branch&Bound without LP relaxation, Branch&Reduce, other tree search for AI and OR: Beam Search and analogy between Branch&Bound and Constraint Programming.
- OA9-DW.pdf: Lagrangian relaxation, Column Generation algorithm, Dantzig Wolfe reformulation and Branch&Price.
- OA10-Benders-OptimUncertain.pdf: Bender's decomposition and introduction to stochastic and robust optimization for optimization under uncertainty

 


Another course, initiation to meta-heuristics for combinatorial optimization, as an application of parallel and distributed programming with MPI (Message Passing Interface)
- MPI-MH.pdf

For the MPI part, the course is classical and not put on line. I refer to the course of Frank Nielsen from Ecole Polytechnique, with an excellent handout in French:

https://www.researchgate.net/publication/326234797_Traitement_des_donnees_massives_INF442

​

An extended version of the handout in English is published as a Springer book: https://link.springer.com/book/10.1007/978-3-319-21903-5 . Extra materials for labs from the course of Frank Nielsen can be found here:https://franknielsen.github.io/HPC4DS/index.html


In this course Machine Learning algorithms are presented and used as an application of MPI programming, whereas in my course, I chose meta-heuristics for combinatorial optimization as an application of parallel and distributed computing with MPI, which completes exact optimization course in the curriculum of the Advanced Networks and Optimization (ANO) Master of Université Paris-Saclay.
 

___________________________

​

Transcript of Lectures and Practical sessions I gave:

​

________________________

​

sept 2022 - ... : Université Angers. Associate Professor

​

Master Computer Science:

- M1: Combinatorial Optimization, Practical Sessions

​

Bachelor Computer Science:

- L3: Object Oriented Programming in C++, introduction to Qt, Practical Sessions

- L3: Graph Algorithms, Practical Sessions

- L1: Introduction to Linux, Lectures and Practical Sessions

- L1: Algorithms (2), Lectures and Practical Sessions

- L1: Databases (1), Lectures and Practical Sessions

- L2: Object Oriented Programming in Java, Practical Sessions

​

jan 2019 - 2022 : Université Paris-Saclay. Assistant Professor (full-time)

​

​

2021-2022

​

Master Computer Science, specialization "Advanced Network and Optimization":

- Parallel Programming with MPI, Lectures and Practical Sessions

- Multi-Objective Optimization,  Lectures and Practical Sessions

- TER: initiation to research, Lectures and Practical Sessions (and course responsability) CoursePage

​

Bachelor Mathematics and Computer Science:

- LDD3: Optimization and Applications, Lectures and Practical Sessions

​

Bachelor Computer Science:

- L3: Introduction to combinatorial optimization, Practical Sessions

- L2: Mathematics for Computer Science, Practical Sessions CoursePage

_____________

​

2020-2021

​

Master Computer Science, specialization "Advanced Network and Optimization":

- Parallel Programming with MPI, Lectures and Practical Sessions

- Multi-Objective Optimization,  Lectures and Practical Sessions

- TER: initiation to research, Lectures and Practical Sessions (and course responsability) CoursePage

​

Polytech Paris-Sud, 4th year engineering school (Master 1):

- Integer Linear Programming, Lectures and Practical sessions

​

Bachelor Mathematics and Computer Science:

- LDD3: Optimization and Applications, Lectures and Practical Sessions

​

Bachelor Computer Science:

- L3: Introduction to combinatorial optimization, Practical Sessions

_____________

​

2019-2020

​

Master 1 Computer Science:

- TER: initiation to research, Lectures and Practical Sessions (and course responsability) CoursePage

- Parallel Programming with MPI, Lectures and Practical Sessions

- Continuous and discrete Optimization, Practical Sessions

​

Polytech Paris-Sud, 4th year engineering school (Master 1):

- Integer Linear Programming, Lectures and Practical sessions

​

Bachelor Computer Science:

- L3: Introduction to combinatorial optimization, Practical Sessions

- L2: Graphs and logical tools, Practical Sessions CoursePage

- L2: Mathematics for Computer Science, Practical Sessions CoursePage

_____________

​

2018-2019

​

Master 1 Computer Science:

- TER: initiation to research, Lectures and Practical Sessions CoursePage

- Parallel Programming with MPI, Lectures and Practical Sessions

- Introduction to Machine Learning, Practical Sessions CoursePage

- Continuous and discrete Optimization, Practical Sessions

​

Bachelor Computer Science:

- L3: Introduction to combinatorial optimization, Practical Sessions

- L2: Introduction to functional programming (OCaml), Practical Sessions CoursePage

​

__________________________

​

Formerly:

​

2019 - 2021: Université de Lorraine, temporary teacher ("enseignant vacataire"). Lecture for Master 2 students, Industrial applications of scheduling: train timetabling and power generation. Slides caseSNCF caseUCPexact UCPmatheuristics caseMaintenances

​

2016 - 2021: ENSTA ParisTech, temporary teacher ("enseignant vacataire"). Lectures and practical sessions of Operations Research applied to System Engineering in the Engineering cursus MIV 307 and for the FAIS cursus for graduated engineers. Linear Optimization/Programming, Meta-heuristics, and Multi-objective Optimization.  FAIS   MIV307 SlideModel SlideResol

​

2017 : Ecole Polytechnique, temporary teacher ("enseignant vacataire"). Practical sessions of the Course INF 442, initiation to big data,  C++/ and high performance computing with MPI. Course page

​

sept 2016 - jun 2018 : ISAE-Supaéro, Toulouse, collective projects "Projets Ingénierie et Entreprise" (PIE), supervizing groups of 6 students, technical definition and specification of the project, project management "from a customer point of view". qualification. PIE

​

jan 2012 - may 2012: Université de Bordeaux, temporary teacher ("enseignant vacataire"). Project supervision,"TER" for master 1 students. Project given for exact optimization of a vehicle routiong problem, to solve with OPL and Cplex as  MILP solver.

​

sept 2007 - jun 2017 : CPGE Lycée Henri IV, Paris: temporary teacher for exercises sessions (Khôlleur) in Mathematics at Bachelor level.

​

​

bottom of page