Since 2012: I am associate professor at the ENSEA (Ecole nationale supérieure de l'électronique et de ses applications), Cergy-Pontoise, France.

2008-2011: Teaching Assistant in the computer science department at Telecom-lille, Lille, France.

My teaching focus:


Multimedia indexing Ce cours présente une vue d'ensemble des différentes méthodes et algorithmes d'indexation pour la recherche dans les bases de données ainsi que les différentes applications qui en découlent. Avec la profusion des documents multimédia sur les réseaux, il devient plus que nécessaire de disposer d'outils pour permettre de les retrouver. Ces outils sont soumis à deux principales contraintes : pertinence et rapidité. L'utilisateur doit pouvoir retrouver les informations qu'il recherche, et ce dans un laps de temps très court pour le système.
  • Techniques utilisées par les moteurs de recherche textuels (type google).
  • Techniques la recherche d'images (recherche de copyright, du monument photographié par un portable, de classe d'images,...).



Image processing Ce cours présente les bases du traitement des images et des vidéos. Il rappelle les notions de traitement numérique du signal propre à l'image et à la vidéo, ainsi que les aspects perceptifs qui y sont liés. Ces notions sont ensuite appliquées à des domaines bien connus tels que la compression d'images ou de vidéos, l'extraction de primitives, le tatouage d'images, etc. Le but de cet enseignement est de permettre à l'étudiant d'acquérir et de maîtriser les outils présents dans une chaîne de traitement d'images ou de vidéos.
  • Traitement direct des images : contraste, lissage, gradients, inpainting,
  • Traitement par décomposition et applications associées
  • Flot optique et détection de mouvement dans le flux vidéo
  • Compression d'images et standard associés : PNG, GIF, JPEG, JPEG2000
  • Compression des vidéos et standard associés : MPEG-1, MPEG-2, MPEG2000, H264
Les thèmes traités en travaux pratiques concerneront : le Codec JPEG, le tatouage des images et le calcul du flot optique.


Pattern recognition L'abondance des supports multimédia (audio, image, vidéos) et leur richesse informationnelle permettent d'envisager des applications de reconnaissance, d'identification, de suivi ou d'indexation automatiques qui sont basées sur le contenu. Ce module présente la diversité et la complexité des systèmes à développer qui font appel à des connaissances théoriques variées - modèles statistiques, théorie de la décision, apprentissage - et à une approche système pour satisfaire à des contraintes de variabilité plus ou moins importante suivant les contextes d'utilisation.
    Les thèmes suivants seront abordés :
  • Représentation des données
  • Algorithmes de classification et d'apprentissage (k-plus- proches-voisins, SVM, Réseaux de neurones, ...),
  • Performance et qualité d'un système,
Des études de cas empruntées à la reconnaissance de parole, l'densification de locuteur, la reconnaissance de visage, la recherche et le suivi d'objets, la recherche de copie, l'indexation audio et vidéo, etc. viendront illustrer ces thèmes.


Operating system L'objectif de ce module est la connaissance des mécanismes et processus utilisés dans les systèmes d'exploitation moderne, dont :
  • Fonctions du noyau, gestion de la mémoire, fonctionnement des appels système, démarrage.
  • Notion de processus. Notion de tâche. Allocation. Ordonnancement.
  • Communication entre tâches, gestion de ressources, IPC, queues de message. Allocation mémoire, mapping, interruptions, entrées-sorties, programmation d'un module noyau.
  • Gestion disque. Gestion des blocs et inodes, gestion du cache, recherche de fichiers, liens
  • Gestion des fichiers. Ouverture, partage, verrouillage, pipes.
  • Implémentation sur plate-forme i80x86.



Mini projet Ce travail permettra d'aborder une application multimédia (audio, image ou/et vidéo) en réalisant un système ou une partie de système. Les développements et tests pourront se dérouler sous Matlab, Simulink, ou en langage C, DSP. L'objectif sera d'obtenir un démonstrateur fonctionnel. Une organisation en projet sera proposée avec répartition du travail individuel, reporting d'avancement régulier


Initiation à la programmation orientée objets Cet enseignement permet aux élèves d'acquérir une nouvelle méthodologie de développement d'applications basée sur le concept objet en utilisant le langage Java qui est le langage de programme objet le plus utilisé dans les applications informatique. Cet enseignement est complémentaire de celui de la programmation en langage C de première année Le concept de l'objet :
  • la machine virtuelle, pseudo code,
  • instanciation, encapsulation,
  • gestion des erreurs (exceptions).
Les mécanismes des langages orientés objet :
  • héritage et polymorphisme,
  • interface et généricité.
Compléments :
  • les bibliothèques de classes "packages",
  • gestion des entrée-sorties,
  • javadoc.



Intel 8086 Assembly language Programming


Algorithm and structured programming


Distributed programming in Java


Introduction to Linux