Featured post

Why should I learn Go?

Image
What is unique about GO language? Here are some of the advantages of GO programming language:           Code runs fast           Garbage collection           Simpler objects           Efficient concurrency Code runs faster: Before understanding why GO runs faster, let us know the process of software translation. Basically, we have three broad categories of languages:             Machine level language ·        Machine level language is a low-level language where instructions are directly executed on the CPU. Machine level instructions are small steps which are straight forward and simple (Ex: ADD, SUBTRACT, MULTIPLY ) Assembly language ·        Assembly language is similar to machine level language but a bit more specific for humans to understand. For example, 1000...

Why study Algorithms?

So what is an algorithm anyways?


 Basically it's a set of well defined rules, a recipe in effect for solving some computational problem.  Maybe you have a bunch of numbers and you want to rearrange them so that they're in sorted order. Maybe you have a roadmap and an origin and a destination and you want to compute the shortest path from that origin to that destination. May be you face a number of different tasks that need to be completed by certain deadlines and you want to know in what order you should accomplish the task.  So that you complete them all by their respective deadlines.  

So why study algorithms?
 Well first of all, understanding the basics of algorithms and the related field of data structures is essential for doing serious work in pretty much any branch of computer science.  To give you a few examples, routing and communication networks piggybacks on classical shortest path algorithms.  The effectiveness of public key cryptography relies on that of number-theoretic algorithms. Computer graphics needs the computational primitives supplied by geometric algorithms.  Database indices rely on balanced search tree data structures.  Computational biology uses dynamic programming algorithms to measure genome similarity. And the list goes on. 
Second, algorithms play a key role in modern technological innovation.  To give just one obvious example, search engines use a tapestry of algorithms to efficiently compute the relevance of various webpages to it's given search query. The most famous such algorithm is the page rank algorithm currently in use by Google.  
Indeed in a December 2010 report to the United States White House, the President's council of advisers on science and technology argued that in many areas performance gains due to improvements in algorithms have vastly exceeded the dramatic performance gains due to increased processor speeds.  

Applications of Algorithms


Algorithms are increasingly being used to provide a novel lens on processes outside of computer science and technology. For example, the study of quantum computation has provided a new Computational viewpoint on quantum mechanics. Price fluctuations in economic markets can be fruitfully viewed as an algorithmic process and even evolution can be usefully thought of as a surprisingly effect search algorithm.  The last two reasons for studying algorithms might sound flippant but both have more than a grain of truth to them. I don't know about you, but my favourite classes were always the challenging ones that, after I struggled through them, left me feeling a few IQ points smarter than when I  started. It's an endeavour that requires a rare blend of precision and creativity. It can certainly be frustrating at times, but it's also highly addictive. So let's descend from these lofty generalities and get much more concrete. And let's remember that we've all been learning about and using algorithms since we were little kids.  

Popular posts from this blog

Introduction to Big Data and Hadoop

LocationManager vs GoogleApiClient

Why should I learn Go?