Teaching Python

We're two middle school teachers learning and teaching Python

Developing Critical Thinking Skills with Coding

Why Build Critical Thinking Skills?

Critical thinking is a skill that is essential in schools. Combining other skills such as analyzing, evaluating valid and reliable information, and synthesizing it to obtain an educated answer makes critical thinking so fundamental for students to grasp early on in their education.

It is critical for successful learning and is a skill used for life. Developing these skills helps to create lifelong learners who are curious, independent, and have broad interests.

A good learner knows that only memorizing and regurgitating knowledge may help one develop book smarts; however, a person who can formulate a new answer after gathering multiple sources of information is critically smart. Learners who bury themselves in quality research, weed out opinions, cipher through documentation, and develop an answer grounded in truth is a person guided to find the most accurate solution to a problem.


What is Critical Thinking?

Critical thinking is best described as a habit of mind, a way of thinking. It is a process that requires the use of logic to solve a problem. It is the thinking of intellect and derives from a continuous need to improve upon the answer.

Defining the skills embedded within critical thinking is difficult without first identifying what it means to be a critical thinker.

A critical thinker knows how to ask the right questions. They apply the Right Question Technique or QFT by default, without knowing about QFT. This type of thinker knows that vital questions must be raised, addressed, and formulated clearly and precisely. As we know, “A problem well-stated is half-solved.”

Effective critical thinkers know that all aspects of a problem need to be explored and there are always hidden facts that may need to be hashed out. Being able to clearly identify the problem helps critical thinkers solve complex problems.

A critical thinker knows how to break large problems into smaller bite-size pieces. This type of thinker knows that complex problems happen in every facet of our lives. Therefore, this type of thinker has developed patience and grit that helps in becoming an effective problem-solver.


How can you Develop Critical Thinking through Coding?

As a learner, before you can explore the skills of critical thinking, the opportunity needs to exist. A learner needs to have the content and the desire to apply the skills.

"Critical thinking relies on content, because you can't navigate masses of information if you have nothing to navigate to." -- Kathy Hirsh-Pasek

Learning to code or program is an area where learning how to think critically is inevitable. Studies conducted at Carnegie Mellon show that programming is beneficial to cognitive development and that starting to code early is an excellent basis for children when learning how to learn.

Here are a few reasons why learning to code is beneficial to your brain.

  • A person who codes is a person who develops their critical thinking skills daily. For programmers, encountering a complex issue occurs every second and although every coding problem may be different, there is a system to solving problems.

  • One of the reasons coding develops critical thinking is that coding can be messy. When you code, you need to try many different solutions for your programming problem. Good coders can analyze which program works the best. You are guaranteed to make mistakes. Learning is not linear and coding is not a linear task either.

  • Coding teaches you to use critical thinking skills to debug coding errors. And failure IS an option in programming. With every coding error, you have the opportunity to fix the issue and build upon more skills.

  • A person who codes has to simplify complex problems. Every problem is made up of many smaller problems. Solving these small problems provides a workout for the brain. Programmers get continuous experience with critical thinking and breaking down problems, so much that professional programmers often can solve complex coding problems even when they are away from their computer.

  • A person who codes knows that asking the right questions can help to solve problems easier. Coding helps to build inquiry skills.

  • A coder develops the critical thinking skills that allow him/her to build a repertoire of information that can be transferred and reapplied in different concepts. Connections are made and problems become easier to decipher.


In this keynote presentation for Creacode's Home Alone Conference, Sean and Kelly summarize the importance of defining and developing critical thinking skills.

Critical thinking is not “just thinking,” but it is a process of actively evaluating and applying the information to improve upon a process. Students develop many critical thinking skills when they learn to code. This quote is a favorite of mine and sums up the need to think to learn to think critically.

"Critical thinking is thinking about your thinking while you’re thinking in order to make your thinking better." -- Richard W. Paul


1 Charles Kettering, the famed inventor and head of research for GM quoted, "“A problem well-stated is half-solved.”