Drag-and-Drop "CS" Tutorials: the Emperor's New Code?
theodp writes: Teaching kids computer science is a great movement," writes HS senior David Yue, "however, to overly dilute the magnitude of the difficulty in regards to the subject area of coding and to create the illusion of mastering a 'superpower' (Code.org) is a huge mistake. There are many videos and articles on the Internet these days that have demonstrated positive support towards computer science education. Below these articles, one can find many comments, left mostly by parents and supporters. These people usually express how proud they are that their children have an opportunity to learn computer science or how proud they are that computer science is being integrated at a more substantial level into the education system." But Drag and Drop Doesn't = Coding, argues Yue. "Parents and teachers today who aren't technical need to be aware that the drag and drop code or the candy-coated learning process does not effectively teach children programming but eventually causes a huge amount of shock once they are immersed in real code." Yue's Emperor's-New-Code warning comes days before President Obama — a graduate of Code.org's drag-and-drop Disney Princess coding tutorial — asks Congress for $4-billion-and-change in the upcoming budget to fund his "Computer Science for All" K-12 initiative.
It shouldn't matter how the code itself is created. You can code the same thing in any number of languages in any number of code types. If the kids don't know what loops are, what case statements are etc, then they'll still suck at "coding" even if you are dumping a bunch of text based functions on their head.
You are correct. Not only that, the learning objective with drag and drop might be colloquially called "coding" but in reality it might be to teach the logic of problem solving and the logic of coding using graphics, yet still having something that either works or does not work at the end of the project. Thinking logically before putting fingers to keyboard is a skill that needs to be learned - seeing the working project at the end is motivation.
Lego Mindstorms is an example of this. Drag and drop the objects, have the robot do something and then troubleshoot why it did not work (both hardware and software). Then build on success. As you become more proficient, you can solve some pretty complex problems. When the problems become too complex, you can move into a variety of actual languages to either solve a previously unsolvable problem or solve the problem in a more efficient manner.