Follow-up Reading on “Computer Science”

   By chris on January 23rd 2008 in /dev/random | 460 views

It seems the conversation on the web about the nature of “computer science” is growing, now encompassing such bandied-about terms as “software engineering” and in my mind generating more questions than answers, which is great because questions are almost always more fun than answers anyhow.

The comments on my Two Thoughts On Computer Science Courses are mostly excellent and interesting, especially the ones from real-world students and post-students about their experiences.

Simmoril’s Domain’s If It’s Worth Having, It’s Worth Working Hard For weighs in on the difference between just creating your software and actually understanding your software.

João Ferreira’s The programmers of tomorrow posits that:

in my opinion, the problem starts before university. The maths’s programs in secondary schools are also being simplified (or dumbed down, if you prefer) and many important concepts, like logic and proofs, are being ignored.

In result, first-year students usually have a poor background on maths and problem solving. In fact, most of them have never seen a proof and don’t even understand the importance of mathematical reasoning. With poor reasoning abilities, they become intellectually less curious, accepting things as they are presented, and they have tremendous difficulties creating new algorithms, or convincing someone that their own algorithms are correct.

I really like that post.

And finally Ravi Mohan threatens to stir up a hornet’s nest in Ratcatchers and Engineers, an article I want to disagree with if only I didn’t agree with it so much.

In my career I have steadfastly fought against ever having “Engineer” in my job title (in one case it really was a fight) for three specific reasons:

  1. I have never proven my software mathematically before building it (prototyping code may seem equivalent to engineers building models but it isn’t). I believe that if you can’t prove your model you haven’t actually engineered anything. And 90% of all software functionality documents I’ve seen are about as analogous to an engineering blueprint as a finger-painting is to the Sistine Chappel.
  2. I have no accreditation with any body that will stand behind me, and I am accountable to no such body in the event of failure. The IEEE and the IIE, as examples, exist for these very reasons.
  3. As someone who’s father actually is an engineer (Elecrical), to call the way in which most popular commercial and web-based software is developed “engineering” strikes me as an insult to those who are actually capable of performing feats of engineering.

Cooking a mean chilli that everyone really likes don’t make you a chef.

Trackback URI | Comments RSS

Leave a Reply