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.
The Hour of Code isn't supposed to actually teach Javascript or other "real" languages. Instead, it's designed to give students an idea of how programming works in general and maybe pique the interest of students who might not realize that they'd enjoy programming. If the CS-for-all movement is to happen, then using a "dumbed-down" language with easy rewards is a good decision: most students would be bored to tears and turned off to programming if their program wasn't working because they mistyped a word or forgot a semicolon somewhere. A drag-drop interface is also great because students can easily experiment without having to worry about making syntax mistakes; instead, they focus on the big picture of how to make the robot do what it is they want it to do. After all, nothing is stopping schools from offering "real" programming classes to interested students or bright students like the author himself from learning how to code independently.
So many assertions. So little evidence. Maybe drag and drop helps. Maybe it's worthless. If you're not referencing a study, hush. The plural of "anecdote" is not "evidence".
Parents just want to make sure their children "get into computers" because that is where the money is (working in IT compared to working at McDonalds). Computers are programmed, so therefore their children must learn "computer programming".
With high school education with BASIC, the teachers would start from scratch, introduce variables, arrays, strings, input and output, arithmetic, for/while loops, conditional logic, and each of those topics would be covered in a week. At the end of the course, you would be lucky to have got onto drawing graphs in ASCII. At the same time, the business community would make sure that you got to learn about mainframes, batch processing, punched card, magnetic tape and databases.
At home, the programmable toys in the past were BigTrak\and some robots you could build with technical Lego. With computer software, there was Logo and printer/plotters. The first thing anyone did was to run the supplied tutorials or copy some code in from the instruction book. Then they would combine bits from the different tutorials to make their own programs. Eventually, they could write an entire program from scratch once they knew what all the different commands would do. Local newsagents would have racks of computer magazines with guides on sprite programming, MIDI sound programming, generating mazes, player-missile graphics, how to connect sensors, weather stations and just about anything else.
It would make more sense to give students a catalog of home learning kits and let them order a couple for free. Anything taught in schools at a regimented pace is going to bore some students, and others still won't be able to keep up.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
Well, the problem is that a lot of politicians don't really understand what programming is all about, and they truly believe that programming is a simple, rudimentary skill. So simple that anyone can do it. All you need is couple of hours of online education, and hell, you can write a telecommunication billing system from scratch. The Obamacare website was the best example of this: the politicians and civil servants did not understand enough to manage the contractors.
Too many of these folks think that programming is like changing a spark plug in your car. All you need is a wrench, your "Tool", and your "Education", clockwise is "in" and counter-clockwise is "out". Presto, you are now a fully qualified Ferrari mechanic!
Hey, I have a Black & Decker drill, and a can of furniture spackle. I can now work as a dentist!
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
I don't think that CS should be introduced until 7th grade. But other Slashdot users have mentioned that this drag and drop stuff is useful for the K-6 students. So hey, maybe it does help. Perhaps the drag and drop teaches some abstract logic skills that will help the students become a better thinker instead of a below average code monkey.
Empirically, things like Scratch are great learning tools. I taught my kids with it and then they went on to writing code. But they had all the mechanics worked out along with understanding of things like event dispatch, arrays, conditionals, string parsing, algorithms, the X-Y coordinate systems of the window. SO saying this is just sugar coated fruitloops is nuts.
At the other end of the spectrum with things like Labview many scientists can go a whole career without having to code. it's a fantastic language once you accept it's constraints. Extremely good for both rapid prototyping and embedded instruments. It is the only language I would trust to edit in the middle of an experiment. You won't be writing a word processor or accounting system in it but it's not meant for that. But it's not sugar coated in what is meant for. The results are not a Toy.
Some drink at the fountain of knowledge. Others just gargle.
More importantly, why isn't it learning to code? Who said that text is how instructions have to be given on how to generate compiled code? And anyway, typing is not really coding. Only putting holes in punch cards is real coding. It's even more effective and has more reuse than text. You can use the same card or reorder cards around if you want to create a new algorithm. Oh, but, the historical coincidence of the widespread typewriters and emergence of electronic controls existing at the same time is what "programming" must be? Well, I learned to program from comics which had lessons and posed challenges. I wrote programs by hand on paper long before ever seeing a computer. Was that "coding"? Because most people around me thought that not writing a program out on paper and checking it before inputting it into a computer created bad habits in programmers. It made them too lazy and impulsive. It produced programs which had too many bugs. Sounds familiar?
Any guest worker system is indistinguishable from indentured servitude.