Le professeur#
Je suis professeur de pratique en informatique à l’Université TÉLUQ. Le titre dit quelque chose d’important : je ne viens pas d’une carrière universitaire, mais d’une vingtaine d’années passées à écrire du logiciel qui tourne, pour des jeux vidéo, des épidémiologistes, des climatologues, des agronomes et un importateur de vin.
Montréal, 2003#
J’ai fait ma maîtrise à l’Université de Montréal, dans le laboratoire de Yoshua Bengio, sur la modélisation statistique du langage. En 2003, nous avons publié A Neural Probabilistic Language Model, un article qui proposait de représenter les mots non plus comme des symboles arbitraires, mais comme des points dans un espace continu appris par un réseau de neurones. Le module 6 raconte cette histoire en détail, parce qu’elle est l’ancêtre direct des outils d’IA que vous utiliserez dans ce cours.
Ce que j’en retiens surtout, avec le recul, c’est le contexte. À l’époque, les réseaux de neurones étaient considérés par la plupart des départements d’informatique comme une voie sans issue. Bengio a continué quand même, à Montréal, dans une université francophone, avec des étudiants de maîtrise, pendant que le reste du monde regardait ailleurs. Ce qui est devenu le MILA et l’écosystème montréalais de l’IA n’est pas tombé du ciel. C’est le produit d’une obstination locale, et d’une culture universitaire qui a laissé quelqu’un travailler longtemps sur une idée impopulaire.
Je n’étais qu’un étudiant parmi d’autres dans cette histoire, et je n’avais aucune idée de ce qu’elle allait devenir. Mais elle m’a laissé une conviction qui traverse tout ce cours : les idées qui comptent mettent souvent vingt ans à devenir évidentes, et elles naissent rarement là où on les attend.
Un parcours volontairement dispersé#
Depuis, j’ai travaillé dans des domaines qui n’ont presque rien en commun. Des jeux mobiles en C++ chez Jamdat. Six ans au McGill Surveillance Lab, à construire des systèmes de santé publique pour suivre la tuberculose et modéliser des épidémies. Ubisoft, où j’ai réécrit un service en microservices avec Go et Kubernetes. Element AI. Ouranos, où j’ai développé des outils de modélisation hydrologique et de visualisation de données climatiques. K2 Géospatial. Et, entre tout ça, un outil open source de reconstruction d’arbres en 3D à partir de nuages de points LiDAR, pour des chercheurs en foresterie.
Cette dispersion n’est pas un accident de parcours, c’est un choix. Elle m’a appris exactement ce que ce cours essaie de transmettre : le génie logiciel n’est pas une collection de recettes propres à un domaine, c’est une manière de penser qui voyage. Les problèmes de modélisation de données d’un épidémiologiste et ceux d’un importateur de vin se ressemblent beaucoup plus qu’on ne le croirait.
Toujours en train de coder#
Je n’ai jamais cessé d’écrire du code. Je maintiens seul, depuis 2012, une application de gestion pour une compagnie d’importation de vins, ce qui constitue une leçon de génie logiciel en soi. Quatorze ans de production, ça vous apprend beaucoup sur ce qui vieillit bien et sur ce qui vieillit mal. J’ai aussi publié quelques bibliothèques open source, dont Little PGer, un petit outil de construction de requêtes SQL né de ce projet.
Beaucoup d’exemples de ce cours viennent de là, de choses que j’ai réellement construites, cassées et réparées.
La curiosité comme méthode#
J’écris un blogue, en français et en anglais, où je pose surtout des questions. Est-ce que ChatGPT sait ce qu’est une question ? Que veut dire créer avec l’IA ? Pourquoi est-il plus difficile de traduire vers sa langue maternelle que l’inverse ? Ce sont des questions que je ne sais pas trancher, et c’est précisément pour ça qu’elles m’intéressent.
Mes champs d’intérêt officiels sont la programmation, la modélisation et la science des données, le génie logiciel, la géomatique, l’intelligence artificielle et l’impact social et culturel des technologies numériques. La liste est longue parce que je n’ai jamais réussi à choisir, et que je ne vois pas pourquoi il faudrait.
Me joindre#
Vous pouvez m’écrire sur Teams en tout temps, ou y prendre rendez-vous quand vous le souhaitez. Je réponds rapidement à toutes les questions et à toutes les demandes d’aide, qu’elles portent sur la matière, sur votre projet ou sur un blocage technique.
- Prendre un rendez-vous Teams, au moment qui vous convient
- Un message direct sur Teams, sans rendez-vous et sans préavis
- Courriel : christian.jauvin@teluq.ca
- Le serveur Discord du cours, où je suis présent, et où vous pouvez surtout discuter avec les autres étudiants
- Mon blogue et mon GitHub
- Ma page à la TÉLUQ