Critical thinking is the suspension of judgement while identifying biases and underlying assumptions in order to draw accurate conclusions. Critical thinking is among the most important causes of change in kids for their overall development, and especially to do well in the Science, Technology, Engineering, and Mathematics (STEM) areas. For a teacher, there is probably nothing more important than to enable a child to develop critical thinking skills and apply them in every situation.

To think critically is to continuously evaluate one’s assumptions and inferences carefully. While writing programs in class, children are provided with ample amount of time to reflect and think clearly about the approach to solve a programming problem. A paper published by a Professor at Harvard in 2004 defines critical thinking as “Critical thinking examines assumptions, discerns hidden values, evaluates evidence, and assesses conclusions.”

It is easy to see the role of coding or programming in promoting critical thinking in children. When children start to write even smaller programs, they have to critically visualise the sequence of events that the computer should process in order to achieve a desired outcome. Children should visualise a particular problem and try to figure out what kind of programming constructs – variables, data types, primitive data structures, advanced data structures, searching/sorting/scanning, loops, sequential flow, characters, and output variables – are to be used to make this program possible. And when there are warnings and errors and the desired output and desired action of characters is not achieved, they spend the most important hours of programming in debugging the root-causes of problems by analysing the program and spending time in the possible areas of the source code and placing break-points and comments to understand the detail.

At UnicMinds, while they are learning coding, we ensure that they’re getting the right basics of statistical analysis – how to understand data in terms of mean, variance, and std. deviation and how to fit various distributions such as exponential, logarithmic, linear, etc. We ensure that they understand how computers can understand data. We provide common relatable examples to kids such as if there are two products on Amazon with both 3.8 rating (out of 50 reviews), then how will you choose which product to buy. How can you use your statistics and coding knowledge to critically evaluate that decision. While the overall average rating could be the same, but which of them have more lower ratings (1/2/3), which of them has lower variance, etc.

We help children understand using simple mechanisms like below to help them understand the basic tenets of mathematics and programming. So, when we say we teach coding, we teach more of computer science and mathematics in an applied manner and not only the syntax of programming languages. Syntax of programming language is the “how” part of doing something. It is important, but the more important part is the “what” and “why”. The “what” and “why” is the part that promotes critical thinking more exhaustively – to understand what is to be done, what programming constructs to be used, what data structures to be used, what statistics to be used, and what flows to be used in order to achieve a desired result.

We also ask questions that promote critical thinking in children and expand their limits during their conversations with us. For example, we may pick something like: do you think you can store a 13 digit number in an integer variable. Questions like these will enable children to start understanding that every entity has limits and it is important to evaluate what those limits are beforehand rather than reaching beyond those limits and failing in actual situations.

The objective here is to develop thinking in children on various aspects in multi-faceted ways. For example, we often introduce children saying there are a set of problems in computer science that need your help, and if you solve them then you’ll be the next greatest computer mathematician. The objective is to not overwhelm them but to excite them. This is the kind of courage that takes years to grow and is the bedrock for the development of strong individuality in future.

To think critically requires you to garner knowledge, form an understanding, get inside the mind of the clockmaker, judge their work, and then articulate it all for a specific form. We induce this critical-thinking in all our curriculums both subtly and directly that benefits children in the long-term.

Hope this is useful, thank you.

You may want to read: Binary Trees of Computer Science – A bit twisted!