I’ve often thought this, and it’s interesting to see that Joel Spolsky agrees.
Computer Science is the science of, well, computation. It’s a question of what is possible with computers, is more like a branch of Mathematics, and much of it can be done without computers. I mean, a lot of the fundamentals had been figured out before the development of the transistor.
Software writing, well, that’s an Engineering skill. It’s got a practical end. I guess it is the difference between someone proving by thought that bridges can cross rivers, and someone actually building a bridge to cross a river this wide, strong enough for that type of cart, etc..
And at the moment, nobody really teaches Software Engineering. Which is a shame. But at least it explains how I came to software writing from a Cybernetics background without suffering much of a disadvantage. Just like Computer Science, we’d picked up programming as just one of our ‘tools’ during our studies…