In a recent article, one of the originators of the whole Computational Thinking paradigm, Jeannette Wing wrote:
“… I knew that in the science and engineering disciplines, computation would be the third pillar of the scientific method, along with theory and experimentation.
After all, computers were already used for simulation of large, complex physical and natural systems. Sooner or later, scientists and engineers of all kinds would come to recognize the power of computational abstractions, such as algorithms, data types and state machines.
And today, with the advent of massive amounts of data, researchers in all disciplines—including the arts, humanities and social sciences—are discovering new knowledge using computational methods and tools…”
In looking back 10 years, Jeannette Wing also points out some important questions we really need to be asking and researching in terms of how we teach Computational Thinking, and when we introduce the various concepts and approaches so that we have a consistent, scaffolded and age/developmental stage appropriate syllabus.
“There also are interesting research questions that I would encourage computer scientists to pursue, working with the cognitive and learning sciences communities.
First, what computer science concepts should be taught when, and how?
Consider an analogy to mathematics. We teach numbers to 5-year-olds, algebra to 12-year-olds and calculus to 18-year-olds. We have somehow figured out the progression of concepts to teach in mathematics, where learning one new concept builds on understanding the previous concept, and where the progression reflects the progression of mathematical sophistication of a child as he or she matures.
What is that progression in computer science?
For example, when is it best to teach recursion?
Children learn to solve the Towers of Hanoi puzzle (for small n) and in history class we teach “divide and conquer” as a strategy for winning battles. But is the general concept better taught in high school? We teach long division to 9-year-olds in 4th grade, but we never utter the word “algorithm.”
And yet the way it is taught, long division is just an algorithm. Is teaching the general concept of an algorithm too soon for a 4th grader? More deeply, are there concepts in computing that are innate and do not need to be formally learned?
Second, we need to understand how best to use computing technology in the classroom.
Throwing computers in the classroom is not the most effective way to teach computer science concepts. How can we use technology to enhance the learning and reinforce the understanding of computer science concepts? How can we use technology to measure progress, learning outcomes and retention over time? How can we use technology to personalize the learning for individual learners, as each of us learn at a different pace and have different cognitive abilities?”
See her full article here: http://phys.org/news/2016-03-years.html