Tuesday, 12 February 2008

computer scientistprogrammingmathematic



Computer Scientist:Programming::Mathematician:Arithmetic

One of the things that continues to exasperate me on a regular basis

is the conflation of computer science with programming. Consider two

recent gems (emphasis mine):

1. From a press release for Microsoft TechFest 2007:

Boku, a virtual robot in a simulated world, debuted as a research

project to teach kids basic programming skills in a fun and

entertaining way. "There is an ongoing and deepening crisis in

computer science," Rashid said. "Our goal is to stem the tide by

showing young kids the magic of software programming."

2. From an article on changing perceptions of computer science at

college and K-12 level:

East Allen County Schools is working to make sure students are

exposed to computer careers, whether they think they might be

interested or not. All students are required to take a computer

course before graduating, and those who know they are interested

can take in-depth courses, including training on Cisco computer

networks...

Sigh. Ok people, say after me, slowly: Computer Science IS NOT

programming. How many musicians do you think you're going to attract

by preaching the exquisite beauty of scales and arpeggios to little

kids?

As Lance mentions, the closure of stores like CompUSA is a harbinger

of the end of computer science as "television science". The more

familiar people get with computers, the more they treat them as

appliances rather than as complex devices worthy of worship.

What does this mean ? You aren't going to attract people to a field by

saying, "Lookee here! here's a neat television ! Let me show you how

to build one. It's FUN!!!!". First of all, people ain't stupid.

Secondly, there's a lot more to computer science than programming.

Thankfully, we do see here and there the signs of a manifesto for

computer science that doesn't involve actually programming a computer:

From Jeanette Wing's CACM article:

Computer science is the study of computation: what can be computed

and how to compute it.

Amen to that. And notice how different it sounds to the version you

might get from the random person on the street:

Computer science is the study of computers.

If I had to preach the gospel of computer-science-as-computation, I'd

probably riff off three things:

* The above mentioned CACM article. Message: Computer science is the

study of algorithms and abstractions.

* Bernard Chazelle's IPod essay. Message: Algorithms are the

language of modern science

* Scott Aaronson's 'Logicians on Safari' article. Message: Computer

science is quantitative epistemology.

'Nuff said.

p.s Chazelle is quickly becoming the poet-laureate for 21st century

computer science: check out the table of contents for his course

titled, "What do your DNA and your iPod have in common ?"


No comments: