I first came across the idea of Computational Thinking (CT) about a year ago when browsing edX courses. The idea intrigued me enough to seek further information and eventually propose a computational thinking program (with limited success) through my work at art and science museums. My understanding of CT has thus been influenced by my readings, but I hope to greatly develop these thoughts throughout the course.
If I were to try to put aside prior information I’ve come across, I would most likely think of CT as the skills that a computer programmer uses in order to provide instructions to a computer. As someone who worked in software for several years, I understand the way of thinking that emerges when working with code everyday. You start to create mental models of the data you start with, how that information can be stored and manipulated, and consider how to achieve the final result you are looking for with a minimum of errors. As programs grow larger, you begin to think about how to encapsulate the data in ways that is logical and easily understood, but still efficient enough for a fast runtime.
In the programs that I teach, I encourage students to use scientific thinking skills, such as careful observation and arguing based on evidence, as well as artistic skills, such as observation (again) and critiquing works. I also pull in communication skills, mathematical skills, social skills, and have begun to integrate CT skills as well. I believe we develop these skills for several reasons:
- Students can of course use the skills from a discipline if they enter that field.
- Those who chose a different path can still have an understanding of those fields and be able to better consider related issues, e.g. considering evidence for climate change.
- As emphasized here at Michigan State, many skills are transdisciplinary and are useful in many contexts, including everyday problem solving. In CT, problem decomposition is one example. When faced with a large problem in our daily lives, it’s helpful to think how to break it up into manageable parts in a similar fashion to breaking down instructions to a computer.
By realizing that CT is not limited to just computer science, we can find many ways that the skills can be integrated into the classroom. Integrating it into mathematics instruction is a natural connection, as the act of creating a computer game requires an understanding of mathematical operations, geometry, and functions. Since many students often don’t see real world applications of what they are learning, this is a powerful tool. Teaching sciences can also benefit, as many researchers are increasingly using computing power in fields such as computational biology, and students need to be introduced to this idea to show how authentic investigations take place.
Providing instructions to a computer is a communication skill, since not only does it need to be properly formatted and arranged for the computer to use, but often needs to be read by other people who want to understand what the program is trying to accomplish. This requires a flow and level of detail that has parallels with other types of writing, so can be used as a language arts lesson. I’ve also found connections in social studies, such as while discussing CT with a history teacher, we identified a use of data visualization when examining the correlation between infant mortality and median incomes by having students code their own graph that demonstrates the relationship.
I also see many applications in the arts. Sonic Pi software allows musical works to be created with Ruby, a programming language. By composing in this way, students can start to recognize the underlying mathematical patterns in their music, so this demonstrates the transdisciplinary nature of CT. Computers and related technology have also become an important medium for visual artists, as Google’s efforts with DevArt and MadeWithCode demonstrate. My department will be starting a program this fall for middle school students that will show how programmable microcontrollers such as the Arduino are used in art installations, so I will be integrating CT into the necessary skills to create works of art that use physical computing.
These thinking skills are needed to developed from a young age, since it’s readily apparent that CT skills are becoming more critical than ever. Unless living in areas where these technologies are not available or affordable, most people directly or indirectly use computers in their careers or at home. Those who know how to effectively use computers to aid them in their work or conduct their lives will have an advantage in the global workforce and participate more fully in an increasingly connected society.
I also want to encourage students to be creators, not just consumers. CT a first step in taking ownership of the digital realm. If there’s the need for a new program, create it, as many students are already doing. If something is not working the way you’d like, if it’s open source, modify it to your liking and share it with others. In working with teachers, many are intimidated by the learning “hump” in programming, so approaching it through CT can emphasize the needed thinking skills, not the particular syntax of a language. As I get back into programming, I’m struck with how much more accessible it is today than even ten years ago, so programming a computer may soon be like programming a VCR (with similar jokes about flashing screens).
We also risk becoming an increasingly technocratic society. As information is collected about all the aspects of our lives online, we can be manipulated in subtle and sometimes insidious ways. This could be as simple as ads that are personalized based on browser history. If people do not have a basic understanding of what the software is doing, they can be more susceptible to be nudged in unwanted directions when making decisions.
These are all worthy reasons to develop computational thinking skills, but the field is even broader than what I initially thought it to be. Once I’ve completed the readings of Paypert (who is also an important figure in the maker movement, another interest of mine), I’ll return to this topic and provide what I hope to be a better informed understanding.