Didactic material
Slides that I prepared for my classes can be freely downloaded from this page.

Bash Scripting.
This lecture introduces Bash scripting. It starts with a presentation of Bash as a intepreted programming language,
and it continues with an overview of commands and some scripts for interacting with the file system.
Many simple examples are provided, and attention is also given to the efficiency of the proposed implementations.
Among the others, commands such as "bc" and "awk" are presented.

Algorithms in Bioinformatics.
The main focus of this short lecture is on the Molecular Distance Geometry Problem (MDGP,
see my research page) and on a new approach for its discretization.
The discretization allows us to solve the problem by employing a branchandprune algorithm.
However, particular assumptions, that are strongly based on the order on which the atoms of a molecule are considered,
need to be satisfied for performing the discretization ...

Algorithmics and C basis.
This is a quick introduction to algorithmics, with some basic examples in C programming language.
Some more advanced concepts, such as the procedural programming, the pointers in C and software libraries,
are also mentioned.

C++ in 90 minutes.
A quick introduction to the C++ programming language.

Notions of Numerical Analysis.
This lecture gives some quick notions of Numerical Analysis. It includes short discussions about
linear systems, the problem of finding roots of realvalued functions, interpolation, numerical integration and optimization.

Data Mining and Clustering.
This lecture was given at the École Polytechnique (Palaiseau) in 2009.
It's a quick introduction to data mining, where the main focus is on clustering techniques.
Part of the lecture is devoted to the socalled Proogle project, a sort of Google
for projects, that I used as an excuse for presenting various clustering problems,
that are necessary for the development of the considered project.
Teaching experiences over the last years
The following is meant to be a complement to my cv online.
My teaching service for the current year is there detailed.
Details about other classes I gave during the past years follow.
Previous classes given at University of Rennes 1

Applied Informatics
(in French, "Informatique Appliquée",
PCSTM
).
University of Rennes 1.
First semester, academic year 201112. Level L2 (B.Sc).
The main objective of the course is to present the basics of algorithmics.
Typical problems in the fields of numerical analysis and operational research are studied with the aim of
proposing some simple algorithms for their solution. Generally, the easiest algorithms for a given problem are
considered in this course, and additional references are given to the students who are interested in learning more about the topic.
Practical exercises are also proposed to the students (7 TPs).

Operational Research
(in French, "Recherche Opérationnelle",
Master Miage
).
University of Rennes 1.
First semester, academic years from 201213 to 201516. Level M1 (B.Sc).
This course was organized by
Rumen Andonov.
Syllabus: linear programming, simplex method, modeling, AMPL.

Graph Algorithms
(in French, "Algorithmique des Graphes",
Informatics
).
University of Rennes 1.
First semester, academic years from 201213 to 201415. Level L3 (B.Sc).
This course was organized by
Rumen Andonov.
Syllabus: shortest paths, spanning trees, scheduling.

Basis of Informatics
(in French, "Initialisation aux systèmes et réseaux",
Master BIG
).
University of Rennes 1.
First semester, academic years from 201314 to 201617. Level M1 (M.Sc).
This class was organized in collaboration with
Emmanuel Giudice.
Syllabus: Introduction to Unix/Linux commands, bash scripting, text manipulation, makefile, archives, network tools, Apache, perl.

Object Oriented Programming with Java
(in French, "Programmation orienté à objets",
Master BIG
).
University of Rennes 1.
Second semester, academic years from 201415 to 201617. Level M1 (M.Sc).
This class was organized in collaboration with
Emmanuelle Becker.
Syllabus: advanced Java, inheritance, implementation of more and more complex applications in Java.

Algorithms for sequence and structure analysis
(in French, "Algorithmique des sequences et structures",
Master BIG
).
University of Rennes 1.
First semester, academic years from 201314 to 201617. Level M2 (M.Sc).
This class was organized in collaboration with
Rumen Andonov
and
Pierre Peterlongo.
Syllabus: graph algorithms, sequence alignment, distance geometry for structural biology.

Programming 1
(in French, "Programmation 1",
Informatics
).
University of Rennes 1.
First semester, academic year 201112. Level L3 (B.Sc).
This course was organized by
Mickael Foursov.
Syllabus: Java, objectedoriented programming, inheritance, lists, binary trees.

Network Sizing
(in French, "Dimensionnement des Réseaux",
ESIR
).
University of Rennes 1.
First semester, academic year 201112. Level M2 (M.Sc).
This course was organized in collaboration with
Rumen Andonov
and
Cedric Gueguen.
Syllabus: network engineering, modelization, performance evaluation, linear programming, CPLEX, AMPL.
École Polytechnique (Palaiseau, academic years 200810)

Introduction to C++.
École Polytechnique, Palaiseau, France.
September 15th, 2009.
In this lecture, the basis of the programming language are introduced.
Part of the lecture is devoted to control structures, functions,
programming paradigms (procedural and objectoriented programming),
classes, inheritance, polymorphism, exceptions.
Pratical examples are provided.

Operational Research.
École Polytechnique, Palaiseau, France.
November/December, 2008.
Visit the web site of the course (ISC610A).
Topics: data mining, clustering, optimization, solution of the presented problems by AMPL.
The slides of the lecture can be downloaded here.
Slides for 3 TDs are also available:
TD3,
TD4,
TD5.
Some of the exercises discussed during the lectures are available for download:
TDsexercises.tar.gz
Second University of Naples (Italy, academic years 200106)

Informatics
Given 4 times at the Second University of Naples, for the Course in Biology, as assistant.
Syllabus: fundamentals of computer organization and architecture, introduction to the development of algorithms,
use of Microsoft Office and basic use of Matlab for the visualization and analysis of biological data.
The course was taught as assistant every academic year, from 2001/02 to 2004/05.

Introduction to Numerical Methods for Optimization
Given at the Second University of Naples, for the Courses in Mathematics and
Mathematics and Informatics, as assistant.
Syllabus: methods for solving unconstrained optimization problems.
The course was taught as assistant in the academic year 2005/06 in the second semester.

Parallel Computing
Given 4 times at the Second University of Naples, for the Courses in Mathematics and
Mathematics and Informatics, as assistant.
Syllabus: methods and strategies for developing parallel software procedures for MIMD computers.
The course was taught as assistant every academic year, from 2002/03 to 2005/06, in the first semester.

Numerical Computations
Given 4 times at the Second University of Naples, for the Courses in Mathematics and
Mathematics and Informatics, as assistant.
Syllabus: solution of linear systems by direct and iterative methods, data representation
and interpolation, quadrature formulas, the C programming language.
The course was taught as assistant every academic year, from 2002/03 to 2005/06, in the second semester.

Introduction to Programming
Given 4 times at the Second University of Naples, for the Courses in Mathematics and
Mathematics and Informatics, as assistant.
Syllabus: floatingpoint arithmetic, roundoff errors and basic matrix computation.
The course was taught as assistant every academic year, from 2002/03 to 2005/06, in the second semester.

Introduction to Informatics
Given 4 times at the Second University of Naples, for the Courses in Mathematics and
Mathematics and Informatics, as assistant.
Syllabus: basic informatics concepts and introduction to Fortran.
The course was taught as assistant every academic year, from 2002/03 to 2005/06, in the first semester.

Introduction to HTML
Minicourse given 3 times at the Second University of Naples.
Syllabus: introduction to the development of simple web pages by HTML.
The minicourse was taught as teacher the academic years 2003/04, 2004/05 and 2005/2006.

Computational Mathematics
Given 2 times at the Second University of Naples, for the Courses in Mathematics, as assistant.
Syllabus: methods and strategies for developing parallel software procedures for MIMD computers.
The course was taught as assistant in the academic years 2002/03 and 2003/04, in the first semester.

Programming and Numerical Computations
Given 2 times at the Second University of Naples, for the Courses in Mathematics, as assistant.
Syllabus: data representation, interpolation, quadrature formulas,
direct and iterative methods for linear systems,
solution of nonlinear equations, the C programming language, introduction to Matlab.
The course was taught as assistant every academic years 2002/03 and 2003/04, in the second semester.

Numerical Analysis
Given 3 times at the Second University of Naples, for the Courses in Mathematics, as assistant.
Syllabus: computer architecture, floatingpoint arithmetic, roundoff errors, basic linear algebra
and introduction to Fortran.
The course was taught as assistant every academic year, from 2002/03 to 2004/05, in the first semester.
