Activités d'enseignement

Introduction

La plupart de mes enseignements ont lieu dans le département Informatique Electronique Mécanique (IEM) de l'UFR sciences et technique à Dijon, mais aussi dans le département de mathématique de ce même UFR, au centre Condorcet (Une annexe de l'Université de Bourgogne délocalisé au Creusot --à environ 80 km de Dijon--), et au département informatique de l'IUT de Dijon. Ces enseignements sont résumés dans le tableau ci-dessous.

IntituléNiveauNatureVolumeAnnées
AlgorithmiqueDEUG économieTD/TP24/24h1998-2003
AlgorithmiqueDEUG sciencesCM/TD/TP12/24/24h1998-2001
Programmation C++LICENCE IUP-GEIICM/TD/TP16/16/28h1998-2002
Outils InformatiquesLICENCE IUP-GIBCM/TD/TP20/20/40h2000-2002
Introduction à UNIXLICENCECM/TD/TP08/08/16h1997-2003
Internet et sites WebLICENCECM/TP10/10h2001-2004
Sites Web dynamiquesLICENCECM/TP16/16h2001-2004
Interface homme machineLICENCECM/TD/TP12/24/24h1999-2004
XML et XSLTDESSCM/TD/TP12/18/28h2002-2005
Image de SynthèseDEACM03h1999-2004
Programmation JavaLICENCECM/TD/TP50h2004-2005

Les paragraphes suivants classent ces enseignements en quatre catégories :

Langages et programmation

Cette catégorie inclut les cours de :

Algorithmique et structures de données

1) Algorithmique pour les étudiants en DEUG d'économie (Module InfoX): ce cours fait partie d'un module d'initiation destiné à des étudiants non informaticiens pour acquérir les bases de l'algorithmique. J'ai assuré cet enseignement avec ma collègue Irène Foucherot pendant plusieurs années, nous avons insisté sur les notions de base telles que les expressions conditionnelles, les itérations, et les enregistrements, avec beaucoup d'exemples et exercices faits dans un premier temps en algorithmiques (pseudo code) puis traduits et implémentés en langage Pascal.

2) Le deuxième enseignement d'algorithmique que j'ai assuré était destiné aux étudiants de DEUG Sciences et Technologies du centre Condorcet au Creusot, j'ai assuré cet enseignement pendant 3 années consécutives en faisant le déplacement au Creusot une ou deux fois par semaine. Cet enseignement était destiné à la fois aux étudiants en mention Sciences de la Matière (SM) et aux étudiants en mention Mathématiques, Informatique et Applications aux Sciences (MIAS), les deux promotions suivent le même cours, mais les exercices de TD/TP n'étaient pas tout à fait les mêmes, les exercices proposés aux SM étaient moins approfondis que ceux proposés aux MIAS. Le cours vise à donner aux étudiants les fondements de l'algorithmique et des structures de données (tests, itérations, enregistrements, fonctions, procédures, passages de paramètres, récursivités, etc.). Les premières années nous avons utilisé le langage pascal pour les exercices de TP, mais depuis 2001-2002 c'est le langage C++ qui est utilisé.

Une particularité de cet enseignement est que j'ai beaucoup discuté avec mes collègues Nadine Cullot, Joel Savelli et Albert Dipanda de l'équipe pédagogique qui assurent les cours d'algorithmique à Dijon, afin de rapprocher le plus possible le contenu de nos cours et partager les exercices proposés aux étudiants, cette volonté était motivée par l'objectif de donner un contenu homogène à tous les étudiants du DEUG de l'Université de Bourgogne. En effet, les étudiants Dijonnais et Creusotins qui réussissent le DEUG vont se retrouver dans les mêmes formations de licences à Dijon (vu qu'il n'y a aucune formation de licence au centre Condorcet du Creusot) et il est préférable qu'ils aient une même formation de base.

Programmation en langage C++

J'ai assuré ce cours pour plusieurs promotions (Licence pluridisciplinaire sciences et techniques (LPST) au département de mathématique, année spéciale à l'IUT, IUP de génie des systèmes industriels (licence GSI), IUP de génie électrique et informatique industrielle (licence GEII). Les étudiants de ces promotions ont des orientations complètement différentes et des connaissances très variées en algorithmique, et il fallait retravailler le cours plusieurs fois pour l'adapter aux besoins de chaque promotion.

3) Licence LPST : L'objectif de cette licence est de fournir une formation Bac +3 générale à dominante scientifique, différente des cycles disciplinaires de mathématiques ou des sciences physiques et chimiques. Le cours de programmation en C++ pour cette licence permet de revenir sur les notions d'algorithmique vues en DEUG afin de les illustrer. Les notions de programmation orientée objet du langage C++ n'ont été abordées que brièvement à travers les classes et les méthodes.

4) Licence IUP GSI : Pour ce public souvent hétérogène, le but du cours était d'une part de d'introduire les bases de la programmation en C++ et d'autres part de montrer comment utiliser ce langage pour résoudre des problèmes liés à l'analyse numérique. Dans les exercices de TD/TP nous avons abordé des problèmes de résolution d'équations, de calcul d'intégrale, etc. J'ai assuré ce cours avec mon collègue Marc Neveu professeur au département IEM.

5) Licence IUP GEII : Vu l'objectif de cette formation, les étudiants ont des bases algorithmiques meilleures que ceux de la formation GSI ce qui a permis d'aller plus loin dans ce cours. Comme pour les GEII je partage ce cours avec mon collègue Marc Neveu. Nous avons couvert les notions de classes, d'héritage, de polymorphisme et fonctions virtuelles. Les classes et fonctions génériques ont également été abordées en fin du cours. Certains exercices de TD/TP ont également été orientés vers la modélisation et la résolution de problèmes d'analyse numérique.

6) Année spéciale IUT : Le contenu de cet enseignement a également été allégé car les étudiants de l'année spéciale sont d'origines très diverses avec des niveaux très variés en programmation, il a fallu plusieurs séances de rappel, dans lesquelles j'ai repris les bases de l'algorithmique, pour que tout le monde puisse suivre le cours. Nous avons vu les notions de la programmation orientée objet : classes, données membres, fonctions, membres et l'héritage. Les exemples de cours et les exercices de TD/TP étaient plus orientés vers l'apprentissage du langage que vers l'algorithmique proprement dites.

Programmation en langage Java

7) Cet enseignement a été assuré pour la licence professionnelle Réseaux et Télécommunications (LPRT) à l'IUT de Dijon pendant l'année universitaire 2004-2005. Dans une première partie d'environ 50h nous avons revu les concepts de bases de la programmation Java (classes, attributs, méthodes, interfaces, héritage), puis dans une deuxième partie (également d'environ 50h) nous avons abordé un contenu plus avancé tel que le développement d'interfaces homme machine en utilisant la librairie Swing et les outils java pour XML.


Systèmes d'exploitation

8) Ce cours, destiné aux étudiants de la licence des technologies mécaniques, vise à initier ces étudiants au système d'exploitation Unix afin qu'ils puissent utiliser les logiciels (de simulation et de calcul) installés sur des machines Unix. J'ai donc insisté plus sur les aspects pratiques des manipulations et les commandes de base qu'un utilisateur doit connaître pour utiliser confortablement une machine Unix. J'ai abordé : les sessions, le système de fichiers, les commandes de bases, les processus, le mail, les commandes de réseaux (ftp, telnet, etc.) avec beaucoup d'exercices de TP. J'ai également présenté l'interface avec le langage C (makefile, bibliothèque de fonctions) et ceci afin de préparer les étudiants aux modules de calcul envisagés au deuxième semestre.


Outils et technologies du Web

Le succès de l'Internet et la prolifération des applications Web ont fait naître un besoin industriel important pour des ingénieurs et des développeurs qui maîtrisent les outils et technologies Web. Ce besoin a bien été ressenti à l'Université de Bourgogne et des cours de technologies Web ont été introduits dans les cursus de plusieurs formations. Je fais partie de l'équipe pédagogique de deux de ces formations : La licence professionnelle réseaux et télécommunications (LPRT) de l'IUT de Dijon et le DESS Base de Données et Intelligence Artificielle (DESS BD-IA) du département IEM de l'UFR Sciences et Techniques. Dans le cadre de ces deux formations j'ai assuré les cours d'initiation aux outils Web, de Web dynamique, et de Technologies XML.

Initiation aux outils Web

9) J'assure ce cours pour la licence LPRT dans le cadre du module « Internet et Web », ce cours ne concerne que les sites Web statiques (un site Web statique est composé seulement d'un ensemble de pages HTML contenant des images et du texte), il est vu comme une brève préparation au cours de Web dynamique. Le cours rappelle les notions élémentaires (HTML, feuilles de style en cascade, javascript, etc.), discute la conception de sites Web en se basant sur une programmation « côté serveur » et montre la différence de cette conception par rapport à celle basée sur une programmation « côté serveur ».

Web dynamique

10) J'assure ce cours pour la licence LPRT à l'IUT de Dijon et aussi pour le DESS BDIA au département IEM (avec un contenu un peu plus avancé), le but du cours est d'enseigner comment concevoir des applications client/serveur pour le Web afin de définir des sites Web dynamiques (un site Web dynamique est souvent supporté par une base de données avec laquelle il interagit pour créer dynamiquement des pages HTML ou XML répondant aux requêtes des internautes). Dans ce cadre nous revoyions la programmation CGI avec des exemples de scripts en langages C puis nous utilisons conjointement le serveur apache, le langage de script PHP et le SGBD MySQL pour mettre en place un site Web dynamique. Le triplet (apache, PHP, MySQL) est disponible gratuitement sur le Web et fonctionne sous les systèmes Unix et Windows. Les points suivants sont abordés : Installation et configuration du serveur apache et de MySQL sous Windows, présentation du langage PHP, études des principales fonctionnalités de MySQL et des fonctions PHP d'interaction avec la BD MySQL. Plusieurs exercices pratiques sont proposés pour implémenter les fonctionnalités les plus importantes de tout site Web dynamique (Création du site, pages HTML, création de la base de données MySQL, code sources PHP, requêtes d'interaction avec la base, & etc.)

Technologies XML

11) Comme pour le cours précédent, ce cours est également assuré pour la licence LPRT à l'IUT de Dijon et aussi pour le DESS BDIA au département IEM. Le cours consiste en une présentation du langage XML (un langage de balisage qui permet de définir la structure et le contenu d'un document) et des outils liés à ce langage tel que les DTD et les schémas XML (qui permettent de définir la structure des documents XML) et les transformations XSLT (qui servent a présenter le contenu XML dans un format html, pdf, etc.). La récupération des données encapsulées dans le document XML nécessite un outil appelé analyseur syntaxique qui parcourt le document et extrait les informations qu'il contient. Deux grandes approches sont actuellement disponibles pour assurer cette analyse : la méthode hiérarchique (la principale interface utilisant cette approche est DOM) et la méthode événementiel (la principale interface utilisant cette approche est SAX). Ces deux interfaces sont couvertes avec plus de détails en DESS qu'en licence car elles nécessitent des concepts de programmation très avancés. Les transformations XSLT (avec XPath) sont également plus détaillées dans le cours destiné aux DESS.

Informatique graphique et interface homme machine

Cette catégorie regroupe un cours d'introduction à l'informatique graphique pour les étudiants de l'école doctorale et les cours d'interface homme machine pour la licence informatique et le master Mathématiques pour l'Informatique Graphique et les Statistiques (MIGS, département de mathématiques).

Introduction à l'informatique graphique

12) Ce cours, de 3h, a pour but de donner aux étudiants de l'école doctorale une introduction à l'informatique graphique, à ses applications ainsi qu'à ses différents thèmes de recherches. Le cours revoit brièvement les notions de l'image, l'analyse d'image versus le traitement d'image, le rendu et la visualisation, la modélisation géométrique, les modes de représentation, les modèles CAO, la reconstruction 3D, les applications de l'imagerie médicale, etc. Dans la dernière partie du cours je reviens avec un peu plus de détails sur la modélisation géométrique des courbes et surfaces pour introduire les différents types de surfaces (maillages, surfaces paramétriques, surfaces implicites, etc.) et montrer les différents problèmes de recherche liés à ces surfaces.

Interface Homme Machine (IHM)

13) Licence informatique : J'assure ce cours « très avancé » d'environ 60h avec ma collègue Nadine Cullot du département IEM. Le cours donne les concepts de base des IHM et tous éléments utiles et nécessaires pour le développement d'interfaces en utilisant le langage Visual C++ et la librairie de classes MFC de microsoft. On aborde en détails les thèmes suivants : gestion de fenêtrage, gestion des menus, gestion du clavier, gestion de la souris, interfaces avec les bases de données, manipulation d'images (bitmap) et de la vidéo (avi), etc.

14) DESS MIGS : Le but de ce cours, d'une vingtaine d'heures, est de donner aux étudiants les concepts de base des IHM : comment ouvrir une fenêtre et gérer de façon simple la souris, puis de faire le lien avec la fenêtre principale de l'application et la bibliothèque OpenGL. Les étudiants de ce DESS ont besoin d'afficher des surfaces et des modèles CAO et ce cours sert donc de préparation pour élaborer le squelette d'une application avec interface graphique (fenêtre principale, menus, souris) capable de faire appels aux fonctions OpenGL.


Autres activités d'enseignement (Volontaire à l'ITC du Cambodge)

J'ai participé à l'effort mené par l'Agence Universitaire pour la Francophonie (AUF) pour la promotion des enseignements en langue française au Cambodge en assurant en Juin 2001 une mission d'enseignement de trois semaines à l'Institut de Technologie du Cambodge (ITC), basé à Phnom Penh. L'ITC est un établissement cambodgien dont la gestion a été confiée à l'AUF, il forme des ingénieurs en 5 années après les études secondaires et possède un département d'informatique qui a ouvert ses portes en septembre 1999. Dans ce cadre, j'ai donné un cours de 60 heures sur les technologies Web (initiation, Web dynamique et XML). Face à un groupe de 15 étudiants très motivés et avec un très bon niveau en général, j'ai eu une expérience très enrichissante lors de cette mission. Je garde le contact avec certains de ces étudiants notamment avec ceux qui sont venus en France pour poursuivre leurs études.