Tuesday, April 25, 2006
THE ALGORITHMS
One of the first things which I became associated with when I seriously started pursuing computer programming was algorithms. "Algorithm is the backbone of a computer program", I can still remember the voice of my teacher who was trying to emphasize the importance of an algorithm for writing a piece of code. Yes, she was very correct, but she narrowed the scope of an Algorithm when she restricted it to computer programming. An algorithm is defined as a set of instructions or procedures which are to be followed to achieve the desired outcome. But the scope of Algorithms is not at all related only to the computer programs, there are many algorithms which are being implemented at places which are not distantly related to computers or programming. One of such algorithms affects our daily lives. Remember when u saw a new born baby, he comes out and opens his eyes in the world, following which he learns to speak and then learns to walk. Then with the growing age he starts education formal and informal. Then it turns out that he has become big enough and finds a partner for him/her. Then he gives rise to another new child and the things continue until he/she dies. All this is a complex algorithm, may be we can call it "The Algorithm of Life" and some how even the exceptional cases that happen in the process also resemble the way Algorithms perform. This similarity between a human life and Algorithm forces me to write something on the topic. Think of the time when a person gives birth to his child, a similar thing occurs with algorithms, which is referred to as branching when an algorithm initiates another algorithm. There are times when people pass of without completing all the stages of life, strange though there is a similar phenomenon with algorithms, those related to computer programming would have came cross the term 'Abnormal Termination'. Then there are other interesting similarities, like there are concurrent running algorithms with different parameters, and then there is passing of information between two or more algorithms. All these similarities are amazing which somehow bring to a holistic picture of a world as a huge computer, processing around six billion algorithms simultaneously, the output and processes going on in continuous fashion. All running like a matrix of numbers somewhere in the core. But one thing which haunts me is one terminology which I can't relate to the algorithm of life is the looping algorithms, that is the algorithms who keep looping with their own instances and the lead to....EVER HEARD OF A COMPUTER HANG?????