"Freedom is the freedom to say that two plus two make four. If
that is granted, all else follows."
George Orwell, "1984"
Welcome to my web site! Any useful information (if any) can be accessed from the table of contents on the left. If you can spare the time, this frame contains my logo, my favorite quote, two pictures of me, and the (almost) complete story of my life!
I'm an associate professor at the University of New Hampshire, in the Computer Science Department. Our lovely campus is located in Durham, NH. Actually, one can almost say that our campus is the town of Durham (Durham's population is 7000 and UNH is about 13000 students). The weather in New England is not what it used to be (five minutes ago). Right now, it is:
I am French, hence my troubles with English (we, Froggies, are not very good at it...). I did my undergraduate and graduate studies in France, first in Lille,then in Toulouse. Both cities are very nice, contrary to Paris. I hate Paris. I loathe Paris. I don't set foot in Paris unless I absolutely have to.
Lille is located in the North of the country and Toulouse in the Southwest (here's a map).
In Toulouse, I went to a school called
ENSEEIHT. That's the short
name. The long name has changed since when I was there, but they
managed to keep the same acronym. That's clever and it represents
tremendous savings on T-shirts, stickers, logos, etc. The current
long name is "École Nationale Supérieure
d'Électrotechnique et Automatique, d'Électronique et
Traitement du Signal, d'Informatique et Mathématiques
Appliquées, d'Hydraulique et Mécanique des Fluides, de
Télécommunication et Réseaux", which explains why
there's a short name. Actually, people in Toulouse are lazy enough that
they mostly use a short-short name: "N7". It sounds a bit like the short
name if you try to pronounce it in French
I joined the N7 with the idea of learning fluid mechanics
but changed my mind at the last minute and ended up in computer
science, or, as it is called there, "Informatique". I was
lucky, because I really loved that stuff, which I knew nothing about
before. After I got my degree in computer science, I realized my interests
were more in teaching than in engineering and I decided to stay in
Toulouse and work toward a PhD. I did my master and PhD work at the
My master and PhD work was concerned with the formal specification and verification of distributed systems. It involved the use of theorem provers on its practical side and extensions to linear temporal logic on its more theoretical side. Both theses were written in French, but here is a summary of that work in English.
At the end of my PhD, I was lucky (again!) to meet with Mani Chandy who co-designed the temporal logic UNITY that I was using in my thesis work. He liked my work and invited me to spend a year working with him and his Infospheres group at Caltech in the Computer Science Department. And that's how I ended up in the United States, more precisely in Southern California.
At Caltech, I started to work on a different (though related) subject, focusing on the problem of composing formal descriptions of concurrent and distributed systems. The problem was very hot in the 1990s but had fallen into disregard. Interestingly, half the people who worked on it concluded (incorrectly) that the problem had been solved and the other half that it was too difficult to be solved in their lifetime. Here is a non technical introduction to our motivations and our view of the composition problem.
These days, I am trying to reconciliate my interests in distributed systems and in formal methods by looking at distributed algorithms based on mobile agents. The formal study of such agents is fascinating and involves the kind of compositional issues I'm interested in.
When I'm stuck on my research, I teach. (I teach a lot.) I teach an introductory course on how to formally reason about concurrent systems, CS-745/845. I also teach a course on programming languages concepts and features, CS-671, using mostly SML and Java. (Some of our past Java assignments have been made into applets.) Recently, I've introduced a third course on concurrent and distributed programming in Java, CS-735/835.
According to some students, my greatest pleasures in life is to make their lives miserable. It is not true. It does not even rank in my top ten. For instance, I'd much rather listen to a symphony or watch a professional game of snooker (these are definitely in my top ten). Snooker is an English billiard game that fascinates me. I'm a terrible player, but I enjoy watching games on TV. Of course, there is no such thing as a snooker game on U.S. television, which means I have to have DVDs shipped from France, convert the video signal fron its European format, and watch the two weeks of the world championship in two or three nights before someone inadvertently tells me the results. So, if I look beaten some time in late April, early May, that's why. It has nothing to do with reaching the end of a busy spring semester. WWW Snooker is a great site dedicated to this wonderful game. 110snooker is not as good, but is often more up-to-date.
When I'm stuck in my research and tired of making students' lives
miserable, I sometimes do some programming. Especially, I like to use
programming languages to achieve things they were not designed for.
For instance, to make a printer compute prime
numbers with PostScript, or to make the Unix command
poems, or to transform any file into an approximation of
Pi. I have also applied my (small) knowledge of PostScript to
L-systems. The results are nice-looking plants that don't require
watering or weeding (my kind of plants).