Teaching

Didactic material
Slides that I prepared for my classes can be freely downloaded from this page.
  1. 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.

  2. 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 branch-and-prune 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 ...

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

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

  5. 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 real-valued functions, interpolation, numerical integration and optimization.

  6. 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 so-called 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
  1. Applied Informatics (in French, "Informatique Appliquée", PCSTM ). University of Rennes 1.
    First semester, academic year 2011-12. 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).

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

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

  4. Basis of Informatics (in French, "Initialisation aux systèmes et réseaux", Master BIG ). University of Rennes 1.
    First semester, academic years from 2013-14 to 2016-17. 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.

  5. Object Oriented Programming with Java (in French, "Programmation orienté à objets", Master BIG ). University of Rennes 1.
    Second semester, academic years from 2014-15 to 2016-17. 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.

  6. Algorithms for sequence and structure analysis (in French, "Algorithmique des sequences et structures", Master BIG ). University of Rennes 1.
    First semester, academic years from 2013-14 to 2016-17. 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.

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

  8. Network Sizing (in French, "Dimensionnement des Réseaux", ESIR ). University of Rennes 1.
    First semester, academic year 2011-12. 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 2008-10)
  1. 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 object-oriented programming), classes, inheritance, polymorphism, exceptions. Pratical examples are provided.

  2. 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: TDs-exercises.tar.gz


Second University of Naples (Italy, academic years 2001-06)
  1. 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.

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

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

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

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

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

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

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

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

  10. Numerical Analysis
    Given 3 times at the Second University of Naples, for the Courses in Mathematics, as assistant.
    Syllabus: computer architecture, floating-point arithmetic, round-off 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.



Back Home