Algorithms : The building blocks of the Computer Software

Algorithms : The building blocks of the Computer Software

In the previous blog about algorithms, It described the great ideas of computer science but computer scientists describe this ideas, call them "Algorithms". So what's the difference between idea and an algorithms? The simplest answer to this question is to say that an algorithm is a precise recipe that specifies exact sequences of steps required to solve a problem. The great example for supporting this answer is how children's get taught to add two large numbers in school as shown below.

345611 + 989811 = xxxxx2 -> xxxx22 ->

The above addition shows first two steps involved in adding two large numbers. So we can see that the process of addition contains precise number of steps that is also universal irrespective of input. The key feature of an algorithm is that no human intuition or guesswork required. Its just like a mechanical machine. Therefore each of the mechanical steps can be programmed into the computer.

Now, We understood what an algorithm is but how do you define an algorithm? What are the fundamental operations that needs to be known to an algorithm in order to work without human intuition ? How precise does the recipe be ? It turns out to be quite important and the answer lies at the heart of computer science.

Because Computers needs to programmed with very precise instructions Therefore, for a computer to solve a problem, we need to first develop an algorithm for the problem.

What are great algorithms ? 

Which Algorithms are truly great, is a tricky question and the list would be very large, indeed. Therefore We have to set some criteria for it.
The very first criteria is that Algorithms are used by ordinary computer users everyday. 
The second criteria is It must address real world problems - problems like compressing a particular file or transmitting it accurately over a noisy link.
The third criteria is that the algorithms must relate to the theory of computer science. This eliminates the technologies that focus on computer hardware like cpu, monitors and networks.
Why to consider the theory of computer science as a criteria is because there is a global perception about computer science and belief that computer science is mostly about programming ( i.e. "software") and the design of gadgets ( i.e "hardware"). In fact, many of the computer science ideas don't fall in either of these categories. 

Let me discuss the criteria selection points. The first criteria - everyday use by ordinary computer users - eliminates algorithms used by computer professionals, such as compilers, IDE, program debuggers, etc. 
The second criteria - concrete application to a specific problem - eliminates many of the great algorithms that are central to the undergraduate computer science curriculum like sorting algorithms quick sort, graph, data structures,etc.


Comments

Popular posts from this blog

Let us C book Chapter 1 Exercise Solutions

Use your old android phone as a Wifi router/Access point for your home network to extend Wi-fi Signal

Data Structures book chapter 3 exercise solutions