De 2000 à 2006, en tant que vacataire lors de mon DEA, dans le cadre d'un
monitorat au cours de ma thèse, puis au cours d'une première (demi-)année
d'ATER et actuellement avec un contrat à temps plein, j'ai assuré des cours,
des TD et des TP d'informatique en premier, deuxième et troisième cycle à
l’Université Claude Bernard Lyon 1.
J'ai également l'opportunité d'enseigner en cycle C ingénieur (Bac+5) au CNAM
de Lyon depuis 2004.
Dans ce cadre, j’ai eu la double chance de pouvoir assurer un suivi dans les différents cours auxquels j’ai participé et d’enseigner à des étudiants de différents niveaux venus d’horizons très divers (étudiants en informatique, étudiants de DESS compétences complémentaires, professionnels au CNAM). En moyenne, les étudiants sont généralement 25 à 30 en TD et 10 à 15 en TP. Les quelques cours magistraux que j'ai eu la chance d'effectuer concernaient des effectifs limités à moins d'une cinquantaine d'étudiants ou d'auditeurs (terme utilisé dans le cadre de mes enseignements au CNAM).
| Systèmes d'exploitation | Linux, Ms-DOS, Windows |
|---|---|
| Langages | C/C++, Lisp-Scheme-Prolog, Basic, Pascal, Perl, Python, Yacc/Bison, Lex/Flex |
| Environnement de développement | QT / QT-designer, Kdevelop, GDB |
| Modélisation | approche objet, programmation fonctionnelle |
| Infographie | Open-GL, création d'un moteur de lancer de rayons |
| Internet | (X)HTML/CSS, DOM/DHTML, JavaScript, PHP/MySQL, Java, Zope/Plone |
| Réseaux (bases) | modèle OSI, protocoles à fenêtre, couches réseaux, certification CISCO |
| Bases de Données (bases) | SQL, MySQL |
| Documents (connaissances) | XML, XQuery, XPath, XSLT |
Je pense avoir une bonne maîtrise des premiers éléments de la liste ci-dessus. Mes besoins personnels et les enseignements que j'ai effectués m'ont également permis d'acquérir de bonnes bases en réseaux et gestion de documents et bases de données. Je suis tout à fait prêt à m'investir afin de pouvoir dispenser des enseignements dans chacune de ces matières.
De 2000 à 2006 j'ai assuré 583 heures équivalent TD d'enseignement dont 46 heures
équivalent TD en formation continue : 34 heures de cours, 169 heures de travaux
dirigés et 544,5 heures de travaux pratiques.
NB : 1 h de cours = 1,5 h éq TD -- 1,5h de TP = 1 h éq TD
| Intitulé | Cours | TD | TP | Niveau | |||
|---|---|---|---|---|---|---|---|
| A T E R & C N A M |
2005-2006 172,9 hTD + 23,16 hTD |
Infographie | 13,5h | 40h | L2 + M1 | ||
| Réseaux | 18h | L3 | |||||
| Certification CISCO (CCNA) | 10h | L3 | |||||
| C/C++ | 36h | 72h | L1 + L2 | ||||
| Algorithmie et complexité | 30h | L3 | |||||
| Programmation web | 15h | M1 | |||||
| Technologies de l'Internet | 7h | 6h | 10h | cycle C ingénieur CNAM (M2) | |||
| 2005-2006 172,9 hTD + 23,16 hTD |
Réseaux | 27h | L3 + M1 | ||||
| Certification CISCO (CCNA) | 18,5h | L3 + M1 | |||||
| C/C++ | 4,5h | 72 | L1 + L2 | ||||
| Algorithmie et complexité | 30h | L3 | |||||
| Technologies de l'Internet | 7h | 6h | 10h | cycle C ingénieu CNAM (M2) | |||
| 1,5 ATER + CNAM 275,73 + 46,32 h éq TD |
14 | 66 | 352,5 | ||||
| M O N I T E U R |
2003-2004 29 hTD |
Outils de l'Internet | 10h | 10h | 6h | DESS CCI apprentissage | |
| 2002-2003 117,33 hTD |
Programmation fonctionnelle | 18h | 16h | DEUG MIAS 1a | |||
| Programmation objet (C++) | 11h | DEUG MIAS 2a | |||||
| Infographie (Open-GL) | 9h | DEUG 2a (option) | |||||
| Encadrement TER | 21h éq TD (7 groupes) | Licence informatique | |||||
| Images, multimedia, NTIC | 14h | Maîtrise informatique | |||||
| Unix, langage C | 35h | DESS CCI apprentissage | |||||
| Outils de l'Internet | 10h | DESS CCI apprentissage | |||||
| 2001-2002 59,33 hTD |
Formation moniteur - tutorat | 16h éq TD | |||||
| Infographie | 18h | DEUG 2a (option) | |||||
| Infographie (raytracing) | 12h | Maîtrise informatique | |||||
| Unix, langages C/C++ | 35h | DESS CCI apprentissage | |||||
| Monitorat 205,66 h éq TD |
20 | 85 | 136 | ||||
| VACA- TAIRE |
2000-2001 55,33 hTD |
Programmation objet (C++) | 18h | 18h | DEUG MIAS 2a | ||
| Infographie | 18h | DEUG 2a (option) | |||||
| Infographie (rautracing) | 20h | Maîtrise d'informatique | |||||
| Vacations 55,33 h éq TD |
0 | 18 | 56 | ||||
| Totaux globaux 583 h éq TD |
34 | 169 | 544,5 | ||||
Dès mon DEA, on m’a confié la charge de l’enseignement du langage C++ auprès des étudiants redoublants de DEUG MIAS deuxième année (actuel L2). Ils n’étaient qu’une quarantaine, ce qui m’a permis de gérer l’enseignement dans son ensemble, de la définition des TD et TP à la rédaction du sujet de partiel, sous la supervision d’Eric Galin qui est devenu mon tuteur lorsque j’ai été nommé moniteur. Par la suite, j’ai à nouveau pu enseigner les langages C et C++ aussi bien en Licence qu’en Master. Il a été très instructif pour moi de voir comment ces deux publics différents réagissaient à des enseignements assez proches. En effet, les étudiants de M2, à l'époque le DESS CCI apprentissage (Compétences Complémentaires en Informatique), ne connaissent pour la plupart que peu de choses dans le domaine de l’informatique mais ils ont une motivation très forte qui rend l’enseignement plus facile et plus rapide. Pour autant, il est très gratifiant d’arriver à intéresser des étudiants de L2 qui se déclaraient non intéressés en début de semestre. Le fait d’assurer ces enseignements à plusieurs reprises m’a donc permis d’adapter le contenu et la forme de mes interventions afin de coller au plus près aux besoins des étudiants.
Cet enseignement est destiné à des étudiants de L3 ayant déjà une solide connaissance de la programmation en C et de bonnes bases en C++. Avec ces langages, ils apprennent à implémenter des structures de données complexes génériques et surtout ils découvrent de manière tangible la notion de complexité des différents algorithmes de tri et de recherche classiques appliqués à ces structures de données. D'un point de vue plus personnel, cet enseignement permet de voir ce qui a bien et mal fonctionné lors des semestres précédents d'apprentissage du C/C++ et ainsi d'améliorer ces enseignements pour les semestres suivants.
J’ai assuré ce cours avec beaucoup de plaisir. Là encore, le public visé était principalement néophyte puisqu’il s’agissait d’étudiants en M2 (DESS CCI apprentissage) et en cycle C du CNAM. C’est sans doute pour cela qu’il est aussi agréable de leur faire découvrir un panel le plus large possible des technologies qui se cachent derrière cet outil familier qu’est désormais Internet. Pour cet enseignement, j’ai du apprendre à rédiger et à faire passer un cours (disponible ici), ce qui constitue un exercice assez différent d’un TD. Je trouve extrêmement motivant de pouvoir organiser un enseignement dans son ensemble. La première année durant laquelle j'ai rédigé ce cours, j’ai heureusement pu compter sur les conseils d’Eric Galin, mon tuteur dans le cadre du monitorat. Après deux années de pratique j'ai pu parfaire l'ensemble des supports d'enseignement et trouver un juste équilibre entre théorie et pratique afin d'accompagner au mieux les étudiants dans leur apprentissage. Cet enseignement a la particularité d'aborder un grand nombre de langages de programmation : HTML/XHTML + CSS, JavaScript, DOM/DHTML, PHP + MySQL. S'il est parfois frustrant de ne pas pouvoir consacrer plus de temps à l'approfondissement de certains de ces langages, il est en revanche très intéressant de pouvoir placer un enseignement dans le cadre d'un projet global qui prend forme au fil des séances. Depuis deux semaines je participe également à l'enseignement de cette matière auprès des étudiants en M1 de l'université Lyon 1.
Domaine dans lequel j’effectue mes recherches, l’infographie attire naturellement les étudiants qui voient enfin dans les résultats de leur TP autre chose qu’une série de nombres. Pour certains cela évoque les jeux vidéos auxquels ils s’adonnent parfois, pour les autres les films d’animation qu’ils voient au cinéma. Aussi, bien que très technique et avec une forte dominante mathématique, la curiosité permet aux étudiants de passer ces barrières. Il est donc très important lors de la construction de ces cours de faire un bon compromis entre le résultat final qui servira de trame à l’enseignement et qui doit être attractif, et les pré-requis mathématiques et techniques qui ne doivent pas rebuter les étudiants les moins intéressés. Nous sommes très régulièrement surpris par l'investissement très fort des étudiants qui découvrent ce qui se cache sous ce qu'ils apprécient depuis si longtemps. Il est alors parfois possible de leur présenter des travaux de recherche actuels qui répondent à leurs interrogations et leur exigence de qualité toujours plus importante.
Lors de mon projet de fin d’études en maîtrise, j’ai hésité entre un sujet orienté Image et un autre orienté Intelligence Artificielle. Si je ne regrette assurément pas d’avoir choisi l’Image, j’ai été très heureux de me rapprocher du monde de l’IA au travers de cet enseignement. En l’occurrence, il s’agissait de TD et TP de Scheme. Traditionnellement, les étudiants de L1 (DEUG à l'époque) éprouvent quelques difficultés à utiliser ce mode de programmation et de réflexion. Pourtant, deux à trois séances suffisent à les convaincre des atouts de ces techniques et leur envie de découverte fait que l’on se retrouve face à un public globalement très motivé.
Depuis l'année dernière j'ai eu l'opportunité de découvrir un domaine qui m'était peu familier : les technologies des réseaux. Grâce à l'aide d'Olivier Glück qui est responsable de ces enseignements de L3 et M1, j'ai rapidement pu me former et enrichir à la fois mes connaissances et mon champ de compétences pour l'enseignement. Chaque nouveau semestre est pour moi l'occasion d'approfondir ce thème et donc de réadapter mes conseils en TP fort des expériences passées et d'une culture générale du thème qui s'enrichit. J'espère avoir prochainement l'occasion de participer à d'autres enseignements qui me sont moins familiers comme les bases de données dont je suis principalement un utilisateur dans le cadre de la programmation web.
Les TER constituent pour les étudiants de L3 la première occasion de s’investir dans un projet consistant qu’ils gèrent de bout en bout. En 2002-2003 j’ai proposé divers sujets de modélisation et d’animation de surfaces implicites ainsi que de visualisation Open-GL qui ont été choisis par 7 groupes d'étudiants. Ces encadrements m’ont permis d’appréhender un autre aspect de l’enseignement, plus personnalisé et approfondi. Ces expériences m’ont particulièrement plu car hors de tout cadre figé, elles permettent réellement d’aller au fond des choses, ce qui n’est malheureusement pas toujours le cas lors d’enseignements en groupe et en temps limité. En outre, j’ai trouvé très agréable le fait de travailler avec des étudiants sur des thèmes dont je me sentais naturellement très proche puisque j’en avais défini moi-même les limites.
Ces projets m’ont permis de me faire une première idée de ce que pourrait être l’encadrement d’un étudiant en M2 recherche ou en thèse. J'ai actuellement la chance de mettre cette expérience à profit puisqu'un étudiant de dernière année d'école d'ingénieur (IIE, Paris) a choisi un sujet que je propose pour effectuer son projet de recherche de fin d'études de 5 mois. Bien évidemment je ne suis pas seul pour l'encadrer puisque Samir Akkouche, mon directeur de thèse, m'aide dans cette tâche très intéressante.
En conclusion, de par la chance que j'ai eu d'enseigner à tous les niveaux de Bac+1 à Bac+5 mais surtout à des étudiants d'horizons très divers (étudiants en informatique, étudiants en compétences complémentaires et auditeurs professionnels au CNAM), je suis tout à fait convaincu que la fonction de maître de conférences est celle qui me conviendrait le mieux pour associer ces deux plaisirs complémentaires que sont la recherche et l'enseignement.
Je pense être tout à fait compétent pour continuer à enseigner dans les domaines dans lesquels j'ai eu la possibilité de travailler avec mes collègues (programmation objet, programmation fonctionnelle, programmation web, XML et dérivés, infographie et réseaux) mais surtout mon expérience dans le domaine des réseaux, qui ne m'était pas familier, m'a conforté dans l'idée qu'un investissement personnel de quelques semaines suffit à permettre de débuter un nouvel enseignement, tout d'abord au travers de TP afin d'intégrer une équipe en douceur puis lors de TD et de cours par la suite. Je pense notamment que cette fraicheur peut profiter à certains étudiants puisque leur enseignant se souvient de ses propres problèmes de compréhension dans un passé récent alors que dans les matières dans lesquelles on excelle on a parfois plus de mal à se remettre au niveau des étudiants.
J'espère également que mon insertion au sein de l'équipe pédagogique me permettra de plaider pour le développement plus important de l'enseignement des langages objets. Trop souvent Le C est utilisé de manière principale alors qu'un ou deux modules de C++ ou de Java vient se greffer sur l'enseignement de la programmation. J'estime pour ma part que l'on devrait privilégier l'approche objet dès le début de l'enseignement de la programmation pour promouvoir la robustesse et la portabilité qui son selon moi les bases de tout bon programme. D'autre part je pense que C++ et Java sont complémentaires et qu'ils devraient être tout deux enseignés en montrant aux étudiants les domaines d'application qui font que l'un ou l'autre est un meilleur choix. Enfin, je pense qu'il faudrait sensibiliser les étudiants aux surcouches et interfaces existantes (comme Boost ou Qt-trolltech pour le C++ et les nombreuses possibilités pour les interfaces Java). J'aimerai enfin pouvoir mettre en place un travail collaboratif dans le cadre d'un TP-projet afin de rapprocher la formation dispensée à l'université de la réalité du développement d'applications importantes en entreprise.