An Introduction to Algorithmic Thinking and why it is of prime importance

Algorithmic thinking is a process of reaching a solution with a fixed set of steps. Sometimes problems can have a particular solution and sometimes for some problems we can reach close to the answer but in all the cases we need some steps to approach the problem and to have a possible and best solution for it.

Understanding how to break apart a problem into its composite parts is an essential literacy skill and it is the power of algorithmic thinking that allows solutions to be automated. Algorithmic thinking can be characterized as a blend of logical analysis, deductive reasoning and critical thinking. In my opinion, I think it is the kind of amazing blend that leads us to literally see the pattern or twist that a problem conceals.

It is a kind of precognition that generally provokes the epic Aha! moment. Most importantly, this skill isn’t about knowing a particular coding language: it’s about understanding how to make something happen and think through all of the edge cases, methodology and exceptions.

One more advantage is that in addition to increasing the logical thinking this also helps you in lending you a job as these questions are very popular in all kinds of interviews from technical private interviews to govt jobs.


Puzzle/Quiz 1.1 – Is Unmarried looking at a married one –

Now try to answer this small but a classic thought problem-

Aman is looking at Shivani, but Shivani is looking at Aditya.
Aman is unmarried, but Aditya is not.
Is it true that an unmarried person is looking at a married person?

A: Yes
B: No
C: Cannot be determined

Now just think about it with all the scenarios and post your answer in the comments. I’ll explain this in the next tutorial.
Solution AddedSolution of Married Unmarried dilemma puzzle

Read more Algorithms and their importance in everyone’s life


Algorithmic thinking
Algorithmic thinking

Why Algorithmic Thinking is important?

The main motto of learning programming should be to understand the technique of algorithmic thinking as it is a critical thinking skill, and the world would be a better place if more and more people try to approach problems in this way. The problem is that we memorize stuff, rather than learning about the world algorithmically.

Basically, those who have ignored to focus on conceptualizing the problems, have actually missed a lot. Now for every skill, they have to learn it and they’ll need to re-learn or re-evaluate everything else whenever there are changes. So now what? It’s simple, learn the ability of critical thinking.

Critical thinking involves acquiring a means of assessing and upgrading our ability in order to provide an objective analysis of facts and figures through logic and rationality, to ascertain a judgment. It enables us to enter virtually into any kind of situation and figure out the actual logic behind it. Thus, it provides a way for us to grow by learning from new experiences through the continual process of self-assessment. There is no better way of improving the skills of deductive reasoning and logic other than solving math word problems and logical puzzles. This helps develop critical thinking and problem-solving skills as well. But creative thinking can be strengthened with practice. You can practice creative thinking by solving riddles. Even if you are unable to solve a puzzle your brain will still receive an excellent stimulation and a much-needed workout.

I think back to how I struggled to learn how to code in school. I took class after class and just couldn’t get my head around how to set up the words and numbers on a page to make them do operations. Then, I had this one friend (a senior), who broke it down for me metaphorically and I started to understand. Well, different things work for different people, some learners respond to just seeing the code and having at it, and others need to approach things from a different perspective. The key is to have a combination of algorithmic thinking where you are able to break down the components of a problem and then interrelate these components.


Puzzle/Quiz 1.2 – How to save your life from mad King?

Now try to answer another classic thought problem-

King: Oh young man! Tell me a sentence you like.
If it is true, I will kill you by a sword. If your sentence is false, you’ll be hanged to death.
If you were in the position of that prisoner, what would you do to save yourself?

Now just think about it and put a comment, after all, it is a question of saving a life :P. I’ll explain this in the next tutorial.

Solution Added – Solution of Save yourself fri the mad king puzzle


I think we should strive to teach and learn this skill as early as possible, making it a foundation for everything else because the main aim of education is not about learning stuff, it’s about learning how to be a problem solver, to think and do and test and experiment, as far as your imagination and creativity allows.

You are not late. Today is the best day to start. So start thinking and comment answer to the questions asked above.

Do Share and Subscribe and comment your opinion, queries and suggestions.

Keep Learning. Happy Learning:)

Recommended -

  • Siddhant Bohra

    Great one
    This will help a lot

    • Akshat Katiyar

      how??

  • Pretty interesting, waiting for answers.
    I’m new to programming world, looking forward keenly for your upcoming posts.

  • Siddharth Chandrasekar

    For the first question the answer is A. Yes, there is an unmarried person looking at a married person.
    This will be true for whatever marital state Shivani is.

  • Chandrakanth

    As Siddharth pointed out, the first answer is A, irrelevant of Shivani’s marital status.

    In case of second question, if the prisoner can say “you will hang me to death” : if the king kills by sword then he is assuming the sentence to be true which it is not & if he hangs him to death then the sentence turns out true and he cannot do that…This creates an unbreakable loop.

  • Pingback: Interview Puzzles Set 2 |Top 3 Typists|Find Best Arrangement|Win with Equal Heads | CodinGeek()