Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming Education

Drag-and-Drop "CS" Tutorials: the Emperor's New Code? 158

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.
This discussion has been archived. No new comments can be posted.

Drag-and-Drop "CS" Tutorials: the Emperor's New Code?

Comments Filter:
  • by Anonymous Coward on Sunday February 07, 2016 @08:32AM (#51456475)

    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.

    • by mh1997 ( 1065630 ) on Sunday February 07, 2016 @09:00AM (#51456529)

      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.

      • 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.

        Any thoughts on Labview? My only experience for using it to build a simple robot (albeit with lots of levels of nested structures) was that I would have spent a lot less time learning Arduino's cut down version of C to do the same thing.

        • Labview is a horrible language. Not only is it proprietary, but if you try to do anything complex your programs quickly start looking like a horrible spaghetti mess.

          • Labview is a horrible language. Not only is it proprietary, but if you try to do anything complex your programs quickly start looking like a horrible spaghetti mess.

            This.
            When you think you need labview, it's time to use C, or if you're lucky, a nice language might be available.

            • by KGIII ( 973947 )

              As a guy who's working on a robot, with C, you might be on to something. His name is Rex. He's meant to come when he's called. He's meant to bring me a remote. No, it's not a serious project, I'm just trying to avoid wet-ware bit rot as my age is increasing at a seemingly faster rate than normal.

              Oh, he has a sister. Her name is T but she's not a robot and she's not meant to move. She's ready. She's able to play media like she's supposed to. She's smart. Rex, her brother, is a lazy bastard. He actually came

          • And yet Labview is used in mission critical manufacturing areas. The code is unmaintainable but inevitably the original author leaves and the company is stuck with something no one understands. So you have manufacturing groups that seem to panic whenever someone suggests modifications.

          • Of course programmers are going to say LabView is a horrible language because it's a GRAPHICAL programming environment. Its entire purpose for being is to allow scientists and engineers to quickly piece together a control environment for scientific/SCADA type equipment without knowing how to code. All scientists/engineers should be able to do logic and flow charts and as the OP pointed out that's where these "languages" shine. If you need more robust code LabView works with C libraries [ni.com] just fine. I wouldn't
      • 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

        I use Simulink for a living [dadatho.me]. This is exactly what it it is, the buzz word is "Model Based Control [wikipedia.org]". It doesn't mean I spend any less time trying to figure out the logic of how things work. Our whiteboards at work are covered with sketched block diagrams on how we need to implement a strategy.

        Almost every company I know of has moved on past C for their engineers and just has them design and implement algorithms in Simulink. It's why the are a lot of positions open for Simulink across the country [indeed.com].

        It writes b

        • by plopez ( 54068 )

          So C is to the language you use as assembly id to a compiled language. That would make sense. Esp. since C has been referred to as a high level assembly language.

          • Yep. It all comes down to trust of a toolchain.

            I trust Simulink makes my blocks into the appropriate C (& C++) just like some people here trust that their assembler converts their C into the appropriate byte language.

            If you can't trust your tools you'll never get work done. And it's not that I don't enjoy building hammers, or drills or table saws it's that at the end of the day my job isn't to build the hammers or drills or table saws, it's to build something using them.

    • by umghhh ( 965931 )
      That is only partially true. From what I see there are different types of coding these days than 30ya. Back then you had to code all yourself or use few libraries that were available. Today you still have complex infrastructure projects requiring proper engineering skills (which reach well beyond coding) on one side of he scale and bits and pieces that require just gluing few things and a nice user experience sort of thing. This is not to say one is better than the other but coding as it were (i.e. the comp
      • > on one side of he scale and bits and pieces that require just gluing

        Some gluing together projects are useful. People did some good stuff with HyperCard and shell scripts. Shell scripts are a great way to glue pieces together.

        What has changed is that now almost all software is on the internet, where they are attacked 1,000 times per day by script kiddies with tools that automatically looking for gluey buts. So shell scripts are now called "remote code execution vulnerabilities ". This is a real problem

        • In many fields, including electronics, hardware, pyro, etc there are two classifications of materials and technicians: standard and "life safety".

          Which is why we use tools to check our models [mathworks.com] for safety certifications. Including difficult ones like DO-178B "Software Considerations in Airborne Systems and Equipment Certification" [mathworks.com]

          • If you work on that type of project, I'd be very interested in knowing about the work environment you've encountered. After 20 years programming, while constantly learning and improving my skills, I've grown wearisome of poor quality, of "duct tape and bailing wire" projects, and of people who just don't know what they're doing.

            I think I might much more enjoy working in an environment in which things are done RIGHT, where there is no duct tape and bailing wire. On the other hand, a very much like getting th

            • Posted up in the thread: http://dadatho.me/pages/what-i... [dadatho.me]

              We do it all in Simulink. If you have experience with C you'd probably be best making device drivers for Simulink.

              Not that we don't have people that don't know what they're doing in Simulink. I've seen some terrible 'coding', but Matlab helps to catch most of the errors, even if people get lazy with datatypes.

              • I read your link and now I know exactly what you did.

                > gallery_root="../galleries/What I Did/"

                You're the guy who put spaces in file names in *nix, in order to make sure that all commands using "for each", *, or find -exec would get messed up. Thanks for that.

                Kidding, of course. Actually your post was interesting.

    • by goombah99 ( 560566 ) on Sunday February 07, 2016 @10:53AM (#51456931)

      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.

    • Yep, the hard part is usually not learning the few rules of the language itself (though that is added pain) but learning to design, in complete detail, every step needed for the program, without missing any.
    • It's not quite that simple. I've been teaching math for years and I see this happen all the time with classes that use products like MyMathLab. Students use all of the "help" tools, get the right result and think they know what they're doing. In reality, they didn't solve the problem - the computer did. Many of the students who do this stumble badly when they're presented with a problem that they have to solve without any support. That sounds like what's happening here. There's a very big cliff betwee
      • In reality, they didn't solve the problem - the computer did.

        I saw this quite a bit during the early days of the web. Many so called "web designers" knew how to create web pages in Dreamweaver, Frontpage or Word. But occasionally something broke, they couldn't fix it and asked me to take a look. Because I learned HTML coding with a text editor (still my preferred tool 20+ years later), I was able to plow through the bloated spaghetti code that these programs produced and fix the offending line of code.

    • There are no case statements in Python. So I guess no programs are written in Python.
    • The drag-n-drop languages teach loops and if-then-else trees pretty easily- case statements are a bit harder, but I know of one drag-n-drop language that has them as a feature.

      What they don't teach is how do debug 5 levels of CSS on a website. These kids are going to hate coding when they get down to the actual work.

  • everybody would do it. Like engineering, like medicine, like pro football, like many other things.
    • If it was easy everybody would do it. Like engineering, like medicine, like pro football, like many other things.

      It CAN be easy.Just click the EASY button. Let's begin.

      Now click on the Think button. Tomorrow we're going to show you how to click and hold an actual Idea and drag 'n drop it into the Brain.

      Then we'll introduce the Wizard Wizard. Ever went looking for a Wizard only to find that what you're trying to do has never been done? Wizard Wizard to the rescue! There's even a Wizard Wizard Wizard that can help you decide what needs to be done, and a W4 that does this automatically. It is advised to run W4 and up in

    • Re:If it was easy (Score:5, Interesting)

      by PolygamousRanchKid ( 1290638 ) on Sunday February 07, 2016 @10:13AM (#51456753)

      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!

    • Just like typing? My wife works with doctors that were told "Oh, you don't need to learn to keyboard, you'll have someone to do that for you. You're going to be a doctor".

      Programming is becoming the same way. IBM's Watson is going to displace a lot of doctors. It just means the next generation of doctors is going to have to know how to make and use the tools given to them.

    • Like engineering, like medicine, like pro football, like many other things.

      My nephew wanted to be a pro baseball player. He played through grade school, high school and college. A scout sent him off to a summer baseball camp in Texas. After six weeks and 500 games later, he made the top 50 before being cut from the competition. Now he's doing PR work because he took an easy major in college. Meanwhile, a half-dozen of his friends are playing pro baseball.

  • by Anonymous Coward

    The real alternative is to get the stupid idea that "erryone" should "learn 2 code lololol" out of our miscreant-in-chief's head. Alas, that isn't going to happen - it's now at make-your-unborn-baby-listen-to-classical-music level of cultural delusion.

    But other than that, I don't see an actual alternative. I still cringe at the clueless math teacher whom programming class was foisted upon in my high school. $4B will barely cover equipment, it won't cover pulling people who actually know their business in

    • by mikael ( 484 ) on Sunday February 07, 2016 @09:41AM (#51456647)

      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.

    • by godrik ( 1287354 )

      I've seen college graduates who don't even know who Knuth is.

      To be frank, no one really cares who Knuth is. Knuth infused computer science to the point where many classic algorithms are Knuth's and we just don't mention it. The shuffle algorithm is a good example of that, it is so classic that it seems to have existed since the dawn of time. The same effect happens with string search, most people will refer it as "string search", or "linear string search". Only people interested in the problem call it KMP; almost never I hear it called Knuth-Morris-Pratt.

      Knuth is a l

    • by plopez ( 54068 )

      I see this as a replay of the "no child left behind (untested)" fiasco.

  • One of the reasons that I really dislike drag-and-drop methods of coding and schematic capture for circuits is that you end up locked in to one tool’s peculiar method of entry. If you decide you don’t like that editor, you’re stuck with it for old designs because you can’t always export and import proprietary formats. When writing code, I’m using a portable language, and I have my choice of compilers on different platforms.

    PCB layout is one of those corner cases that’s

  • Mr. Yue should take comfort in knowing that all of those seven-year-old children claiming they know how to "code" can't compete with him in the job market yet due to child labor laws.
  • I disagree (Score:5, Interesting)

    by MiKM ( 752717 ) on Sunday February 07, 2016 @09:00AM (#51456531)
    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.
    • Re:I disagree (Score:4, Insightful)

      by Hognoxious ( 631665 ) on Sunday February 07, 2016 @09:17AM (#51456569) Homepage Journal

      Of course you're right. The problem is that a lot of these courses are hyped to a laughable extent - equipping tomorrow's workforce with the marketable skills to compete in the information economy, gubbins gubbins gubbins....

      • by asylumx ( 881307 )

        Of course you're right. The problem is that a lot of these courses are hyped to a laughable extent...

        Yes, true, but EVERYTHING in today's world is hyped to a laughable extent.

      • by AmiMoJo ( 196126 )

        Some of that is just being enthusiastic for the kids. I'm no expert on child psychology, but enthusiasm seems to be the norm for this sort of thing.

    • So then they give the kids a gui that has nothing to do with actual coding..... and that is supposed to help them determine whether they like coding or not?
      • by lgw ( 121541 )

        I'd say so. Coding is design + typing + debugging. This removes the typing (and the need to learn syntax and wrestle with silly syntax errors) and much of the debugging.

        If you like coding with most of the tedious annoying bits removed, you might like actual coding. Or at least for "top down" people, it's a good approach.

        • The problem is that programming is really 90% tedious bits. Pipe dream was a great game, but I doubt it turned many people into plumbers.
          • by lgw ( 121541 )

            The "90% tedious bits" aren't the hard part of the job. Most people can do them. Most people simply can't organize their thoughts in a logical manner and think through all the cases. Plus, lead with the fun bit. :)

    • by Anonymous Coward

      The problem with code.org is that it has managers and politicians believe they have found the super bullet to get everybody into jobs. It is not.

  • by Anonymous Coward on Sunday February 07, 2016 @09:15AM (#51456559)

    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".

  • I program by writing in text files too, but that's just important for interoperability with other tools, it's not the definition of coding. Everyone knows that our CPUs don't execute ASCII, right? If it's Turing-complete, then it can be interpreted or compiled (i.e. "decoded") to do anything you want to execute.

    • by Anonymous Coward

      I tend to agree with him. I haven't done a lot of it, but I've done a few of the code.org examples and they're extremely limited. I've done a fair bit with some other visual programming languages in the form of SDL, they're extremely limited and clunky. The problem with these visual languages is, coding isn't inherently a physical endeavor, it's a theoretical one. There's a reason it's considered an offshoot of mathematics. Yes, you can use visual aids for very simple examples, but quickly trying to ma

    • And these Scratch-like languages aren't too different from visual scripting systems used in game engines such as Unreal.

      https://www.google.com/search?... [google.com]
    • Agreed. The hard/interesting part of coding is the logical design, and it won't get any easier if you replace words like "if" and "then" by visual elements that stand for them. On the contrary, it'll be harder to understand larger-scale logic if the syntax is overly verbose.
    • Everyone knows that our CPUs don't execute ASCII, right?

      To be pedantic, they do execute some [wikipedia.org] ASCII files.

  • by Anonymous Coward

    At some point there was a Lego Mindstorm competition for school children aged around 14 and I was hired to assist them on the final day. Lego developed a drag n drop way of programming, which is supposed to be usable for children. Mind you, Lego actually recommends using 3rd party "real" programming tools as they are better if you can figure out how to use them. However this competition was designed for the GUI approach.

    It was a complete disaster. Despite having worked on this project for a month, they were

  • Coding today has become a morass of files sprayed all over the landscape, taking all the fun of logic and problem solving away from "coding". To wit, when I first took up coding for a hobby, it was BASIC on an Atari interpreter. Easy, fast, fun. Then I went on to C with the Borland compiler for DOS based programs. Still relatively easy, but most of all, it was still fun to sit there, solve problems and make things happen with code. Fast forward to today and Visual Studio, QT, NetBeans, etc., spew out suc
    • by Anonymous Coward

      You should try Python. The fun comes right back.

      Mind you, the number of files is largely is function of project size and the need to manage complexity. In verbose languages, especially Java, you end up having one file for almost every entity in the system, so even the smallest projects end up being a big hairy ball of nothingness.

      Again, try Python. It will make you smile all day long.

    • Not really sure how you find C++ more verbose than C. Also, C++ verbose? Are you writing in some ancient dialect with massive deep hierarchies or something?

  • by pugugly ( 152978 ) on Sunday February 07, 2016 @10:18AM (#51456789)

    Coding is Easy.

    Coding in the workforce, with a company guide that specifies language X in coding environ Y, remembering to put in remarks for the guy that has to maintain it that are both useful and not in iambic pentameter, with an object-oriented styleguide for a functional program that was determined by a middle manager who last coded in Basic and thinks "Goto" is bad without ever having understood why (and occasionally why not) and once suggested simply using an un-returned function instead ... is hard.

    But yeah - Coding is easy.

    Pug

  • by Anonymous Coward

    Piquing curiosity of kids and developing more well rounded and computer literate populace seems like a good idea. But there's also a risk of a bigger society-wide Dunning-Kruger [wikipedia.org] effect, where we have a society people who think they are much more tech literate than they really are.

    Whether that balances out for the better or the worse, I don't know. But I'd rather we didn't focus so much on coding, as the tech skills one needs to survive in the modern world. Understanding public key cryptography. Good sec

  • You are all just coding wrong, obviously.
  • by RogueWarrior65 ( 678876 ) on Sunday February 07, 2016 @10:50AM (#51456917)

    Sure, I can go take a class on a foreign language but that doesn't mean I can write great literature in it. You'll know the mechanics of the language but it's a different matter to be able to express yourself so that a native speaker understands you. It's the difference between a button that says "reset" and one that says "overcharged"

  • Depends on the grade (Score:4, Interesting)

    by jader3rd ( 2222716 ) on Sunday February 07, 2016 @10:51AM (#51456919)
    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.
  • And I say it isn't programming if you're not throwing toggle switches to set the bits.

    BTW, I once had a job running a CDC Cyber 170/750 whose boot-up instructions were actually set that way.

  • I see this big push for CS literacy in schools, and it puzzles me why we're talking about spending so much money to teach a skill that most kids aren't going to use in their everyday lives while we're dealing with stuff like the Common Core silliness and teachers/parents are having to pay for basic classroom supplies out of their own pocket. They have money to buy tablets/laptops for kids (and the associated IT support costs), but they don't seem to have the money to make sure that teachers have enough whi
    • I agree with you that we need to do a better job allocating resources to classrooms but I think that's a different problem. At my own highschool, they poured money into remodeling our school while leaving us with woefully outdated health textbooks that were 30 years old.

      However, I think you're not seeing the big picture. IT is taking over the American economy and possibly the world economy. I'm meeting many people who have gotten wise to this and are learning basic coding skills to graduate from a minimum w

    • it puzzles me why we're talking about spending so much money to teach a skill that most kids aren't going to use in their everyday lives

      1. It's becoming a somewhat regular part of the lives of more and more people.

      IMO. time spent teaching to code would be better spent on the 3 Rs

      2. Once you've mastered aRithmetic, then what? Should students keep doing speed timed multiplication tests in 7-12th grade? Lots of students struggle with math above arithmetic. They could see why arithmetic is useful, but anything above that? Not so much. So by having the students apply math concepts to accomplish something (ie programming), they'll improve in High School level maths.

      • Lots of students struggle with math above arithmetic. They could see why arithmetic is useful, but anything above that? Not so much. So by having the students apply math concepts to accomplish something (ie programming), they'll improve in High School level maths.

        Algebra is pretty much necessary, as is a basic understanding of probability/statistics. Trigonometry can be quite helpful as well. Calculus is handy to know at times, but most people get along just fine without it. Learning how to do stuff l
        • What math concepts are they going to learn in a dumbed-down high school CS class that will help them enough to justify that kind of expense?

          Variables and functions. See http://xkcd.com/1050/ [xkcd.com]. It's the one where an ex-student is proud of the fact that in 20 years no one has asked her to solve for 'x'. This comic wouldn't exist if people were actually seeing how they probably actually do use some basic algebra, but they just don't know it. And at least if they saw it very blatantly being used in programming, they could at least understand why it's part of their school curriculum.

  • by Anonymous Coward

    What are they going to teach them next? Algebraic topology? Categories? Ramsey theory? Computer Science is a branch of advanced mathematics; with the exception of the exceptional freak, kids do not have the maturity and background to learn it. Learning to code (especially if consists of graphical interfaces or Mickey Mouse languages) is NOT (I repeat NOT) computer science. Learning to use any of the so-called productivity tools (which are more tools that can be used to pretend that work is being done) is al

  • by shess ( 31691 ) on Sunday February 07, 2016 @11:20AM (#51457037) Homepage

    When I was in school, a typing/keyboarding class was a pre-req for the computer classes. It was not at all necessary, I did not _actually_ learn to touch-type until a decade later, and at that point I did it because I decided it was stupid to be looking at the keyboard when I should be looking at the code. But, you know, thank goodness I got to waste that semester on something which was basically useless and which was trivial to learn once I decided I needed it.

    Later, the "computer" classes in school had a strong dollop of learning how to use a word processor of spreadsheet. Which may be valuable vocational skills, but they were like a "Math for Living" class when the people forcing everyone to take them thought they were getting "Algebra II".

    Even later, it was how to create a webpage. Because HTML is certainly the future and we'll never have WYSIWYG tools to do the heavy lifting to let consumers build webpages easily.

    And that's in primary and secondary levels. You can get college-level "Computer Science" degrees having only demonstrated the ability to wire other people's code together. Again, a valuable vocational skill, but _not_ computer science.

    I'll give you two opinions about why this happens. First, being able to write code is no more nor less useful than being able to fix plumbing - when it's useful, it's wicked useful, but if that's not your job, you'll probably never develop enough expertise to solve problems you actually see, as opposed to hypothetical classroom problems. Second, the instructors at the primary and secondary level generally don't themselves have enough understanding of the topic to be able to successfully teach it. Which isn't a bad thing, because as I said, it's not a worthwhile thing for most people to develop an understanding of the topic.

    Of course, in the end this isn't really much different from many other topics taught in schools. Most people don't ever need to analyze a work of fiction, or calculate the remaining angle in a diagram from the given angles. A big difference is that geometry in 2050 is going to be very similar to geometry in 1750, so you can productively teach the skill based on hundreds of years of doing it, and insofar as it is useful at all, it will continue to be useful. Most of the vocational computer-related stuff they teach today didn't exist 10 or 20 years ago, and much of it won't be useful in 10 or 20 years. The decades-old stuff which is still useful to me as a professional is the esoteric knowledge, not the applied knowledge.

  • It's hopeless really. The media goes Everyone Can Code! Somebody goes "I wanna be a programmer!" So we get a nifty Disney princess turtle.

    Then the first time somebody comes along and says, "I need something that will let me schedule at 10 hospital networks that have 20 hospitals each with 100 different departments that need on call for 4-5 shifts each" it ends in tears with everybody accusing everybody else of being sexist and racist.

  • For most education topics, we're taught in layers, starting with the simplest and usually most abstract and slowly work inward. We all choose where we want to stop learning the subject once we get to HS/College. The most apparent places where this occurs is in Math and Physics for me. In physics, I first learned gravity pulled things down. Then I learned it generally pulled all things down at equal speeds. Then I learned it was a universal law of attraction between objects. Then I learned there's an equatio

    • by Jiro ( 131519 )

      It is true that we do this for other subvjects, and it's genuinely useful as a first step. The problem is that the people promoting it don't understand this and don't treat it like it is.

      Nobody says that teaching kids that gravity pulls things down means "kids know how to do physics", makes parents proud their kids are "learning physics", helps get more girls into physics, or increases America's competitiveness in the area of physics. We have some idea that learning that gravity pulls things down is only

  • The problem (or at least one of them) is that there is a good idea buried under a bad idea.

    Trying to make every child into a professional programmer, on the assumption that programming will in the future be the equivalent of unskilled labour today, is just asking for trouble. In 10 or 20 years people will be very angry at having had so many resources - not to mention the children's opportunity costs - sunk into something that will simply lead to bitter disappointment for the majority who cannot realistical

  • by OrangeTide ( 124937 ) on Sunday February 07, 2016 @12:21PM (#51457325) Homepage Journal

    Coding doesn't have to only be about editing some text files and running them through a compiler. This isn't the 1970's.

    I've built my entire career on C and Linux. So my workflow is about editing text files all day, but my way isn't necessarily the only way or even the best way.

  • by superwiz ( 655733 ) on Sunday February 07, 2016 @01:58PM (#51457843) Journal
    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?
  • He is right that it is probably a bit late to expect most secondary students to get up to speed because visual programming is just introduction level coding and you still need to progress along the full learning path before you can code with confidence in real-world programming tasks, however I start my kids with MIT Scratch around the age of 5 or 6 so they are programming in C and Javascript by the time they are 10.

    The bottom line is that there is no way around the fact that to code well you need to hav
  • I started out programming in basic with the "hello world! program.

    As did millions of others.

    I guess we were devastated, depressed, and had our self esteem destroyed when we found out that not everything was as easy as "hello world!"?

    Oh.... wait.... we didn't. We were interested, plowed in, and learned the harder stuff because we were interested.

    If mommy and daddy want to protect their precious little snowflakes from the hard stuff by learning the hard stuff at the beginning - like that even makes

  • "Teach Yourself Programming in Ten Years" by Peter Norvig (http://norvig.com/21-days.html) is still an excellent discussion on how long it will take to learn programming to a degree that is actually adequate to do professional-level work.

    In addition, I expect that most people will never get beyond "fair", even with this amount of training and experience, just as most people will not become much better than "fair" at any other task, unless they have some real talent/potential/gift/deal-with-the-devil/etc. wh

  • But Drag and Drop Doesn't = Coding, argues Yue.

    So much for BPMN, where you can actually create a significant amount of useful function just by doing that.

    The thing about Mr. Yue's comments, however, is that he is completely missing the mission of all those drag-n-droppey efforts is not to equate cute little draggable blocks and call it coding. It is to get kids interesting.

    I mean, for fucks' sake, we don't call kindergarten wooden counting blocks differential equations, do we?

A Fortran compiler is the hobgoblin of little minis.

Working...