Tuesday, October 9, 2007

Lessons from Dijkstra...

A recent article on a blog about the "Great Indian Software Engineer" who is really the "Bechara Software Engineer" got me into some serious soul searching. That, combined with the influences of some of the recent lectures of the professor of my Advanced Distributed Computing class, made me think, why not put my "higher" education of an MS degree, to some use, and look at this problem, like a good scientist would, from a research perspective. So although I agree to most of the things said about the people encompassed under the umbrella of "software engineers" in the article, myself included, I would like to conduct myself in the spirit of a true Computer Scientist, and would like to tie this discussion to a more interesting and perhaps more productive analysis by turning attention to the question of: "What real value can software engineers bring towards ensuring mature thought processes in problem solving?" (Think "algorithms"!!!....)

Basically, what role can Software Engineers(ugh!! I hate that term) so I'll stick to "Computer Scientist"(as that's what I would like to think of myself as) play, in inventing novel approaches that can solve fundamental problems in any scenario, indeed even one such as making an underdeveloped nation wrought with problems become an efficient developed nation? This process actually involves, as its most preliminary steps, a lot of reading between lines, quality research and a special genre of laziness. Yes, a laziness, that can effectively cause sharp research minds to come up with elegant solutions and novel ideas such as the shortest path algorithm. For this, even if we have to change our education system, that is currently engaged in the task of producing "clones", then so be it. We shall have to be lazy enough to reject those paradigms, and create an education system that teaches people to be truly lazy, i.e. "inventing".

See:
The Shortest path problem
Dijkstra's algorithm
Edsger W. Dijkstra
Resources from Dijkstra's "EWD" archive

The following is Dijkstra's views on Computer Science education but it is no less than a lesson in "radical novelty" which is a must-read: (hand-written)/(transcribed)

Will sign off with this quote from the above paper, as food for thought -
"The usual way in which we plan today for tomorrow is in yesterday's vocabulary". - Prof. E.W. Dijkstra

We need just a few hundred people in the nation from our vast pool of software engineers that think like Dijkstra. Are the computer scientists listening?

Best,
Useless Banter

No comments: