Sunday, May 20, 2012

Why did I decide to study theoretical computer science?

The question was posed in a comment a few days ago. Here is the answer: I wanted to study Math and was potentially interested in algebra, number theory, or some other area of Math dealing with concrete objects such as integers. But during my first year at Ecole Normale Superieure, I was forced to take a mandatory computer science course called "Cours de Sevres".

In 1983-84 the course, originally created by Jean Vuillemin, was taught primarily by Claude Puech (programming in Pascal, and basic algorithms and data structures), along with other instructors in analysis of algorithms (Jean Marc Steyaert), logic (Guy Cousineau), formal languages (Jean Berstel, Jean-Michel Autebert), and Petri nets (I have forgotten the instructor's name: Guy Vidal-Naquet, maybe?). I enjoyed programming, algorithms, and formal languages, and was particularly excited by algorithms. During the same year, in Math I took courses at Paris VII university, a mix of easy courses that bored me to death, and of more advanced courses that seemed to me too abstract and meaningless (Differential geometry come to mind - a course I only barely managed to pass). At the end of the year, I decided to switch to computer science and signed up for a DEA (Masters') in computer science at Orsay.

In retrospect, it is clear that Cours de Sevres was designed to lure would-be mathematicians into computer science by focusing exclusively on theoretical topics (I never understood why graph theory was not one of the topics taught), and provided an obviously biased image of computer science. Nevertheless it has had a lot of impact in forming many people who are now computer scientists in France.

So, I would say that deciding to study theoretical computer science was not a reasoned choice on my part, but largely a coincidence due to context. I never stopped to think about a profession as a way to contribute to society. I never considered how to best fit my talents and tastes to the potential needs of society in the coming decades. I simply picked a field in the same way that one picks a hobby: do what you enjoy, and if you succeed, continue. It is only a few years later, when I heard that I was recruited to CNRS and realized that I now had a job for life, that suddenly the question occurred to me: "What's the point?"

There is an inconsistency in this: I am against mandatory courses. Students only learn what they are interested in. You cannot take an ass who is not thirsty and force it to drink. Yet I would not have taken Cours de Sevres if it had not been mandatory, so my own experience goes against my own opinion!


  1. We only value choices when we experience the lack of them, so these contradictions are natural and even necessary!

  2. I think computer science is very tough for that person who don't have much knowledge of maths and logic. If you want to study computer science than you need to perfect logically.

    online meeting

  3. I think the inconsistency is in assuming that mandatory courses ONLY force students to study something they are not interested in, whereas the other possibility is that mandatory courses force students to study something they would never have considered, because they have no idea what it is about.