Algorithms and Pattern Recognition

daie-algorithms[1]An algorithm is a fancy word used in the computer science world to describe a plan to solve a problem. Most people believe algorithms are only used with computers, but in reality algorithms can be used in a variety of instances. In computational thinking, algorithms make up a great part of the computational thinking process.

With every problem there is a solution and to get to the solution you need a plan. To start the plan you must have a description of the problem. This is easier said than done since the majority of the descriptions are vague and ambiguous in nature. The developer, or the person that creates the plan, must identify and specifically state the defects within the description without making any assumptions.

The second step is to analyze the problem. This is a crucial step given that you identify the starting and ending point to solving the problem. When determine the starting point, the developer must take into consideration the type of data available, what relationships are there between the data and or what rules exists for working with the data. The same concept applies when determine the ending point. The creator must decide what characteristics will be used to identify the solution. What items will change at the end?

Here is where pattern recognition is crucial. Knowing how to identify patterns leads to relevant data that can be used to make an algorithm.

The third step is to develop the high algorithm or the plan to the solution. By high-algorithm, I mean focusing on the bigger picture of the plan and leaving the small details for later.

Naturally the following the step is to refine the high algorithm plan by adding details. Here is when emphasis is put on the small details that make the algorithm precise. The only issue is knowing how many details are enough. The algorithm has to precise to be used in similar situation, but too detailed where the possibilities of its use are limited to only a few problems.

The final step is reviewing and putting to the test the algorithm.

Here is a more depth explanation on Algorithms and Problem Solving.