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.

  • Facebook Clean Grey
  • LinkedIn Clean Grey
bottom of page