Algorithmic Thinking & Logical Reasoning

Definition of Algorithmic Thinking:

Algorithmic thinking is a problem-solving technique that involves breaking down a problem into smaller, more manageable parts, identifying patterns and relationships, and developing algorithms to solve it. It is a way of thinking that is focused on the logical steps and processes that are needed to solve a problem or complete a task.

– Definition cited from the Algorithmic Thinking Course from Coursera.org

Algorithmic Thinking & Logical Reasoning

In algorithmic thinking, a problem is approached by breaking it down into smaller and simpler sub-problems, then analyzed and solved using a logical sequence of steps, which are often expressed as an algorithm. An algorithm is a set of instructions or rules that define how to perform a particular task or solve a problem.

Algorithmic thinking is not limited to computer science and programming; it is a way of thinking that can be applied to any problem-solving task. It can be used to solve problems in fields such as mathematics, engineering, science, finance, and business.

The benefits of algorithmic thinking include the ability to analyze complex problems, identify patterns and relationships, and develop efficient solutions. It can also help individuals become more organized, logical, and systematic in their problem-solving approach.

algorithmic thinking breaks down a problem into smaller, more manageable parts, analyzing each part, and developing algorithms to solve it. It is a valuable skill that can be applied to many different fields and can help individuals more effectively solve problems.

6 commonly used types of algorithms (For a more detailed description of these algorithms follow this link):

  1. Brute force algorithms: These algorithms solve problems by systematically checking every possible solution. While this method is straightforward, it can be inefficient and slow.
  2. Divide and conquer algorithms: These algorithms break a problem down into smaller subproblems, solve them separately, and then combine the solutions to solve the original problem. This approach is often more efficient than brute force. Two examples of this type of algorithm are: Quicksort, Mergesort
  3. Dynamic programming algorithms: These algorithms use a bottom-up approach to solving problems, by breaking them down into smaller subproblems and solving each subproblem only once. This approach can be more efficient than divide and conquer algorithms.
  4. Greedy algorithms: These algorithms make decisions based on the best choice available at each step, without considering the overall impact on the final solution. While this approach can be quick, it can also lead to suboptimal solutions.
  5. Randomized algorithms: These algorithms use randomness to find solutions, often by generating multiple potential solutions and selecting the best one. This approach can be useful when exact solutions are difficult to find.
  6. Backtracking algorithms: These algorithms solve problems by trying out different solutions, and undoing them if they don’t work. This approach can be useful for problems with many potential solutions.

Logical Reasoning

Logical Reasoning are the rules created to govern the performance of an algorithm for the purpose of problem solving.

  • Given there are typically multiple ways to solve a problem, understanding how to frame a problems solution logically is critical
  • Algorithms are designed as a set of steps to follow to solve a problem
We need to check if the person is 16 years old exactly.

Reference List: 

Greiner, J., Rixner, S., Nakhleh, L., Wong, S., Warren, J. (n.d.). Fundamentals of Computing Specialization. Coursera.org. https://www.coursera.org/specializations/computer-fundamentals.Waraich, K. (n.d.). Most Important Type of Algorithms. Code studio. Retrieved May 7, 2023, from https://www.codingninjas.com/codestudio/library/types-of-algorithms-and-their-uses).