Friday, February 25, 2005

the concorde

"The Concorde Doesn't Fly Anymore," says Moti Ben-Ari's opening slide at this morning's SIGCSE keynote. Moti is an interesting story of a grad student who typed up an Igloo book on concurrent programming -- published twenty years ago. He thinks that in computer science, we are only tweaking our field just as the whole idea of airplane development. Thus the connection to the Concorde. In CS there are no longer many big new re-designs or epiphany, just small refinements.

Ben-Ari voices "a plea for maturity." In most fields, there are principles and artifacts. Principles are core knowledge (math, science, theory) and artifacts are facets of the field that specialists will study (such as AI, vision). Most CS curricula are half and half, but an engineering degree covers more of the principles. He thinks that maybe CS should mature to do this too...

With regards to older computing technology, Ben-Ari asks why in physics students learn Newtonian stuff first. If we taught CS students old languages first, we'd get yelled at, yet physicists come up with new stuff all the time. He says, "Pascal is a great improvement on languages that came later." Maybe he's right. Maybe we've forgotten the past and need to stop re-inventing things.

"We spend a lot of time trying to make computer science easy -- I think we should spend more time for some students to make CS hard." Amen.

Things for me to look at:
  • Ben-Ari and Burns "Extreme Interleavings." IEEE Concurrency 6(3), 1998, 90. Initialize a variable to zero. Spawn two concurrent threads to increment the variable ten times each. What's the resulting number? This article shows that it could not only be in the range of 10 to 20, but it could also be nine... Let me know if you find a free copy of this article.
  • Nasa Quote: There was an amazing technological advance that landed someone on the moon. How can we make another step like this?
  • Hobbes' Internet Timeline
  • Project Gutenberg
  • The Victorian Internet. Shows how the telegraph made as much impact on society as the internet.
  • Profession by Isaac Asimov. (Creativity only comes through long study of lots of areas. )


Kanishk said...

I don't see what's so special about a "plea for maturity" or the whole idea about teaching computer lingos in a chronological format.

Most Indian Computer Science programs begin with GWBASIC, COBOL, Pascal, and the old school stuff before moving to the newest stuff out there.

I'm all for establishing *principles* in computer science. Heck, Software Engineering already has SWEBOK - and Software Engineering is ridiculously touchy-feely.

It shouldn't be that hard.

Sid Stamm said...

That's pretty much what Ben-Ari was saying. He showed results from other (more mature) sciences, and they all spend much more time teaching their students the principles of the field... CS is 50/50, whereas Physics (for example) is 70/30 at most universities.

Too many CS programs (at least in the US) want to give the students the "latest and greatest" such as Objects First, which failed. Others offer too much fluff -- the students come out specializing in fifty areas and thinking there are no principles to CS; they think it's just a big mess of concepts they have carved a chunk from. From year to year, a CS degree is different even though the *principles* of the field are not. I've had lots of people tell me they are a CS because they want to write programs, but I think these people are missing a point somewhere...