Slashdot Mirror


Zuckerberg Shows Kindergartners Ruby Instead of JavaScript

theodp writes "If one was introducing coding to 10 million K-12 kids over 5 days, one might settle on a programming language for examples more than a few weeks before D-Day. But the final tutorials for the Hour of Code aren't due now until the day they're to be taught, so Code.org was able to switch the example Facebook CEO Mark Zuckerberg uses to illustrate Repeat Loops from JavaScript to what looks like Ruby (earlier /. discussion of the JavaScript example), which will no doubt make things clearer for the kindergarten set working on the accompanying Angry Birds tutorial. Khan Academy, on the other hand, is sticking with JavaScript for its Hour of Code tutorial aimed at middle-schoolers, which culminates in a project showing the kids how they can draw a circular plate by invoking an ellipse function with equal major and minor axes. By the way, as Bret Victor might point out, the 2013 Khan Academy lesson looks a lot like circa-1973 PLATO!"

13 of 144 comments (clear)

  1. What? by Anonymous Coward · · Score: 5, Insightful

    If one was writing a summary, one might settle on a summary that explained the point it was trying to make rather than providing a set of disconnected statements...

  2. At Long Last... by Anonymous Coward · · Score: 5, Insightful

    Ruby finds it's niche. IIRC Twitter switched anything that mattered from ruby to scalar / JVM the very moment their platform became more than a toy.

    He'd probably be better off showing them javascript, no need to install 3rd party software. Kids already have access to all runtime libraries and development tools with a web browser and a text editor. Really makes no sense to show them ruby.

    1. Re:At Long Last... by AuMatar · · Score: 3, Interesting

      Number 1 is actually a negative. The right paradigm to use for kids is procedural. First off because it matches how they're likely to think- plenty of stuff is broken down into steps 1,2,3 etc just like procedural, but nothing is broken down by objects outside of programming. Secondly, they have to learn procedural and structured code anyway to write functions- why confuse them with extra stuff? Teach them without objects first, then teach them objects- as an added bonus they're more likely to understand *why* they're useful.

      Three is an app. It can be written for any language. Its not a good reason to pick one language over another.

      There's great communities for every language. There's also horrible ones for every language. You just need to know where to look, which a teacher should. Not an advantage.

      You have exactly 1 point that stands up.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  3. Sigh by ledow · · Score: 5, Insightful

    Is it just me that thinks that, when aiming at kids, BASIC still probably is the easiest language to understand (if not the most rigorous)?

    The first example is just HORRENDOUS anyway - boilerplater and ternary crap getting in the way. The second is simplified using specific language facilities and objects.

    So what would have been wrong with a BASIC-like:

    FOR EACH USER IN USERS
            SENDMESSAGE(USER, "Happy Birthday")
    NEXT USER

    As I get older, I believe more and more than the creators of BASIC knew what they were doing, and make something kids and beginners could understand quickly even if it wasn't perfect.

    1. Re:Sigh by BenfromMO · · Score: 3, Insightful

      As I get older, I believe more and more than the creators of BASIC knew what they were doing, and make something kids and beginners could understand quickly even if it wasn't perfect.

      Well said, and I agree. The hint for me is in the name of the language. For children, you want something that gives near instant gratification and which they can understand as they go. Even the horrendous goto statements allow children to see clearly where things go...and so with children its probably is the best bet. You are not trying to train good programming quite yet at this level, you just want to interest children, so why not go with something that is not the buzz of the week?

    2. Re:Sigh by csumpi · · Score: 3, Informative

      Agreed completely.

      The traps in both javascript an ruby can make even a grown person's head explode, let alone a kindergartner.

      I'm also not convinced by "block programming". OK, it's easy to make a pig move 3 steps forward by sticking three "move forward" blocks together. But that' gets old in minutes, and you want variables and functions. At that point (about an hour in) block programming becomes more of a hassle than typing "A=11".

      As for programming languages, there's also Pascal. Just like BASIC, it was created to for teaching programming.

      And why does everything need to be Angry Birds? (Which reminds me, nice slasvertisement again, timothy.)

  4. Lazy kids by nbritton · · Score: 4, Funny

    Kids today are lazy. Back in my day, knowing assembly language was a pre-kindergarten requirement.

    1. Re:Lazy kids by Guppy06 · · Score: 4, Funny

      I worked with machine language in elementary school!

      (We used discarded punchcards in arts and crafts.

  5. My 5 year old says "Pft. Lamers." by stonebit · · Score: 5, Funny

    He says it's all C or nothing. C++ if you're weak but want to look cool. I can't believe how hard core he is. I had no idea 5 year olds could form such hard ideals about programming. He says at school, all the kids who use Java are picked on. Some of the teachers tried to front Ruby, but they just got all up in her grill.

  6. 10 years from now by Anonymous Coward · · Score: 3, Insightful

    Kids will be choosing to work at a McD's or writing JavaScript code. This is all tech industry's goal of making programming and development a skilled trade - much lower paying trade.

  7. hmmm by buddyglass · · Score: 3, Funny

    So this is kind of like letting them play with elemental mercury instead of chewing on chips of lead paint.

  8. Re:language wars still hot for good reason by binarylarry · · Score: 3, Insightful

    I hope to god this post is some kind of bizarre troll attempt.

    --
    Mod me down, my New Earth Global Warmingist friends!
  9. Wat? by Greyfox · · Score: 3, Interesting
    Wat?

    Ok, so technically learning to program doesn't have the same set of requirements as production programming. Back in the day you were likely to get BASIC and then moved on to Pascal, C, Fortran or (god help you) COBOL. Once you realize that all languages have essentially the same structures, you start to say things like "languages are just syntax. Learn to program in one language and you can pick up any other language very easily." This is not actually completely true, but I'll get to that in a moment. They also didn't tell you much about the environment beyond giving you the "vi cheat sheet" and instructions on how to invoke the compiler. Near as I can tell they don't do a much better job of it today.

    Rolling objects into the mix really doesn't change that much. You still need to know structural programming because you're going to need to write your methods and you don't want to write them as spaghetti. You have a whole other set of concepts to master for OOP. You can show people objects, but until they're ready for them, they're not going to understand them. I don't know how many people remember learning to program, but when you're looking at it for the first time, even basic language structure like function parameters (and functions) and variable initialization are confusing.

    So yeah, Ruby and Javascript might make OK learning languages, inconsistencies and all. Of all the ones I looked at when I was a wee programmer (And I looked at them ALL,) Logo and Pascal seemed like the most sensible. We did Pascal in my high school (in the '80's) in a programming environment on Apple II machines. They environment was mildly quirky, but didn't take long to pick up. That let us concentrate on the language. Logo offered the most immediate feedback about how your changes affected the behavior of the program. At least for me, immediate feedback was very helpful to the learning process. You can definitely get that with the interpreted languages. The same things that make them reasonable languages to learn programming also make them not-so-great for production projects, at least not without a lot of unit testing that no one ever bothers to write.

    Of course, the more you work with different computer languages, the more you start to realize that the statement that "all languages are the same" is not really true. You discover things like the ones mentioned in the presentation I linked to at the beginning of this post, and find yourself having to work around deficiencies in the language. At a basic level all languages are the same and once you learn the control structures you can write simple code in any language very quickly. To actually learn the quirks of a specific language and truly master it, that could take years. I'd go so far as to say that most programmers will go their entire career never having truly mastered a single language. What they give you in school are the tools to achieve that mastery, and I don't feel that anyone even does a good job of doing that.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?