Considering what we know about computational thinking, how much of this cognitive domain hangs on one's ability to think spatially? Is spatial thinking a hidden foundational property for developing strong computational thinking skills? If coding is the new literacy for 21st century thinking, educators must diversify their methodology of instruction. Mathematics must not be the only pathway to computational thinking, computer science, and coding. This book chapter opens up new insight into spatial reasoning, showing it as a new viable method to give students the computational thinking skills necessary to thrive in STEM fields. Finally, this chapter presents concepts found in shape grammars as a methodology used to teach students how to approach art and design computationally. With shape, grammars we find computational thinking at the center of creative activities.
TopIntroduction
The impact spatial thinking has on the development of computational thinking is undervalued. For spatial thinkers, the visual representation of ideas becomes lucrative in order to make them understand any complex system. This is foundational to learning how to program and write code. This chapter looks to extend the theory that spatial thinking has a strong impact on developing computational thinking skills. Previous work in teaching computational thinking and computer programming has largely been limited to mathematics and analytical thought. This chapter will show that spatial thinking has a positive impact on a person’s ability to think computationally, and demonstrate for the reader tangible examples for use in the classroom.
In using the term “computational thinking” readers should be reminded that the original term “computer” was used to describe a human worker. Computers were humans that carried out computational tasks well before machines took over the job. Today a lot has changed. Still, the human mind is more complex than a computer; at the same time, computers can carry out most computation methods much more effectively than our brains can. Consider the task of carrying out a looping function in our heads. If we wanted to perform some type of recursive calculation until a certain set of conditions were met, computers would (and do) carry out this type of scripted behavior routinely at impressive speeds. The task is not so straightforward for the human mind. Human minds get fatigued; they lose track of their thoughts, and sometimes, human minds lack the cognitive complexity to uphold recursive-thinking behaviors.
Computational thinking is not about competing with machines or making the human mind more machine-like. To do so would be a losing effort; computers carry out looping behaviors in the most efficient fashion. Computational thinking is about how humans can create mental thought patterns to solve problems and be creative. This thinking creates solutions through the use of variables, rules, and schemas. The approach requires the thinker to analyze the task and mentally create the system that will carry it out. We have evolved from being “computers” ourselves to being computational thinkers that use machines to do the heavy lifting. This approach is carried out through reflective thought and constant debugging until the optimal performance is met.
It has often been said that a person doesn’t really understand something until he teaches it to someone else. Actually, a person doesn’t really understand something until he can teach it to a computer, i.e., express it as an algorithm…The attempt to formalize things as algorithms leads to a much deeper understanding than if we simply try to understand things in the traditional way (Knuth, 1973, p. 709).
Teaching students to rely on computational thinking is similar to teaching students how to give instructions to a task-performing machine. We all can (and do) think computationally, but often give little attention to this way the brain functions. Thinking computationally is not limited to computer science or mathematics. We use computational thinking in almost every human activity. Strengthening this way of thinking will be necessary as students face complex problems too large for traditional methods of human trial and error, a method that “design thinking” promotes. Developing skills to discover solutions computationally is critical for solving the complex problems found in the world today.