When presented with a problem a programmer goes through a set of steps in order to provide a solution for the problem.
(1) Understanding the problem;
(2) Breaking the problem into smaller pieces;
(3) Designing an solution (this can be a draft, in a persons head notes etc).
(4) Implementing the solution (building the program) hereby solving the original problem.
Understanding the problem entails holding conversations with domain experts to understand the parameters of the problem, what data they can provide to the computer program, what answers they expect, etc. Breaking the problem is basically the step of turning the problem from an English description to a number of mathematical descriptions that is amenable to further analyses.
The power of algorithmic thinking is that it allows solutions to be automated.
Lets take a simple but fun example :
Making coffee :D
The problem was how to make a coffee,
after that it was broken into a bunch of easy and simple to understand set of instructions.
This clear set of instructions is an algorithm.
In our everyday life we probably do not notice a lot of the algorithm’s we use even the more complex one’s (The science behind checking an email, listening music, an app we use everyday).
But they play a major part in our daily lives.
In the next post about these algorithms i will dive in a bit deeper into the wormhole that are algorithms