Problem Solving and Critical Thinking
Coding when taught the right way, teaches kids life skills that positively impact their approach towards dealing effectively with demands and challenges of life. In a series of posts we will connect how coding develops such skills and encourages positive behavior among students.
Let’s start with problem solving and critical thinking skills. These skills come with practice and writing computer programs to design solutions to bring own ideas to life or develop fun games, is a great way to practice these skills!.
How exactly does coding build problem solving and critical thinking skills?
When students are taught to write code the right way, they develop computational thinking (CT), the process of solving problems using ideas from the computer science discipline. CT builds logical thinking and problem solving skills applicable to coding as well as to situations in daily life and to any subject at school.
We inadvertently use computational thinking in our lives everyday. However, the fact the computers can’t deal with ambiguities forces kids to follow a systematic approach towards problem solving. Solving problems using CT starts with decomposition, where students think through and break down a large problem into sub-problem. Doing this instantly makes a large problem seem less overwhelming. Think about baking a chocolate cake, and how would you break down the task of baking a cake into sub-tasks.
Next, students learn to recognize patterns between the sub-problems or across problems with the idea of reusing their solutions across sub-problems instead of re-writing the code all over. Think about baking a vanilla cake this time. Break down the task into sub-tasks and analyze what sub-tasks remain the same between baking a chocolate cake and baking a vanilla cake. For example: searching for a recipe, buying ingredients, following a recipe to bake.
Next, students abstract the solution by removing irrelevant details to focus on the key problem to be solved. Going back to baking the cake, does your cake baking solution depend on the quantity of the cake? The ingredients and baking time will depend on the quantity of cake but does it change your solution? Not really! You still follow the same process (sub-tasks) to bake the cake.
Finally, students design the algorithm to identify clear steps to solve the problem. In our cake baking example, we google and find the recipe with most stars or use the recipe from our favorite recipe site, then we go to the grocery store and buy ingredients, then we mix the ingredients and follow a range of the steps until the cake is ready!
In real life, once we start baking we may realize that we are out of flour and then realize we are out of sugar and probably milk too. We may then decide to go to the grocery store to buy the missing ingredients. However, computers need to be provided clear instructions and the order in which the instructions need to be executed. This forces students to follow the systematic approach of problem solving and connecting solutions for sub-problems to formulate a complete solution.
Whizara’s instructors are trained to teach coding while developing computational thinking among students to equip students with robust problem solving and critical thinking skills. Students are trained not only to code but to become confident problem solvers who solve real life problems (and not only computational problems) in systematically without getting overwhelmed.
Stay tuned for the next in the series of Coding and Life Skills.