This article was originally posted in EdSurge on February 25, 2018.
For better or worse, computing is pervasive, changing how and where people work, collaborate, communicate, shop, eat, travel, learn and quite simply, live. From the arts to sciences and politics, no field has been untouched.
The last decade has also seen the rise of disciplines generically described as “computational X,” where “X” stands for any one of a large range of fields from physics to journalism. Here’s what Google autocomplete shows when you type “computational.” (You can try it for yourself!)
But the big question is: Does current K-12 education equip every student with the requisite skills to become innovators and problem-solvers, or even informed citizens, to succeed in this world with pervasive computing?
Since the turn of this century, the “4C’s of 21st century” skills—critical thinking, creativity, collaboration and communication—have seen growing recognition as essential ingredients of school curricula. This shift has prompted an uptake in pedagogies and frameworks such as project-based learning, inquiry learning, and deeper learning across all levels of K-12 that emphasize higher order thinking over rote learning. I argue that we need computational thinking (CT) to be another core skill—or the “5th C” of 21st century skills—that is taught to all students.
There is growing recognition in the education systems around the globe that being able to problem-solve computationally—that is, to think logically and algorithmically, and use computational tools for creating artifacts including models and data visualizations—is rapidly becoming a prerequisite competency for all fields.
In 2012, the U.K. national curriculum began introducing computer science (CS) to all students. Singapore, as part of its “Smart Nation” initiative, has labeled developing CT as a “national capability.” Other countries, from Finland to South Korea, China to Australia and New Zealand, have launched large-scale efforts to introduce CT in schools, as either a part of new CS curricula or integrated into existing subjects. Here in the U.S., former President Barack Obama called on all K-12 students to be equipped with CT skills as part of an “Computer Science for All” initiative in 2016. Most emergent efforts in the US involving CT are currently part of CS curricula, although CT is increasingly seeing integration into STEM (especially science) learning.
But before diving into what CT in K-12 may look like, let’s be clear that these efforts do not mean that every child is expected to become a computer scientist. Just as basic literacy in math and science are considered essential for all children to understand how the world works, education must also address the development of knowledge and skills pertaining to computing, which is now so integrally intertwined with every profession.
“[Computational thinking] is the thinking skills that are employed in understanding a problem and formulating a solution before coding”
What Is Computational Thinking?
So, what exactly is computational thinking, and what is its relationship to CS and programming (coding)?
Simply put, CT is “thinking (or problem solving) like a computer scientist.” It is the thought processes involved in understanding a problem and expressing its solutions in such a way that a computer can potentially carry out the solution. CT is fundamentally about using analytic and algorithmic concepts and strategies most closely related to computer science to formulate, analyze and solve problems.
Like general thinking skills, CT is a bit like leadership—hard to define, but you know it when you see it. While many people associate it with concepts like programming and automation—which are all core parts of computer science—educators and researchers have found it easier to operationalize it for the purposes of teaching as well as curriculum and assessment design.
That means breaking down CT skills into its component parts, which include concepts like logic, algorithms, patterns, abstraction, generalization, evaluation, and automation. It also means approaches like “decomposing” problems into subproblems for ease in solving, creating computational artifacts (usually through coding); reusing solutions, testing and debugging; iterative refinement.
And yes, it also involves collaboration and creativity! And furthermore, it does not need to involve a computer.
If all that sounds a bit wonky, don’t worry. Like any skill, CT is best taught and learned in context, and embedded into class subjects. For example, analytical and logical thinking can be fostered through puzzles and word problems that require learners to engage in these crucial aspects of CT. As a matter of fact, problems involving such logical argumentation and logical thinking can be tackled as part of language arts, in addition to mathematics or computer science.
Coding is an excellent, fun, and useful context for developing computational thinking skills. But it is not the only way. Here are some ideas for fostering CT in subjects. Some are unplugged while others would benefit from involving coding. Teachers may recognize many of the non-programming activities as things they already do!
Language Arts
- Use logic to put together a jumbled story in correct sequence (younger grades)
- Identify patterns for different sentence types and rules for grammar
- Use first-order logic to arrive at conclusion based on given facts
- Construct social networks to analyze stories
- Program a story with alternate pathways (“Choose your own adventure”)
Mathematics
- Model functions in algebra through programs (compare them to functions in programs)
- Write an algorithm (or precise sequence of steps) on how to do matrix multiplication or how to solve a quadratic equation
- Use decomposition to solve word problems
- Express generalizations (as algebraic representations) by identifying patterns
Science
- Do a species classification with explicit “If-Then” logic (younger grades)
- Build a computational model of a physical phenomenon
- Instead of playing with or manipulating pre-developed software simulations of scientific phenomenon, create (program) computational models and simulations to study and interrogate phenomena
Social Science
- Study data and Identify patterns/trends in wars and other historical events
- Create visualizations of these patterns and trends
- Create a simulation to study relationships in social science phenomena such as women’s education and health
- Create models for social systems, or social networks, or social choice.
Teachers may recognize some of the non-programming activities as activities they already do! Indeed, many activities invoke the same thinking skills without being labeled CT. The idea is to be more conscious of explicitly making the CT connection and call such problems out as those with possible automated and computational solutions, or incorporating programming tools in such activities.
…let’s be clear that these efforts do not mean that every child is expected to become a computer scientist.
Common Misconceptions About Computational Thinking
One popular assumption about CT is that it is the same as coding. That’s not quite accurate. While coding is a popular vehicle to teach CT, computational thinking is much more than programming. It is the thinking skills that are employed in understanding a problem and formulating a solution before coding. (Also bear in mind coding need not necessarily be the end product of a CT process.)
Few would challenge that coding is a popular and effective vehicle for learning and applying (and hence teaching and assessing) CT in K-12. It’s important to remember, however, CT is the process of problem analysis and problem decomposition that precedes (in addition to happening during) coding and programming.
CT involves students asking and answering questions like: Can this problem be better, or more easily, solved by a human or a computer? Is there a pattern between this problem and similar problems we have tackled before? How can data best be organized to solve this problem? How can I create a general solution that works for a range of inputs? What is a step-by-step procedure I can articulate to solve this? What computational strategies might be employed? What are the limitations, trade-offs and constraints related to solving this problem?
Additionally, CT should also not be confused with “digital literacy,” which is often the “technology” subject in schools that focuses on how to use software, digital tools, and the internet. CT is not about how to use technology; rather, it lifts the hood on how digital solutions are designed using computational tools.
Preparing teachers to teach CT is a key task that schools need to take on as a first step. Teaching CT in the context of their disciplines for disciplinary subject teachers will have the added benefit of equipping them to make connections that they can then build on. Access to curricula and assessments, teacher professional development, best practices for teaching CT, and most importantly, becoming part of a community of educators are as important as ever to bring this vital 21st century competency to all children.
To learn more, you can also watch my talk, “Computational Thinking: the ‘5th C’ of 21st Century Skills.”
Shuchi Grover (@shuchig) is a former senior research scientist at SRI International’s Center for Technology in Learning and now consults on research projects related to STEM, computer science, assessment, learning analytics and computational thinking.