The What, Why, and How of Computational Thinking

As part of the Teaching, Learning, and Assessment class in Seattle Pacific University’s Digital Education Leadership Program, we are learning about ISTE student standard 5- Computational Thinker. For this standard I wanted to investigate what ways I can begin introducing computational thinking in the classroom and encourage problem solving skills. To do this, I looked at what computational thinking is, why it is important, and how to introduce the elements into the classroom. Through research, my focus for this investigation was to cover the following standard indicators:

5a: Students formulate problem definitions suited for technology-assisted methods such as data analysis, abstract models and algorithmic thinking in exploring and finding solutions.

5c: Students break problems into component parts, extract key information, and develop descriptive models to understand complex systems or facilitate problem-solving.

What is Computational Thinking?

For this blog post I will be referring to Computational Thinking with Jeanette Wing’s definition of “a way of solving problems, designing systems, and understanding human behavior by drawing on the concepts fundamental to computer science.” (Barr, 2011)

There are 4 main elements of computational thinking:

Information from Google: Computational Thinking for Educators

Computational Thinking is a problem solving process that involves skills you are most likely already practicing every day. One example of using computational thinking I found on Bitesize was the process of playing a video game:

Why is Computational Thinking Important?

“Being able to turn a complex problem into one we can easily understand is a skill that is extremely useful.” (Bitesize, 2019) How we teach students how to deal with complex problems today will determine how they will face similar problems in their future. As shown with the video game example earlier in this post, computational thinking is a skill that can be practiced everyday and shows evident problem solving abilities.

In an article written by David Barr, he states that many skills are “supported” and “enhanced” by the computational thinking mindset. The skills he mentions are:

  • Confidence in dealing with complexity
  • Persistence in working with difficult problems
  • Tolerance for ambiguity
  • The ability to deal with open-ended problems
  • The ability to communicate and work with others to achieve a common goal or solution

How to Introduce Computational Thinking Elements into the Classroom?

Decomposition:

“Facing large, complex problems will often discourage and disengage the students who aren’t fully equipped to begin the deconstructing process. Decomposition develops the skill of breaking down complex problems into smaller and more manageable parts, thus making even the most complicated task or problem easier to understand and solve.”
(Valenzuela, 2018)

When introducing this element to your students, try to choose a simple task they do everyday such as brushing their teeth. (Bitesize, 2019) “This will help them focus more on their ability to analyze and synthesize familiar information.” (Valenzuela, 2018) To analyze the problem of how to brush their teeth, students would need to consider the following (Bitesize, 2019):

  • Which toothbrush to use
  • How long to brush for
  • How hard to press on our teeth
  • What toothpaste to use

The next step is to introduce them to a more complex and unfamiliar problem/scenario (Valenzuela, 2018) One example Bitesize recommends is solving a crime. Solving a crime would be the complex problem, but a police officer would first need to answer smaller questions to gain information about the crime. (Bitesize, 2019)

  • what crime was committed
  • when the crime was committed
  • where the crime was committed
  • what evidence there is
  • if there were any witnesses
  • if there have recently been any similar crimes

Pattern Recognition :

“Pattern recognition is a skill that involves mapping similarities and differences or patterns among small (decomposed) problems, and is essential for helping solve complex problems. Students who are able to recognize patterns can make predictions, work more efficiently and establish a strong foundation for designing algorithms.” (Valenzuela, 2018)

One way to introduce pattern recognition is to provide a slide with pictures of similar types of animals or foods. (Valenzuela, 2018) One example Bitesize provides is looking at a variety of different cats. “Next, have learners map and explain the similarities/differences or patterns.”(Valenzuela, 2018) Some similarities of the cats would be they all have eyes, nose, tail, fur, like to meow, eat fish, etc. (Bitesize, 2019) Some differences would be tails of different lengths, different colored eyes, different colored fur, etc. (Bitesize, 2019) “Then task students with either drawing or making a collage of cats using the patterns they identified to help them. ” (Valenzuela, 2018) “The primary goal here is to get them to understand that finding patterns helps simplify tasks because the same problem-solving techniques can be applied when the problems share patterns.” (Valenzuela, 2018)

Abstraction:

“Abstraction involves filtering out — or ignoring — unimportant details, which essentially makes a problem easier to understand and solve. This enables students to develop their models, equations, an image and/or simulations to represent only the important variables.” (Valenzuela, 2018)

To introduce abstraction to your students it is best to use it along with pattern recognition. (Valenzuela, 2018) The primary focus of abstraction is to separate the general patterns from the specific details. (Bitesize, 2019) Looking back on our cat example of pattern recognition, bitesize has provided the following example of abstraction:

“The abstraction process will help them create a general idea of what a problem is and how to solve it by removing all irrelevant details and patterns “(Valenzuela, 2018)

Algorithm design:

“Algorithm design is determining appropriate steps to take and organizing them into a series of instructions (a plan) for solving a problem or completing a task correctly. Algorithms are important because they take the knowledge derived from the previous three elements for execution.”(Valenzuela, 2018)

Valenzuela recommends keeping it simple when working with algorithms and suggests starting off with problems like tying their shoes, baking a cake, or making a sandwich. “Each algorithm must have a starting point, a finishing point and a set of well-defined instructions in between.”(Valenzuela, 2018)

Bitesize explains of two main ways to represent an algorithm: Pseudocode and flowcharts. Using Pseudocode is similar to “writing in a programming language” and might look something like this:

INPUT asks a question. OUTPUT prints a message on the screen. Image from Bitesize

Flowchart on the other hand is a diagram that represents a set of instructions using standard symbols such as these:

Image from Bitesize

An example of using a flowchart would be making a program to ask people their name and age.(Bitesize, 2019)

Image from Bitesize

Putting it all Together

During my research I found this video that showed a teacher who began teaching her classroom about computational thinking without any sort of digital devices. It was an introductory lesson and you can see within the video the different elements being taught throughout the activities.

Resources:

Barr, D., Harrison, J., & Conery, L. (2011). Computational thinking: A digital age skill for everyone. Learning & Leading with Technology, 38(6), 20-23.

BBC. (2019). Computational Thinking. Retrieved from https://www.bbc.com/bitesize/topics/z7tp34j

[Code.org]. (2016, March 29). Unplugged Lesson in Action – Computational Thinking. Retrieved from https://www.youtube.com/watch?v=b4a7Ty1TpKU

Google. (2019). What is Computational Thinking. Retrieved from https://computationalthinkingcourse.withgoogle.com/unit

Valenzuela, J. (2018, February 22). How to Develop Computational Thinkers. Retrieved from https://www.iste.org/explore/articleDetail?articleid=2137&category=Computational-Thinking&article=How+to+develop+computational+thinkers

Comments are closed.