An algorithm in simple term, is a step-by-step set of instructions that shows the process of accomplishing a specific task.
Yeah! That’s an algorithm.
Here is an example of an algorithm of “how to make coffee at home”;
As you can see from the above example, an algorithm is not a complicated term. And there seems to be an algorithm for accomplishing almost any task.
If you write down a step-by-step set of instruction that shows how you prepare for work or school daily; that’s an algorithm.
The concept of an algorithm is quite simple but not all algorithms are as simple as “how to make a coffee at home” or “how you prepare for work daily”.
There is also computer algorithms that are somewhat complicated, especially advanced ones.
Algorithms, kind of reminds me of algebra.
Wait a minute!
Do you know that the terms algorithm and algebra springs up from the same source?
The term algorithm dates back to 900 years ago.
In the 9th century, a great mathematician called, Muhammad Ibn Musa Al-Khwarizmi, lived famously in Persia.
He was appointed as the head of the House of Wisdom (an intellectual centre for scholars) around 820 AD, in Persia (present day Bagdad).
Al-Khwarizmi was a scholar who produced works in mathematics, geography, astronomy and cartography.
One of his influential book titled “Concerning the Hindu Art of Reckoning”, was discovered 300 years later after the work was produced. And it was translated into Latin.
When his name “Al-Khwarizmi” was Latinized in the title of the Latin version of the book, it became ALGORITHMI.
The origin of the word ‘Algorithm’ and ‘Algebra’ was also another word originating from the work of Al-Khwarizmi or should I say ‘Algorithmi’.
Algorithmi’s or Al-Khwarizmi’s works revolutionized western mathematics greatly. So great was his influence in western mathematics, that the current numbering system in the west (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) was introduced by the works of Algorithmi along with the decimal points, among other things.
The word ‘algorithm’ gradually slipped its way into the English words around the 13th Century and in the 19th Century, it became known as a step-by-step set of information for accomplishing a specific task.
That was how algorithms came to be known as algorithms, thanks partly to Al-Khwarizmi or Algorithmi in Latin.
Algorithms are everywhere today, even as we breathe, literally. If you take the time to look around you now (like right now), you are bond to note some algorithms in execution.
There are billions of algorithms running in our everyday lives. Here are examples of algorithms in Everyday Life:
You can spot lots of algorithms in play, if you become more observant of your environment (everything within and without) and take detailed step-by-step records of every happening.
Mathematical algorithms are set of rules for solving a specific mathematical problem.
Algorithms has for long been the pillar of mathematics. Without really going deep or becoming too nerdy, just think about how we add, subtract, divide and multiple numbers, it’s by following an algorithm (2 + 2 * 2 – 2 = 4).
With mathematics there is always a set of rules (algorithms) to flow in order to solve problems.
Mathematical algorithms have been in existence since antiquity. Ancient Babylonian and Egyptian mathematicians use arithmetic algorithms such as algorithms for solving division, for solving basic arithmetic problems.
Ancient Arabic mathematicians used cryptographic algorithms for code breaking and the popular Euclidean algorithm was used for finding the greatest common divisor of two numbers.
Algorithms are everywhere indeed.
Computer algorithms also known as computer programs are set of instructions written in computer language that shows/tells a computer how to accomplish a task.
They are simply, algorithms written in languages a computer can understand (computer language).
When a computer algorithm is executed, a task is accomplished.
Algorithms ushered in computers, and that’s what a look back in time tells.
Computers are nothing but an electromagnetic devices that performs task based on the execution of algorithms. And their existence today, was in part credited to Charles Babbage, the father of computers.
Babbage was the historic man who invented the first mechanical computer called “analytical engine”. Though he didn’t complete its construction, the essential ideas of modern computers were found in the Analytical Engine.
In his inventing Analytical Engine, Babbage originated the concept of a digital programmable computer and that’s simply how computer algorithms came to be.
The idea was simply to make machines accomplish tasks by making them follow a set of well-defined instructions (algorithms).
Fast forward past the days of Alan Turin, the supposed father of modern computers. Computers became more useful/helpful as they became programmable (being able to follow algorithms).
Technological advancement which relation to computers has really being about our ability to given computer systems more advanced algorithms. And of course increasing and improving its ability to execute the algorithms speedily.
There are many examples of computer algorithms, ranging from the simple to the complicated, and from the outdated to the cutting edge.
Here are few examples of computer algorithms:
It will be somewhat incomplete to explore the concept of an algorithm without cutting across flowcharts: It’s like the two are destined for each other.
Flowcharts in General, are diagrams that depicts a process. They became widely associated with computer algorithms as they were used to represent computer algorithms using diagrams.
Flowcharts helps a layman to understand by diagrams how a computer algorithm works.
Here is an example of flowcharts:
Algorithms in general has different structures, basically there are three different structures. And they are classified as such. Below are the three types of Algorithms:
These are the most popular and simple type of algorithms.
Sequential Algorithms are set of rules for accomplishing a specific task. They are executed following a step-by-step approach directly.
Note the word ‘directly’ in the aforementioned definition because that’s what make sequential algorithms unique.
Say there are 7 steps to accomplishing the task of making a coffee, and these steps are structured as a sequential algorithm.
In order to execute this algorithm, you will have to follow step 1 – step 7 directly without having to repeat or jump a step in the process of execution.
Sequential algorithms are mostly adopted for structuring simple algorithmic problem.
These are set of rules/instructions for accomplishing a specific tasks, following a well-defined repeated steps. With loop algorithm the key word to look out for is “well-defined repeated steps”.
Loop algorithms are unique because of the introduction of loops (well-defined repeated steps in an algorithm) to turn complex sequential algorithmic problem to simple algorithms. This is the case when series of steps are repeated in an algorithm.
One example of a loop algorithm is the algorithm of ‘walking’. To write down this algorithm sequentially, it will look like the following:
Step I: Move your left leg forward
Step II: Move your right leg forward
Step III: Move your left leg forward
Step IV: Move your right leg forward
Step V: Move your left leg forward
Step VI: Move your right leg forward
Step VII: Move your left leg forward
Step VIII: Move your right leg forward
Step IX: Move your left leg forward
Step X: Move your right leg forward ……. and so on.
You get the picture right?
Writing an algorithm like this in sequentially will get the job done eventually but the writing process would be daunting.
But, this is a situation where loop algorithms flourishes.
If you look at the above walking algorithm, you will notice that step I and II are simply just repeated over and over again. Using a loop in the above algorithm will be simple like the following:
Step I: Move your left leg forward
Step II: Move your right leg forward
Step III: Repeat Step I and II
That’s simply a loop algorithm.
These are types of algorithms were “user-defined” conditions are allowed or introduced within the set of instructions for accomplishing a specific task.
Algorithms are generally created to help accomplish a specific task, but with conditional algorithms, it’s kind of tricky.
Say for instance, I intend to write an algorithm on how to make a coffee at home, and it dawn on me that coffee are either served hot or cold. What do I do?
Using a sequential algorithm, I may have to write two separate algorithms, one for a hot coffee and another for a cold coffee.
Obviously, doing so would be daunting, since, the difference between a hot or cold coffee lies in a small detail: The temperature of the water used, ice or no ice.
A simple way to solve this kind of problem algorithmically is to introduce conditions within the algorithms. As such, the algorithms for making a hot/cold coffee would look like the following:
Algorithms with conditions are usually expressed with the “if-else-then” statements. They are vital for writing algorithms where the executor (user) has the power to select options while executing the algorithm.
Conditional algorithms are simply; if a condition is true the output will be A, else, if it is false, the output would be B.
In a more complex algorithms, its common practice to see the use of all three or two types of algorithms expressed within an algorithm. Complex algorithms are more about incorporating/linking different simple algorithms to achieve a desired output.
The importance of algorithms cannot be over-emphasized. Algorithms are vital for defining how things work and to make things work. Without algorithms, forget modern technology.
As a matter of fact, forget the universe, it will certainly not exist as it is without following diverse algorithms.
Here are some importance of algorithms:
Algorithms are the simple, yet, very important details about how things work. They are indeed in a simple term: step-by-step set of instructions on how to accomplish tasks. They are everywhere.
A Latinized name of a great Persian mathematician, has rose to prominence, becoming a buzzword and playing major roles in every industry.
What makes Facebook and Google Search so unique? Most people would say (among other things), it’s the unique algorithms their systems execute.
Algorithms will play a great role in the future, owing to its role in Artificial Intelligence Development.
Your Alexa, Siri and Google Assistant relies on amazing deep learning algorithms to be functionally intelligent.
Algorithms are undeniably important and they are everywhere, even in your breathing process.
Realistic, thoughtful, and optimistic, these are the words that will drive this article. Let’s talk the future, the future… Read More
Artificial Intelligence Development, a fancy word for a fancy world. Sounds Rhetorical. Artificial Intelligence (AI) has been a buzzword for… Read More
AI Artificial intelligence is now 60+ years old as a field and younger as an industry. Since inception, the quest… Read More
Artificial Intelligence is a promising field of study (probably the most promising). The field is still developing, yet, it has… Read More