Future Now
The IFTF Blog
Scratch and Computational Thinking
I've been thinking a lot about the growth in programming and computational skills that will be required in a world in which Everything is Programmable, and I was really surprised and heartened to see an article by Mitch Resnick et al. about Scratch in this month's Communications of the ACM.
To Resnick's group, the importance of Scratch is clear:
"As Scratchers program and share interactive projects, they learn important mathematical and computational concepts, as well as how to think creatively, reason systematically, and work collaboratively: all essential skills for the 21st century. Indeed, our primary goal is not to prepare people for careers as professional programmers but to nurture a new generation of creative, systematic thinkers comfortable using programming to express their ideas."
I think the authors have touched on an important feature of introductory programming environments - that introductory programming languages such as Scratch do not necessarily have to serve as bridges towards higher-level programming languages, and to careers in computer science.
As noted in the article, for many,
"Scratchers, who see programming as a medium for expression, not a path toward a career, Scratch is sufficient for their needs. With Scratch, they can continue to experiment with new forms of self-expression, producing a diverse range of projects while deepening their understanding of a core set of computational ideas. A little bit of programming goes a long way."
Not all students of Scratch use the language as a platform for further computer science education. However, the as computational thinking grows in importance as a critical skill set, environments like Scratch are invaluable precisely because of their ability to teach computational thinking without requiring a long-term commitment to programming. Indeed, it is important to recognize that there are limits to the amount of programming that the general public will be able to undertake.
I think that the dissemination of computational thinking is akin to the spread of digital cameras. The pervasive availability of digital cameras has not resulted in a world of professional photographers. Rather, as the threshold for experimenting with novel photography techniques and accessing high-end photography equipment and post-processing tools has grown, there has been a commensurate growth in literacy and awareness of the grammar and syntax of photography. Not every person who owns a digital camera understands how to change the camera’s ISO setting or shutter speed. However, as the threshold for capturing high quality imaged has lowered thanks to the automation of a camera’s settings, the overall quality of the average photograph has increased. Similarly, as the cost of taking a bad picture has plummeted (since the expense associated with throwing out of a roll of film filled with terrible photos is much higher than simply deleting the same number of photos on a digital camera), and the ability to see photos in real time has grown (with the availability of built-in displays), amateur photographers are more able to curate selections of relatively good photographs for their digital photo albums.
Similarly, as more of our world become programmable, there is a growing need for what the authors re-define as, "digital fluency," which is,
"not just the ability to chat, browse, and interact but also the ability to design, create, and invent with new media.... To do so, you need to learn some type of programming. The ability to program provides important benefits. For example, it greatly expands the range of what you can create (and how you can express yourself) with the computer. It also expands the range of what you can learn. In particular, programming supports "computational thinking," helping you learn important problem-solving and design strategies (such as modularization and iterative design) that carry over to nonprogramming domains. And since programming involves the creation of external representations of your problem-solving processes, programming provides you with opportunities to reflect on your own thinking, even to think about thinking itself."
I've championed the benefits of languages like Scratchfor a while now, and I am happy that Resnick and his collaborators have so eloquently framed the pressing need for computational thinking literacy, and am thankful that they have created such a strong environment in which students of all ages can begin to learn how to live in a programmable world.
If you are interested in the rise in importance about computational thinking, and the programmable world it will enable, be sure to check out the full text of the Scratch article, as well as ourpost about our Everything is Programmable Digital Stories.