What is computational thinking, why is it important and how can it be taught?

Updated: Oct 14, 2018

The importance in including what we call computational thinking into grade school curriculum stems from the fact that people do not simply have to learn to do their jobs any more, they have to learn to use a computer to do their jobs. If an individual graduates high school without an intimate knowledge of how to Google search, they will immediately be at a disadvantage in the work force. This is true to the extent that it is no longer special if you put your "100+ words per minute" on your resume, it is expected that you can type quickly, it is expected that you are familiar with computers.


Using a search engine does not require computer science skills, neither does learning how to organize a problem into something that a computer can compute. Both skills are learn-able using resources other than a computer screen, and teachers have been teaching these for many years without realizing it. We typically call it "problem solving".


Problem solving, the term used to describe the process we use to take a problem, turn it into a series of steps, and then compute the solution. Problem solving, the process we use to describe how to go about asking the right question, and seeking the right information to answer it.


Science and computational thinking were intertwined from the start. The first computers were used in laboratories to solve questions about physics and weather. The steps in the scientific method were a way of organizing a problem into steps that could eventually be computed. Hypothesis, collect data, compute data, conclude based upon data are the steps taken when solving any problem in science. We ask the right question, we research the answer or set up machines to collect data, we put that data into a computer and we use what the computer tells us to make a conclusion.


To introduce computational thinking in a science classroom, we must teach how data must be organized into a computer for the computer to be able to return the data we need. Huge databases are only a little part of the equation, the data must be analysed, and someone must design the program to analyse the data. If we can teach "how to design a problem in a way that is consumable by computers" that would be what computational thinking is.


What makes all of this really easy is that computers were designed by people, for people, so people already naturally design problems in the way that a computer must consume them because computers are meant to be used by us, or creatures that think like us. To teach computational thinking, we simply have to teach problem solving, which we already should have been teaching.


As a nation, we need to move away from static answers that can be memorized, and closer to "how to design answers". This can be done by teaching various methods that can always be assembled together like blocks in order to solve many different problems. At the very least, students should be able to use other people's programs and be able to work out how the program works to solve their specific problem. If the students understand how the program works, when something goes wrong they can create a work-around for themselves.


For example, a word processor is able to format the words we type by treating them like shapes rather than letters. I don't have to be able to program a word processor to understand how it works, and students don't have to learn how to program in order to understand computational thinking, they only need to know what a word processor does and what can be used in its place should it fail. If a student can learn this sort of problem solving, they will be okay in the technological revolution.


The lesson plans I have developed cover a few key problems in the scientific world which have smaller components to them that can be learned and re-used, such as algorithm design, using a table of values instead of computing answers, and asking the right questions.


Further reading:

Weintrop, David, et al. “Defining Computational Thinking for Mathematics and Science Classrooms.” SpringerLink, Springer Netherlands, 8 Oct. 2015, link.springer.com/article/10.1007/s10956-015-9581-5.


0 views

© 2018 by the CodeNC Fellowship.  

Proudly supported by grants from the College of Computing and Informatics at UNC Charlotte.

Join us if you believe that every student should have a fundamental right to computer science literacy. 

Join us if you believe that every student should have a fundamental right to computer science literacy.