Slashdot Mirror


Who Will Teach U.S. Kids To Code? Rupert Murdoch

theodp writes "For all of their handwaving at Code.org about U.S. kids not being taught Computer Science, tech execs from Microsoft, Google, and Facebook seem more focused lately on Plan B of their 'two-pronged' National Talent Strategy. So, who's going to teach your children CompSci? Enter friend-of-the-Gates-Foundation Rupert Murdoch. Murdoch's Amplify Education is launching an AP Computer Science MOOC this fall (Java will be covered), taught by an experienced AP CS high school teacher (video). An added option, called MOOC Local, will provide additional resources to schools with students in the CS MOOC. MOOC Local will eventually cost $200 per student, but is free for the first year."

21 of 138 comments (clear)

  1. Included subjects: by magic+maverick+ · · Score: 4, Insightful

    Some of the subjects that will be included are:
    * wiretapping for beginners
    * how to put up ineffective paywalls
    * how to run a thriving social media network into the ground

    Of course, being a "computer science" class (by which I'm sure they mean "ICT for dummies"), there won't be some of Rupert's other specialties. Such as:
    * How to influence people by a coordinator national campaign by the newspapers and other media you own (and thus ensure a victory for the side who promised you the most in the next election)
    * How to lie, cheat and steal your way out of trouble
    * News? We're not a news channel, we're an entertainment channel. And we'll take it to court to ensure we can lie while pretending it is news.

    --
    HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
    1. Re:Included subjects: by Skiron · · Score: 2

      Excellent first post - couldn't have said it better.

    2. Re:Included subjects: by Anonymous Coward · · Score: 5, Funny

      You are very cynical. I predict that this course will be educational, entertaining and useful - but it will be discontinued after only a few weeks.

  2. This slowly drives me nuts by codeButcher · · Score: 5, Insightful

    When are people going to realize "coding" != "computer science"? (or <>, or ! .equals(), or ne, etc. depending on your flavor). Nothing against Java devs, but IT needs a little more than programmers in language X. There are millions speaking English, Spanish, etc., but not that many of them churn out bestsellers, or even mundane but usable prose. You're certainly not going to make good or even adequate writers by (only) teaching a language. You're not going to improve the IT industry by training a million more monkeys to (only) tap away at a million more keyboards.

    But perhaps Oracle does like to see an increase in their user base.

    [OK, rant over]

    --
    Free, as in your money being freed from the confines of your account.
    1. Re:This slowly drives me nuts by Skiron · · Score: 5, Insightful

      Also, what I have found, is that only certain people have the inbuilt 'logic' to code. Sure, you can teach them the language syntax etc., but the logic part needs to come from the head. A lot of people, no matter how hard they try, just cannot do it!

    2. Re:This slowly drives me nuts by TheGratefulNet · · Score: 5, Interesting

      very few 'comp sci' jobs require science. they are 95% pedestrian level coding (for-loops, conditionals, etc).

      I get a kick out of the interview process, these days, when its all about 'how much of an algorithms blackbelt are you?' when jobs simply don't -require- that level.

      coding is perfectly fine and is what is mostly used in computer programming; you rarely need to get all that advanced in day to day software engineering.

      (I take issue with teaching kids in the west about programming, though: it sets up a false hope that they'll someday get jobs in that field. and they won't. it will mostly go to india and china. teaching kids that they can earn a living in the thinking arts is false hope.)

      --

      --
      "It is now safe to switch off your computer."
    3. Re:This slowly drives me nuts by korbulon · · Score: 5, Interesting

      I see what you're saying, and you're *mostly* right. It's just that every now and then you do need to get your hands into the nuts and bolts of an algorithm (in my own case, about twice a year I need to look at something related to graphs or optimization).

      It is rare in practice that the compsci knowledge is needed, but knowing such stuff ahead of time is the difference between knowing how to just get on with the things and struggling for weeks on end, or just staring blankly at the screen, or just writing some kludge code that "kinda works".

    4. Re:This slowly drives me nuts by pinkstuff · · Score: 2

      There are millions speaking English, Spanish, etc., but not that many of them churn out bestsellers, or even mundane but usable prose

      Yes, but without knowing how to write, those chances are 0...

      Programming is a subset of computer science, and a useful starting point for getting people interested in the field

    5. Re:This slowly drives me nuts by codeButcher · · Score: 2

      (I take issue with teaching kids in the west about programming, though: it sets up a false hope that they'll someday get jobs in that field. and they won't. it will mostly go to india and china. teaching kids that they can earn a living in the thinking arts is false hope.)

      At a stage I worked at a certain unnamed company as a contractor. The project manager (from the company itself) that I worked under once remarked in frustration to me: "You know what the problem is with this company? Too few chiefs and too many Indians!" Of course, he was of Indian extraction himself, so I suppose he could afford the criticism.

      Which sort of illustrates my point: while it is nice to have a workforce of cheap coders on projects, you DO need more to see the bigger picture. This goes from managing such efforts, all the way down to people that understand how to read (and write) specifications and other documentation (in which I include code comments) - preferably containing all the required information but nothing more -, people who can reason about program correctness, people who understand the theory of testing and can apply it (even if it is just for writing unit tests for their own code), etc. etc. So currently I'm working at this rather large software company where they decided to occasionally have a fun code competition for the devs - turns out not even the guy drawing up the problems realizes that a certain data type is limited in size and his algorithm will generate wraparound errors rather soon. :-)

      --
      Free, as in your money being freed from the confines of your account.
    6. Re:This slowly drives me nuts by mmcxii · · Score: 5, Insightful

      Perhaps but the sooner you give a young mind a chance to work with these concepts the earlier you'll find people with "natural" talent and the sooner it will be cultivated.

      BTW, as I'm sure you can tell I'm not 100% convinced that this is "inbuilt." I really think it is a matter of upbringing. Whatever kids are introduced to at an early age and whatever they find positive reinforcement in (and negative reinforcement for that matter) will create the kinds of adults that they grow into. They'll simply grow to be dependent if you just fix every problem a child has instead of giving them the tools and knowledge to fix it themselves.

    7. Re:This slowly drives me nuts by bickerdyke · · Score: 2

      But to write a bestseller, knowing at least one language is a prerequisite.

      You may be the world bet pantomime - that won't help you starting your novel if you don't have access to language.

      And as with novels, the originale language is pretty secondary (there are translators for that. Some stuff may work better in one language than the other, but usually you can get by with any language). It's more the "programming mindset" (what some other poster described as "logic").

      Breaking down a big task in smaller subtasks, plan for every possible outcome, variables, loops etc....

      I had to take a whole semester back at uni in "Introduction to OOP". That lecture was held by the CS department and i spent 4 months each tuesday at 7am in a lecture hall where someone waved around pictures of cars and planes and the respective stencils of cars and planes - their idea of explaining the concept without using a specific programming language.

      Needless to say, i didn't get it.

      A year later, a mechanical engineering professor summed up that whole semester in 5 seconds: "Classes are little more than structs with code inside".

      --
      bickerdyke
    8. Re:This slowly drives me nuts by Skiron · · Score: 2

      I disagree. Think sports. Why can some people run faster than others? Why can some people play tennis better than others? It is nothing to do with upbringing, just the way we are. Everybody is good at something, so sometimes no matter how many tennis coaches you have, or training on a bike to win the tour de France, will never work. Sure, you can be taught how to play tennis, chess et al, but to be GOOD you need the natural ability to be able to do it anyway.

      The same with logical good programming. Some have got it, a lot haven't.

  3. Let them teach themselves. by CastrTroy · · Score: 5, Insightful

    Let them teach themselves. That's how many of the current generation of programmers got started. And it's even easier now than it was before. There are so many free resources on the internet to get you started. If there is any direct teaching, it should be in programs outside the regular school curriculum. More free day-camps and stuff where teachers can teach without having to worry about state imposed curricula. Students are free to be there or not to attend so you have kids who (mostly) want to be there, which creates a better learning environment for all. Most people I know who are good at anything aren't good because of what they learned about it in school, but rather what they did outside school to further their own learning.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  4. Teaching coding first by SirGarlon · · Score: 2

    As the profession of software development matures, I increasingly question the value of teaching coding first. That gives the illusion that once you know how to code, you are ready to be a developer.

    In my opinion, that approach is what has led to the pervasively vulnerable infrastructure of today. People think that because they can make something work in PHP, that's all there is to it.

    I'm suggesting that teaching kids to attack and exploit vulnerable systems first might be more valuable. Once you understand the basics of that, you become powerfully motivated to avoid writing vulnerable code. And as you probably know, you need to learn some programming anyway to be an effective attacker.

    I realize this will never happen. There are lots of people who would say, "Oh, noes, we can't teach kids to hack! They'll do something evil!" I would reply, if you are seriously afraid of having your systems compromised by high-school kids, then you should agree with me on the importance of teaching defensive programming early!

    --
    [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    1. Re:Teaching coding first by dcollins · · Score: 2

      "I increasingly question the value of teaching coding first... I'm suggesting that teaching kids to attack and exploit vulnerable systems first might be more valuable... And as you probably know, you need to learn some programming anyway to be an effective attacker."

      Thank you for my morning logical contradiction.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
  5. Computer science? by Ihlosi · · Score: 4, Insightful

    Computer science as much about coding as astronomy is about building telescopes ...

    1. Re:Computer science? by petes_PoV · · Score: 2

      Quite. Maybe more people would want to go into Computer Science if they didn't have to mess around with programming

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  6. A craftsman must know his tools. by tlambert · · Score: 2

    When are people going to realize "coding" != "computer science"? (or <>, or ! .equals(), or ne, etc. depending on your flavor).

    I think it'll happen when you read past the Slashdot title to the summary, and realize that the article is talking about computer science and that the whole "Who Will Teach U.S. Kids To Code?" this is a fabrication of the submitter/editors.

    Nothing against Java devs, but IT needs a little more than programmers in language X. There are millions speaking English, Spanish, etc., but not that many of them churn out bestsellers, or even mundane but usable prose.

    This is probably the most elegant argument I have ever seen for teaching algorithms, big O notation, and other theory topics, instead of languages, which is a switch most U.S. universities made after the decision was forced by the accreditation change in the late 1980's.

    And it's absolutely, totally, completely wrong.

    A craftsman must know his tools.

    You need to learn at least one language deeply enough that you have a feel for the calculus of the language, and how to force it to represent any CS concept you want it to represent. Ever since they stopped teaching languages as a subject because they could no longer offer credit hours for doing so, the U.S. has been mostly turning out crap coders, except at schools like Brown that have self-directed programs where you can actually still learn a language from an expert practitioner.

    A secondary consideration is that, when programming in a high level language, you should know what's happening under the covers. Java and other "pointerless" languages are an incredibly poor choice for doing that. So I agree on your condemnation of teaching the Java language, but it's for a reason other than the one you cite. The best way to understand what's going on under the covers is to use a high level language which compiles to assembly, and stop after the compilation to assembly; "cc -S" does this, although C isn't the only language in this category. Which brings me to the second point: apart from learning a single high level language to a great depth, it's also necessary for the student to learn an instruction set for a particular architecture, which, given prevalence, is going to mean either x86 or ARM these days. If you can't look at the high level language and know what assembly is likely to be generated from it, you do not understand your high level language. Without a grounding in assembly language, you are never going to have an intuitive grasp of memory layout or pointers, and if you learn "pointerless" languages, particularly ones with garbage collection, you may be able to program them, but you aren't going to be able to write a runtime for them yourself, with no intrinsic idea of memory layout, reference, or management.

    Which leads us to our third consideration, and the one that gets in the way of problem solving using computers as a tool, which is really what we are trying to teach when we talk about teaching "computer science" or "coding": You need to repeat the process with a second high level language that also does not target a virtual machine. Only by being able to contrast the two calculus of the different languages are you going to be able to generalize in terms of an arbitrary computer language being able to be applied to a problem set. There's a reason that mathematics courses teach both Newton and Leibnitz style calculus to students, and it has nothing to do with not being able to solve problems with one that you can with the other. It has everything to do with the ability to generalize theory across systems.

    The fourth and final consideration is algorithms, big O notation, and other topics, and how to represent them in your high level language. Yes, you need to learn this, but you need to learn it in a context of a language calculus, since throughout your career, if you end up coding, you will be called upon to translate these concepts to the

  7. Re:The reality is more like this.... by BVis · · Score: 4, Insightful

    This has nothing to do with skill and training, its more about saving money.

    Bingo. Big Business doesn't like it when supply and demand works against them. Developers are in-demand, and usually when something is in-demand, the price for that thing goes up (in this case, salary and other compensation). They hate that. Money is for the executive golden parachutes, not the people who do actual work. So, by increasing the supply, you tend to lower upwards salary pressure. It's the same reason why they love H1-Bs so much; they'll accept lower pay, which has the effect of downward pressure on salaries.

    However, it's all kind of based on a false premise anyway: the impression that they want you to have that there aren't any workers with the required skills to fill the jobs. This is bullshit. The problem is that there aren't enough workers with the required skills that are willing to accept the money the employers think they're worth (which is waaay below market). So, Big Business whines to their (wholly-owned) elected representatives to get more H1-Bs, and in addition they sponsor programs like this to give the students the impression that they "owe" them something in the form of taking a lower salary. It's all just about money; there's no philanthropy here.

    The third thing is that these businesses don't feel your computer science degrees are all that important anyway.

    Yes, and no. It's important to them that you have the debt that usually accompanies a college degree; the degree itself, as you indicate, is meaningless. People with huge non-dischargeable debt are more willing to put up with poor treatment by their employer. If you're debt-free, and your boss tells you you now need to do the work of three people, you can much more easily tell him to fuck off as compared with someone who owes $60,000 in student loans.

    When it comes to technology... the feel they can get anyone to do this work.

    The concept of the 'worker as interchangeable cog' meme is not specific to the tech world, as you probably know already. Case in point: The nurse population is rapidly greying in this country. Nurses that have four decades of experience tend to be at the top of their salary range. Hospitals look at that and say "Why are we paying this one person so much when we can hire three CNAs to do the same work?" The difference is that CNAs are intended to be assistants, which is what the A in the acronym is (Certified Nursing Assistant). They're not intended to provide care themselves; they're trained to do things like clean toilets and rooms in a care-ready way. But all management sees is dollars and cents; at the vast majority of hospitals, the administration has put patient care on the permanent back burner in order to focus on what they really care about: money. Hospital administrators typically are lawyers and accountants, they have no ethical responsibility to the patients. They also see nurses as interchangeable; they see nothing wrong with a nurse that's worked in oncology for twenty years being told to fill in in the ICU. After all, a nurse is a nurse, right?

    --
    Never underestimate the power of stupid people in large groups.
  8. Self taught programmers by sl4shd0rk · · Score: 2

    All the amazing programmers I've ever known started out self taught. They all have a back-story about how they had "this old machine.." or they would "go into computer lab on study hall.." or "..spent hours typing in the code out of the magazine..".

    I don't think you can effectively "Teach" programming as a large portion of it is right-brained, but making some sort of CS syllabus available is a great idea for kids that actually want it. With all the action to abolish public education, I am dubious about any suggestions founded by capitalist juggernauts.

    --
    Join the Slashcott! Feb 10 thru Feb 17!
  9. High school is too late by Narrowband · · Score: 4, Interesting

    I took AP computer science in high school, myself, and it really wasn't programming, it was pretty much the same as a college data structures class (arrays, linked lists, trees, sparse matrices, searching and sorting, etc.) Going straight into that without some earlier programming foundation doesn't really work so well. We need to start kids earlier to really get proficient.

    The logic skills needed to code can be developed, too, but it needs support much earlier, including in elementary school math. I remember in 2nd-4th grade, our textbook was called "sets and numbers," and we did a lot with set theory, which my son's school hasn't. There are tradeoffs: he was into algebraic equations in 4th grade, which I never did until at least middle school. But overall it seems like he's had less emphasis on logic and discrete math and more on general/continuous math. My wife and I have tried to supplement it, but it isn't really standard anymore, where we live.

    Anyway, if kids get enough practice with sets and set operations in elementary school, then logic operations a bit later (which and teach them how it's really the same, AND = intersection, OR = union, etc.) and throw in a few other concepts like variables, then they should be ready to start getting some early programming classes in middle school, which will stick with them a long time.