Read the whole amazing post by Cathy Davidson here….
I have a basic literacy to add to the last century’s 3 R’s of “reading, ‘riting, ‘rithmetic.” Let’s add a 4th R: “algoRithm.” (Yes, I know that’s a fudge, but writing and arithmetic aren’t perfect either.)
The Case for Learning to Code
Let’s start emphasizing our 4th R in kindergarten, even preschool, since, like the other literacies, algorithmic thinking is foundational. Wikipedia defines “algorithm” as “a set of rules that precisely defines a sequence of operations.” It is a step-by-step approach to calculation. You use algorithms to program a computer or for Webcraft. It is almost the opposite of bubble-thinking. It provides an alternative to fact-based mastery and proposes, instead, iterative, process-oriented, constructive, innovative thinking.
In the most general sense, algorithms can be child’s play: a five-year-old customizing his Pokemon characters and game is already engaged in algorithmic thinking. Free, open-source programming languages like Scratch, developed by the MIT Media Lab, allow kids to learn introductory computational skills that lead to interactive animations, narratives, games, music, and art that they can post to the Web. They develop both design and problem-solving skills, alone or within a world-wide community. Hackasaurus, developed by Mozilla, allows youth to remix their favorite Web pages, and simultaneously develops “skills, attitudes, and ethics that help youth thrive in a remixable digital world.” Again, this is almost opposite of the educational values standardized by bubble testing.
What is marvelous about algorithmic thinking and Webmaking is that you can actually see abstract thinking transformed into your own customized multimedia stories on the Web, offered to a community, and therefore contributing to the Web. Algorithmic thinking is less about “learning code” than “learning to code.” Code is never finished, it is always in process, something you build on and, in many situations, that you build together with others. Answers aren’t simply “right” guesses among pre-determined choices, but puzzles to be worked over, improved, and adapted for the next situation, the next iteration. You look at examples, you try your own, you run the program, you see if it works. If it doesn’t, you see where you started to go wrong, return to that place, and try something else. The better you become, the more possibilities open for you. Your motivation for learning isn’t to score in the 99th percentile on your end-of-grade exam but to have more complex, surprising, or beautiful results that you can work on and share with your friends. Isn’t that what all learning should be?
There are other intellectual and social benefits from this 4th R. The 20th century’s division into “two cultures”—with the human, social and artistic disciplines on one side and the scientific and technological on the other—makes no sense in the world of Webcraft. In fact, algorithmic thinking is so much about process, invention, and customizing that, in some circles, there is still a healthy debate about whether writing code is an art form, a craft, or engineering. Is it thinking or doing? Is it writing or making? Is it theory or practice? The answer is “all of the above.” And that is what makes it such a radical alternative to bubble thinking where knowledge—subject matter, questions, answers—are discreet and disconnected one from the other.
