The "learn to code" movement is picking up momentum as organizations like Code.org press for computer science to be taught in schools. But there's a big difference between just learning to code and learning actual computer science.
Terence Eden's blog on the matter puts it pretty clearly. When asked to sort a set of numbers, all sorts of discussion can arise: Which way to sort (high to low or low to high)? What are we going to do with the sorted numbers? What are the potential "gotchas" (e.g., if two numbers are the same)? Thinking through this is exploring computer science.
Learning to code, however, or just learning code (like "sort([7, 8, 1, 3, 2, 7, 6]);") might only teach syntax.
Many of today's free online programming sources throw you into the code immediately, so you can play around and learn by doing. Maybe the fundamentals of thinking logically and reasoning through a problem, however, would serve students better.
Code.org's "unplugged" computer science classes are an excellent example of this. You don't need a device or internet connection, yet the tutorials teach what computer science is all about. Similarly, I'm a big fan of Harvard's CS50 course (the free version is on edX), because it not only teaches programming languages, but, more importantly, how to think algorithmically and solve problems.
As someone who has taken CS50, taught both children and adults, and majored in literature, I agree with Eden when he says:
Learning to code is merely teaching people to spell.
Computer Science is about what makes a poem beautiful, why alliteration is alluring, how iambic pentameter unlocks the secrets of Shakespeare.
That is what I think we need to be teaching.
Read more of Melanie Pinola's Tech IT Out blog and follow the latest IT news at ITworld. Follow Melanie on Twitter at @melaniepinola. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.