Amid the buzz over bringing coding into classrooms, many teachers are stopping to consider the benefits it brings to their students and how they want students to experience coding.

Why coding? And why now? Many of us would quickly respond that learning to code is a necessary skill in today’s world with the vast amount of technology tools available. However, it is a little more difficult to define why or how it is applicable in our daily lives.

As an educator, ask yourself: What are the underlying skills that coding teaches students? What are the learning outcomes we want for students as a result of bringing coding into the classroom?

Computer science is more than just coding. Thinking like a computer scientist involves more skills than just being able to write code. Educators need students to bring their creativity and ability to think collaboratively to a problem in order to solve it. The computer will not solve problems without a human first working through how to approach the problem.

The 2016 ISTE Standards for Students defines the goal for computational thinkers as “students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions.” For students to become computational thinkers, they must develop their skills in this area.

LEGO Education sees computational thinking as a fundamental skill of analytical thinking that will support students to solve problems through computing and computer applications. Students need to learn not only how to approach and solve problems in general, but to solve them with the added component of mathematical or computing processes. Finding success in these processes will better prepare students to use coding and computing applications in the future.

Five key skill sets of computational thinking

Computational thinking includes decomposition, generalizing, algorithmic thinking, evaluation and abstraction. Together these steps teach students the foundations of how to approach a problem and solve it within a computing context. Interestingly, coding is only one part of this systematic approach.

Decomposing teaches students to break down a problem into smaller chunks. This approach allows students to see the problem in more manageable pieces rather than being overwhelmed by the whole problem at once. Students learn that it is possible to work on parts of the problem individually then bring the pieces back together to have a whole solution. This approach helps students learn how to remove complexity from the problem to make it more manageable.

Generalizing, which is also referred to as pattern recognition, challenges students to look at the chunks of the problem to identify what patterns emerge. There could be a part of the problem that is familiar, allowing the student to apply an already known solution or automated process.

Algorithmic thinking. This allows students to pull together a step-by-step plan to solve the problem. When students have the steps defined, they are able to work in their computing applications to program the steps (i.e. coding) to solve the problem. This stage allows students to make a plan and follow that plan to see if it provides the needed solution.

Evaluation. This is an important step for students to learn as they go through this process to ensure they understand how to assess the ways in which the solution meets the needs of the problem. This step is not commonly used in computational thinking, but it is vital to students who are developing the ability to explain and support their solution as the best solution to the problem. It asks students to consider if all the needs of the problem have been met and why this solution is the most appropriate. This step also prepares students to share their work by preparing the evidence of success.

Abstraction. This is a final step that allows students to reflect on the problem that has been solved to see if there is a general rule that could be established within the computing system. In this way, students can develop automated processes within the computing system for similar problems that arise in the future. This step also helps the student polish the solution to simpler terms that makes it more generalized to apply to other problems in the future.

Upon seeing these steps, you may feel that you are already teaching these skills. Most teachers are. They are skills interwoven in many areas of STEM. With computational thinking, students learn how to work together to approach open-ended problems, gain confidence to work with complex problems, and develop grit to continue to work on the problem until a viable solution is found. The added component with computational thinking, however, takes this approach one step further by asking you to think about how you are preparing your students to use technology when solving problems.

How do you work to create computational thinkers in your classroom? Consider how you can embed these steps into your lessons to teach students how to approach a problem that will use computing tools in creating the solution. You can also seek out curriculum options that will meet the ISTE Standards for computational thinking by setting up problems that will push students to develop and test their solutions.

Jenny Nash has been an educational specialist for LEGO® Education North America for two years. During this time, she has worked with educators throughout the U.S. to understand how to bring playful learning opportunities to their classrooms.
Prior to working with LEGO Education, Jenny worked at Marshall University in the College of Education conducting STEM outreach in elementary, middle and high schools in the local area. She also worked with preservice teachers in completing their clinical experiences. A former middle and high school general science in West Virginia, Jenny is currently working toward her doctoral degree in education from the University of Florida.

Related articles

Educators need to be on the front lines of introducing computer science to under-represented groups. Here are four ways you can spur interest in computer science among girls and other under-represented groups.

When students use MakeCode to build Minecraft structures more efficiently and rapidly, they are able to develop a visual understanding of what is going on inside of their code. Students can actually see a structure being built block by block from the code they have just written.