- The Turing Award for 2009 was given recently to Chuck Thacker LINK. See here. He developed the first modern PC.
- The Alan T. Waterman award was given to Subhash Khot. See here. He formulated the Unique Game Conjecture and has proven many consequences of it.

These two award recipients demonstrate the vast variety there is

*within*computer science. I suspect that these two people, one very practical, one very theoretical, have very different mindsets. The most striking is that in theory we have PROOF as our... proof that something is true (I can't even escape using the word!). In practical things the proof is in the pudding.

There is much less variety within Mathematics. All (well... most) mathematicians have proof as their criteria of truth. They may not understand each others problems and interests but they understand the type of problems each other works on.

Physics has two campus- theorists and experimentalists. But I get the impression they talk to each other and understand each other. While this is true in some parts of computer science (crypto and bio-comp come to mind) it is also often not true. (If I am wrong about Physicists let me know.)

Consider the following statements, both probably exaggerated.

- In a math department any professor can teach any undergraduate class.
- In a computer science department it is NOT the case that every professor could PASS every undergraduate class.

Economics (micro vs macro, theory vs empirical) is also similar to computer science.

ReplyDeleteI think your last two statements are true.

ReplyDeleteBoth theory and systems professors could teach basic programming classes BUT

(1) Most systems professors would not be able to teach an automata theory class.

(2) Most theory professors would not be able to teach an Operating Systems class.

This comment has been removed by the author.

ReplyDeleteI suppose that it's possible to prove things about scheduling algorithms without knowing how an actual scheduler works, or or even knowing that a scheduler is one of the important components of an operating system. And I suppose it's also possible to understand the mechanisms of actual schedulers without knowing about anything about what can be guaranteed about their performance. But both of these seem like bad ideas to me. If we don't understand what theory is good for ourselves, how can we expect our students to care about it? And if the people in the more practical ends of the field aren't aware of the aspects of theory that relate to their own specialty, how can what they're doing be called science?

ReplyDeleteThere is a difference between creating a course syllabus and teaching it. There is a difference between teaching and teaching well. With sufficient preparation there is no reason for a CS faculty member not to be able to teach any CS undergraduate course. I have taught digital design and it was not much worse than preparing any new class. I know complexity theorists who have ended up teaching software engineering on a regular basis. Conversely I know of faculty with little or no theory background teaching theory of data structures.

ReplyDeleteIn a larger institution there is the luxury of having faculty members spend almost all their teaching on courses where they are most comfortable. In a smaller institution there isn't that luxury.

"1. In a math department any professor can teach any undergraduate class.

ReplyDelete2. In a computer science department it is NOT the case that every professor could PASS every undergraduate class."

While the first statement is true the second is not. In fact if the second were true it would be a very unfortunate example of a 'bad' department. PASS of course, may not TEACH.

However, the point you try to make is true for almost every other Engineering department. And Computer Science (CS), being an engineering subject, is no exception. Electrical (EE) or Mechanical engineering, on the other hand has even more variety. Do you think the people who do VLSI design wants to teach a course on Information Theory? Can any one of them teach Electro-magnetics and wave propagation? All of them are EE topics by the way!

If Bill means "Professor X takes the exams for Class Y pretty much cold" then there are many professor/class combinations that would end in failure. I think this is what Bill might have meant.

ReplyDeleteHowever, given this, I suspect there are math profs who would fail specific course exams. How is everyone on their multivariable calculus and finding the area under 4-dimensional curves? Everyone good with their Non-Euclidean geometry?

"In a math department any professor can teach any undergraduate class."

ReplyDeleteI do not believe this for a second. I wish it were true, and I strive to make it true in my case. But in a sufficiently rich undergraduate program, you will find courses that cannot (should not) be taught by just anyone, even allowing for preparation.

E.g., I wouldn't want to teach undergraduate PDEs.

So even if us math folks enjoy the relative luxury of, at the undergraduate level, teaching stuff that is positively ancient by CS standards, it's not quite a cakewalk yet.

I was once talking with a math professor about a calculus of variations problem. She had no idea how to do a very simple problem, even though she told me that she had taught a course on calculus of variations before.

ReplyDeleteWhen you teach, you have time to prepare. If you are asked a question about something you haven't thought about recently, it is much harder.

How many professors could still pass their dissertation defense "cold" if called on to do so?

ReplyDelete"And Computer Science (CS), being an engineering subject,"

ReplyDeleteThen why call it science ? In fact, most computer scientist would try to argue it is a science discipline with deep connections to engineering. In fact, theoretical computer science is really a purely mathematical discipline, where at least the supposed standards of rigor in proofs etc. are the same as in mathematics.

Talking about TCS and proofs, I think a recent article by Igor Shparlinksi in the Notices of the AMS reopens the old wounds (a la Koblitz article which appeared in the same venue). Any comments, anyone ?

How the field changes is also an important factor. Undergrad math has not changed much, where the languages I have been taught in the school when I was an undergrad are no more in use. If you are working in a field that every few years considerable amount of undergrad material changes, it is unreasonable to expect to keep yourself up to date in all those areas. Just look when the books undergrad (or even grad) math courses use and compare it to CS. I personally feel that the changes in CS is much more than other engineering areas like EE.

ReplyDeleteAbout your last two statements, I think one of the reasons for it is that the theory camp within CS has more in common with the discrete math department than CS. I would guess that most theorists in CS are more comfortable teaching graph theory (even a graduate level course) compared to teaching operating systems. (Personally, I wouldn't even mind teaching real analysis or linear algebra, compared to Operating systems or compilers.)

ReplyDelete

ReplyDeleteThen why call it science ? In fact, most computer scientist would try to argue it is a science discipline with deep connections to engineering. In fact, theoretical computer science is really a purely mathematical discipline, where at least the supposed standards of rigor in proofs etc. are the same as in mathematics.The basic difference between TCS and math is the same between theoretical physics and math. The source of inspiration is what matters. TCS studies information processing, inspired, motivated and driven by real world considerations.

Boundaries between fields are, at the end of the day, a bit artificial. Yet proposing a division by method rather than subject seems a singularly bad choice.

ReplyDeleteI would guess that most theorists in CS are more comfortable teaching graph theory (even a graduate level course) compared to teaching operating systems.Careful with generalizations. I think you can find everything under the sun. Personally an undergrad graph theory course would be ok. I would teach operating systems twenty times before I feel ready to teach a grad level graph theory course.

Around here theoreticians routinely teach Operating Systems, Programming, Networks, Databases, Distributed Systems, Programming Languages and Artificial Intelligence.

ReplyDeleteIs there much else out there in the undergrad CS curriculum?

Bill, i was looking forward to a discussion about the work of these prize winners.

ReplyDeleteYour inclusion of redundant additional context directed the discussion to a less important topic. Can you post this again without the additional context so that community could write some comments about their work.

ReplyDeleteThe basic difference between TCS and math is the same between theoretical physics and math. The source of inspiration is what matters. TCS studies information processing, inspired, motivated and driven by real world considerations.I strongly disagree.

Theoretical physics is about physical reality; or better, about mathematical models of physical reality.

The

coreof TCS, on the other hand, isnotabout physical reality, rather it is about mathematical objects, namely, programs, algorithms, Turing machines, etc.An algorithm is an abstract mathematical object, not anything else.

ReplyDeleterather it is about mathematical objects, namely, programs, algorithms, Turing machines, etc.TCS only considers models of computation that are realizable (TM, RAM, word RAM, PRAM), or if not realizable only in as much as they illuminate realizable computations (such as non-deterministic Turing Machines, or oracle machines).

An algorithm is an abstract mathematical object, not anything else.One could say the same thing about an equation like E=mc^2: is just an equation relating three variables, nothing else... or about biochemistry: is just the study of the interaction of four arbitrary molecular base pairs (CGTA) nothing else.

A rather shallow interpretation of rich objects, don't you think?

Algorithms have far reaching semantics beyond a set of arbitrary rules.

ReplyDelete"And Computer Science (CS), being an engineering subject,"

Then why call it science ? In fact, most computer scientist would try to argue it is a science discipline with deep connections to engineering. In fact, theoretical computer science is really a purely mathematical discipline, where at least the supposed standards of rigor in proofs etc. are the same as in mathematics.

'Computer Science' is a misnomer. It is as much science as any engineering discipline and no more. It is obvious that topics like database, operating systems, networks, computer architecture cannot be more 'natural sciences' than thermodynamics, fluid mechanics, signal processing, control theory etc.

Theoretical computer science may be a mathematical discipline as it has a proof-based standard, but so is many other engineering topics.

Much of this discussion seems to be about whether one knows the content of a subject, rather than talking to the much deeper issue of whether one understands the world-view of that subject. As a theoretical computer scientist who has worked on distributed computing and database theory, I may not know the content of programming language type theory, but I am completely at home with its style (which is essentially the same as that of mathematical logic). The difference between systems and theory within CS is not just content; we actually see the world in different ways (which correspond fairly closely to those of engineering and of pure maths). And of course there are other subfields which are sometimes within CS, which have still other worldviews; for example, some of the HCI area uses the research methodology of a social science such as anthropology.

ReplyDeleteIt is vital that anyone in a decision making role (thesis committee, hiring committee, etc) understand the variation, and be accepting of the diversity of our field. An alternative is to have separate departments each constituted around a single worldview. See http://computinged.wordpress.com/2010/02/14/cleaving-computer-science-a-time-for-new-degrees/ for an example that comes close to this division (though still mixing theory and systems together).

"Your inclusion of redundant additional context directed the discussion to a less important topic."

ReplyDeleteI would claim that people discussed the aspect they felt like discussing, because it was more important to them.