Slashdot Mirror


Code.org Disses Wolfram Language, Touts Apple's Swift Playgrounds (edsurge.com)

America is changing the way it teaches computer science. "There are now 31 states that allow CS to count towards high school graduation," according to an announcement this week by the White House, while a new Advance Placement course "will be offered in more than 2,000 U.S. classrooms this fall...the largest course launch in the history of the AP exam." But what's the best way to teach coding? theodp reports: Tech-backed Code.org, one of the leaders of the new CSforAll Consortium that was announced at the White House on Wednesday, took to its blog Thursday to say "Thanks, Tim [Cook], for supporting the effort to give every student the opportunity to learn computer science," giving a shout out to Apple for providing "resources for teachers who want to put Swift Playgrounds in their classrooms. (A day earlier, the White House said Apple developed Swift Playgrounds "in support of the President's call to action" for CS for All).

Curiously, Code.org CEO Hadi Partovi argued Friday that "the Wolfram Language has serious shortcomings for broad educational use" in an EdSurge op-ed that was called a "response to a recent blog post by Stephen Wolfram" on Wolfram's ambitious plan to teach computational thinking in schools. Partovi's complaints? "It requires login for all but the simplest use cases, but doesn't provide any privacy safeguards for young children (required in the U.S. through legislation such as COPPA). Also, a serious user would need to pay for usage, making implementation inaccessible in most schools. Lastly, it's a bit difficult to use by students who struggle with English reading or writing, such as English language learners or early elementary school students."

The submission ultimately asks how should computer science be taught to teenagers. "Would you be inclined to embrace Wolfram's approach, Apple's Swift Playgrounds, Microsoft TEALS' Java-centric AP CS curriculum, or something else (e.g., R, Tableau, Excel+VBA)?"

241 comments

  1. allow CS to count towards high school graduation by turkeydance · · Score: 1

    everything else does. in public schools in USA

  2. Mathematica is pay to play only by Anonymous Coward · · Score: 5, Insightful

    If you want to program in Mathematica, you have to buy it. Most use is geared towards annual fee. There is no open source version of Mathematica. This greatly limits its appeal, regardless of the languages merits.

    1. Re:Mathematica is pay to play only by JaredOfEuropa · · Score: 1

      And that should be the deciding factor. Teach kids in a language that is not only clean and easy to learn, but also one that they can take home and mess around with if they're interested.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    2. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      not true. you can run it free for non-commercial use on the raspberry pi. not exactly a super computer, but cheap.

      https://www.wolfram.com/raspberry-pi/

    3. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 1

      Smalltalk is an ideal programming language to teach computer science concepts. BASIC is an ideal programming language to teach the fundamentals of computer programming if you are not covering advanced data structures. Why does everyone insist upon making it so complicated? Most of us are self-taught and we started with good old BASIC with line numbers; we moved on to other programming languages as our knowledge and skills with BASIC led us to assembly language or even machine code initially to extend BASIC's functionality followed by self-standing assembly language utilities and applications before moving to higher-level programming languages.

      By the way there is an open source work-alike for Mathermatica.

    4. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      not true.

      https://www.wolfram.com/raspberry-pi/

      no exactly a super computer, but its cheap.

    5. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      Side Note: Mathematica comes with a free license on Raspbian which runs on a Raspberry Pi which a lot of STEM classes are now using to teach physical computing.

      https://www.raspberrypi.org/downloads/raspbian/

    6. Re:Mathematica is pay to play only by losfromla · · Score: 1

      Open source version of Mathematica: http://www.gnu.org/software/oc....

      --
      Only I can judge you.
    7. Re:Mathematica is pay to play only by RockDoctor · · Score: 1

      Teach kids in a language that is not only clean and easy to learn, but also one that they can take home and mess around with if they're interested.

      Then teach them another language. Then another.

      Because if there is one thing that is a certainty in the working lifetime of the next generation of students who learn to code (out to 2080~2090, if we continue using the current calendar - which I'm not betting for or against), then that certainty is that they'll need to use multiple different languages. Sometimes for good reasons, like language design ; other times for crap reasons like a PHB's addiction to BuzzWord Bingo.

      To put things into perspective, if I'd stayed on to a 3rd year of computing science (instead of doing years 3 and 4 in geology), then I might have learned to use C, but I could not have used C++, because it didn't exist ; BASIC was dead when I was a student, and the IBM PC still cost around 6 month's income. Bill Gates had recently brought QDOS from (what's his name) and was re-badging it as MS-DOS.

      --
      Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
    8. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      No, octave is based on matlab not mathematica.

    9. Re:Mathematica is pay to play only by DriveDog · · Score: 1

      BASIC is one of the worst ways to start anyone in anything. I've written more lines of various dialects of BASIC than anything else, and they all suck, especially for beginners. I can almost forgive those guys at Dartmouth for inventing it, but not people like Gates who pushed it after it became obvious how bad it was.

      Carefully constructed lessons/projects involving JavaScript would still be my top choice. It's an excellent language and providing something that kids can use on their own everywhere for instant gratification and to construct things of an interactive nature is important in the early learning stages (the ONLY possible reason to use anything BASIC).

    10. Re:Mathematica is pay to play only by Brett+Diamond · · Score: 2

      Octave is an open-source Matlab, not Mathematica.

    11. Re:Mathematica is pay to play only by david_thornley · · Score: 1

      Anyone who wants to become a good programmer needs to learn several languages, sure, but we're largely talking about people who aren't going to become good programmers. We're trying to teach them the basics so they have some clue how programming computers works, which is a much more widely useful skill than programming itself.

      Particularly with the simpler cars when I was younger, knowing something about how they worked was very useful, even if you couldn't get a job as a mechanic.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    12. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      Er, not quite. Octave is an open-source version of (some of) Matlab, not Mathematica. Different beasts.

    13. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      Open source version of Mathematica: http://www.gnu.org/software/oc....

      You confuse mathematica with mathlab

    14. Re:Mathematica is pay to play only by losfromla · · Score: 1

      Yeah, that is more correct

      --
      Only I can judge you.
    15. Re:Mathematica is pay to play only by Anonymous Coward · · Score: 0

      Isn't Octave the open source version of Matlab?

  3. Code.org by Anonymous Coward · · Score: 0

    What is code.org and why should I care what its CEO thinks? Who gives a shit?

    1. Re:Code.org by ShanghaiBill · · Score: 1

      What is code.org and why should I care what its CEO thinks? Who gives a shit?

      Code.org is a non-profit organization promoting the teaching of programming. They have wealthy benefactors, and are very influential. Whether or not you agree with their goals and methods, you should "give a shit" about who they are and what they do. You should also give a shit in general about STEM education. It is important.

    2. Re: Code.org by thesupraman · · Score: 2

      Quite correct

      You should give a shit about who finds/owns code.org and what their motives are.
      And if you think it is the betterment of children then you are not thinking critically.
      Code.org is about to things.. Ownership of hearts and minds as early as possible, and the attempt to reduce software development/software engineering to a blue collar function.
      This is quite clear by the mutual ego stroking of the members over their proprietary closed 'solutions' for education rather than a focus on simpler and freely available solutions that already exist.

    3. Re: Code.org by Anonymous Coward · · Score: 0

      This is quite clear by the mutual ego stroking of the members over their proprietary closed 'solutions' for education rather than a focus on simpler and freely available solutions that already exist.

      Can you please explain what these "proprietary closed solutions" are and the "freely available solutions" that already exist are? In reading through code.org I can see that almost all of it is based on technologies that are open source and/or open standards. Your comment is too vague to distinguish whether you're referring to the tools or the curriculum being open/closed.

      The courses are licensed under non-commercial Creative Commons Attribution licenses and are primarily focussed on Javascript. Of course it is in the interest of people in the industry to ignore these facts and not teach computer science in school because then it remains a less common skill in order to demand inflated salaries. So while there is a lot of criticism directed at what is being taught and that XYZ language would be better in an effort to dismiss it there is no effort going towards actually developing a curriculum for XYZ language because it is not about the critics offering an education it is about preventing education to maintain inflated salaries.

    4. Re: Code.org by Anonymous Coward · · Score: 0

      Why are you lying? What is your vested interest in spreading lies? Given that you are even talking about this you should know damn well the teaching materials from code.org are freely licensed. You should also know damn well that they use Javascript to teach CS principles. Now if you work in this industry you have a clear vested interest in spreading falsehoods to prevent expanse of the talent pool, thus increasing competition and reducing the ridiculous Silicon Valley salaries that have led to unsustainable inflation in the region.

      So what educational CS programs are you advocating for? Or are you just against CS education on protectionist views.

    5. Re: Code.org by ShanghaiBill · · Score: 1

      the attempt to reduce software development/software engineering to a blue collar function.

      What's wrong with that? A blue collar machinist who can write g-code for a CNC lathe, is going to earn a lot more, and be more productive, than another machinist that can only operate it manually. Plenty of blue collar workers could benefit from knowing how to code.

    6. Re: Code.org by Anonymous Coward · · Score: 0

      The problem likely has something to do with the fact that coding is in an entirely separate domain and also skillset from being a machinist. A barely useful machinist typically takes 5+ years of hands-on training, training that is dedicated and focused: that means the typical person has nigh zero probability of also being a decent programmer--much less a technical coder.

    7. Re: Code.org by DriveDog · · Score: 1

      Nailed it.

    8. Re: Code.org by david_thornley · · Score: 1

      Having done both, there's a lot of difference between gcode programming and C++ programming. gcode is normally used to write very specialized programs which directly control physical actions. Many gcode programs are just cryptic-looking transcriptions of manual operation, and the difference between the machinists you mention is basically if they're literate in gcode. C++ is used for much more general programs and has a lot of facilities to handle abstraction.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    9. Re: Code.org by exomondo · · Score: 1

      But we aren't talking about C++ programming, just the most basic concepts of coding in general.

    10. Re: Code.org by david_thornley · · Score: 1

      The gcode programs I've seen are basically recipes for moving stuff around in the mill. A casual knowledge of cooking will give someone enough experience with the ideas behind programming gcode.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    11. Re: Code.org by exomondo · · Score: 1

      That you create an analogy of "recipes" doesn't mean casual knowledge of cooking will mean people understand how to write gcode. But it's not even just that, if you're a mathematician, physicist, chemistry researcher, visual effects designer, CAD/CAM/CAE experts and even CAD designers these days you will be coding to some degree so learning the basic concepts early is most certainly advantageous.

    12. Re: Code.org by david_thornley · · Score: 1

      You were claiming that there's a significant difference between someone who can write gcode and someone who has to manipulate things manually, and I don't see it. Milling is complicated, and even if you understand the gcode you won't necessarily understand what's going to happen inside the mill. If someone can operate a mill manually, they can almost certainly write down what they're doing in gcode with a little training. Obviously knowing how to cook and knowing how to use a CNC mill are very different skill sets.

      Your list of jobs that may require programming isn't all that long, and the jobs aren't all that common. They aren't very diverse either, most being in STEM fields. For someone who's going to be a physicist, I would recommend learning something about programming. For someone who's going to be a chef, I'd recommend skipping it in favor of something else.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    13. Re: Code.org by exomondo · · Score: 1

      You were claiming that there's a significant difference between someone who can write gcode and someone who has to manipulate things manually, and I don't see it.

      Well I don't think I was but I would say it is true, if you can automate it rather than having to do it manually there most certainly is a significant difference.

      Milling is complicated, and even if you understand the gcode you won't necessarily understand what's going to happen inside the mill.

      Nobody said you would.

      Your list of jobs that may require programming isn't all that long

      It's not all that comprehensive either. Do you actually have so little exposure that you think that list really is everything? Surely you're not going to pretend you're that ignorant now are you?

      For someone who's going to be a physicist, I would recommend learning something about programming. For someone who's going to be a chef, I'd recommend skipping it in favor of something else.

      There are a lot of things you learn in school that aren't applicable to every field of work. The point is coding is becoming a part of more and more jobs as time goes on - which is obvious if you've been paying attention - so saying "no no no we shouldn't expose people to coding in high school because they might choose a career where you don't need it" is pretty short-sighted.

    14. Re: Code.org by david_thornley · · Score: 1

      What I'm saying about the CNC mills is that the step from being able to do things manually to being able to write basic gcode is very small, and doesn't need exposure to programming.

      Also, while being able to do some sort of programming is important in quite a few jobs, there are plenty of jobs where it isn't. Computer science should be made available as an elective, to expose students to programming and give them some idea as to what computers can and cannot do. I don't think it should be required.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    15. Re: Code.org by exomondo · · Score: 1

      Also, while being able to do some sort of programming is important in quite a few jobs, there are plenty of jobs where it isn't.

      But as we have seen the list of jobs where it is important is growing, in some jobs where it previously wasn't used at all it is now commonplace.

      Computer science should be made available as an elective, to expose students to programming and give them some idea as to what computers can and cannot do. I don't think it should be required.

      Computers themselves are used in far more places now than ever before and coding gives a basic understanding of how they work, it's a very good way to get people familiar with computer use. Like I said, just because you learn it in school doesn't mean it is going to be applicable to everybody's life or job, coding is no different to those other things.

  4. CS should _not_ be taught to teenagers by gweihir · · Score: 3, Insightful

    Some coding can be, but even that should be limited to those that really want it. It is not even remotely similar to reading, writing and basic math. Most people do not need coding, will never be any good at it and trying to tech it to them is a complete waste of time. Might as well teach bridge building or how to sew up a cut to everybody. Sounds stupid? That is because it is.

    Some things are jobs for specialists that have the aptitude for it, because anybody else will never be any good at it. Coding is such a thing. CS even more so.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:CS should _not_ be taught to teenagers by 0100010001010011 · · Score: 1, Insightful

      Some things are jobs for specialists that have the aptitude for it,

      They said the same thing about punch card operators, switch board operators and keyboardists.

    2. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 1

      Basic CS is stuff like algorithm design and complexity analysis and I'd expect a bit of both to be part of a well-rounded school mathematics curriculum. Everyone needs to design algorithms, even if they're for execution by humans, and everybody needs some idea of how to optimise them.

      As for bridge building, relevant topics were covered in my maths and physics classes at school, and I can remember a practical model bridge-building competition too. Basic statics is part of mechanics.

      "Aptitude" is one of those fuzzy buzzwords for people who can't be bothered to find out how to improve their teaching methods and are convinced that everyone who doesn't enjoy the status quo must be a bit thick. Your elitist pessimism is so wasteful.

    3. Re:CS should _not_ be taught to teenagers by E-Rock · · Score: 2

      Computers run the world, so they do need to understand how they work in a general way. To do this I they should give students a general understanding of logical structures and how computer programs work. Knowing a particular language, or making that the focus, won't do most of them any good.

    4. Re:CS should _not_ be taught to teenagers by Fear+the+Clam · · Score: 4, Insightful

      It is not even remotely similar to reading, writing and basic math. Most people do not need coding, will never be any good at it and trying to tech it to them is a complete waste of time.

      I absolutely disagree. Programing (by which I mean building something that does stuff, rather than doing it the best possible way) is not about math, it's about logic. It's about deciding goals, making a plan, testing one's progress, and making milestones. This sort of thinking is essential in nearly every field, from baking to investing, from education to career planning.

    5. Re:CS should _not_ be taught to teenagers by fermion · · Score: 1
      We live in a world where it is increasingly important to understand process. Think of teaching a spreadsheet to a kid who understands how a computer works, rather than just thinking the buttons are magic. Understanding is key. Everyone else is going to have their job taken over by a robot or by kids who did have some basic CS.

      No one is saying that we teach a CS curriculum in high school, just like not one is saying that we teach math or science or literature or history to the levels taught in college. What some, like the poster are saying, is that we decide the few we are going to educate, and ignore the rest.

      In the end CS in high school is a practical problem. CS is still a relatively rigorous topic, and relatively few people understand it. I have sat in rooms with adults playing on an arduino, and most could even to the simplest tasks. They simply are not trained.

      In the end we don't have CS in high school for the same reason that in may high schools we have 4 years of required history and English but only three years of math and Science. There are simply not enough teachers. And yes, many teachers will deny it and say that math and science is useless, and no kid needs to know physics or calculus.

      I am certainly glad that i did not have parents of go to a school that represented this level of stupidity. Otherwise I would not have a job. I also had to learn to read literature and write and do many other things, even if I did not have an aptitude for it. It is called being educated.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    6. Re: CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Yes, I am a low-functioning autistic because I suggest that the majority of people have potential and schools need to improve their teaching methods.

    7. Re:CS should _not_ be taught to teenagers by murdocj · · Score: 1

      Absolutely right. Let's start with being able to coherently read, write, and do math. If you want to code, fine, but you don't need to do it, any more than you need to be able to build an engine in order to drive a car.

    8. Re:CS should _not_ be taught to teenagers by K.+S.+Kyosuke · · Score: 1

      Basic CS is stuff like algorithm design and complexity analysis

      Seriously? That's not really high-schooler stuff. The prerequisites alone are undergraduate university math. It may be basic for CS but it's definitely not basic for the well-rounded knowledge one should get out of high school.

      --
      Ezekiel 23:20
    9. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Having an understanding of how programs work and, sometimes, even how to fix them is just as important as knowing how to troubleshoot your car and having a working understanding of an ICE.

      The longer we keep trying to convince people that computers are magic boxes, the more ignorant and incompetent the public will become when it comes to computers. I'm not interested in creating more programmers, per se, but improving society's technical literacy would go a long way to preventing some of us from being replaced by a machine some day.

    10. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      It should most certainly be available to those who want it and it should count toward high school graduation.

      It seems like the US is a little behind. Here in Canada, in 1988, my high school had a computer science class that counted for credit. We were taught machine architecture, Basic, Fortran, Cobol and Assembly.

      My class had about 20 kids in it. It was all the same guys who were taking honours university prep physics, chemistry, biology, math and calculus with me.

      Yes, it should _be_ taught to teenagers, when the mind is fresh and sharp and ready to absorb everything like a sponge.

      Coding is part of the basic science skill set now. Has been for decades.

      Let me guess, you're a liberal arts grad? You have a Mac and make craploads of money for looking pretty?

    11. Re:CS should _not_ be taught to teenagers by RobotRunAmok · · Score: 3, Informative

      So teach them baking, or investing. The languages and parameters for these don't change every two years and aren't such political footballs. Also: Cupcakes.

    12. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      You're right, it's about logic. So let's teach them all electronics and circuit design. And mechanical engineering.

    13. Re:CS should _not_ be taught to teenagers by fluffernutter · · Score: 1

      Kids DO learn logic. They talk about Venn diagrams and AND and OR and critical thinking issues. Programming is an application of logic that they don't need to learn logic.

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    14. Re:CS should _not_ be taught to teenagers by UnknownSoldier · · Score: 1

      As someone who started coding before I was a teenager, Fuck off with your attitude.

      One of my best friends teaches programing to elementary children -- ages 8 - 12. We both got degrees in Comp. Sci. and he regular talks with me for feedback on his lessons. He usually ha the kids "programming" with paper and pencil before moving onto Python. I'm constantly amazed how he has taken a complex subject, such as Encryption / Decryption, Image Recognition, etc. and made it accessible so that even a child an understand it. That is one of the hallmarks of a good teacher.

      He teaches kids "Computational Thinking". That is, specifically, How-To:

      - understand a problem,
      - break it down
      - code it
      - debug it

      In one of his classes he showed them how to script Python to make structures in Minecraft. Kids can understand 3D cartesian coordinates when they can _visualize_ the process.

      > will never be any good at it

      1. That's partially due to shitty teachers,
      2. Who don't _make_ the time to explain fundamental concepts in a way that a kid / adult can relate to.
      3. While there a few people that couldn't code to save their life, the skills involved are universal. They apply to ALL fields.

      "Coding" teaches people:

      - Mathematics
      - Translation of English to Math
      - Critical Thinking
      - Boolean Algebra
      - Logic
      - Semantics and Languages
      - Philosophy
      - Applied Mathematics
      - Algorithms
      - Data Structures
      - Abstraction
        etc.

      All of these are substantially _more_ important then reading, 'riting, and 'rithmetic.

    15. Re:CS should _not_ be taught to teenagers by Kjella · · Score: 1

      It's about deciding goals, making a plan, testing one's progress, and making milestones.

      But usually not handing it over to a hyper-autistic coworker that'll do exactly what the instructions say despite making no sense at all without ever pausing to reconsider. Even a dog is way, way smarter than a computer in certain ways. A dog won't jump off a cliff for you. A dog won't get stuck in an infinite loop. Most people hold a dialog, you tell me what to do, I ask where there's a reasonable ambiguity - even though there might be a literal or linguistic one - and we work out the details. There are a lot of highly functional people who can not in advance describe things in the excruciatingly exact accuracy and detail a computer requires.

      And that's fine. Sure, it's a particular art that would be nice to have but so are a lot of other things. If you're a hair dresser you usually talk to people, not computers. You know what you want the system to do from a hair dresser's perspective. That does not mean you know what you want the system to do from the computer's perspective. That's why we have people especially trained in taking functional requirements and translating them to computer code. That said, you could try to make the requirements more logical...

      --
      Live today, because you never know what tomorrow brings
    16. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Exposure is important. These lessons leave a mark in the young brain which could then be reactivated later in life when needed. I was going to argue for some CS being a perfectly applicable for high school, but couldn't think of a sub field which wouldn't require a lot more mathematical rigor than a typical high school student has. Programming language concepts and abstraction mechanisms perhaps, with simplified sequential and parallel machine models? The students should, however, get acquainted with field so that the disadvantaged (stereotypes, economy, culture) can make freer choices about their future later on. And have lots of fun with those toy environments mentioned.

    17. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Wolfram's examples aren't complex programs. They're more like the basic math you imply everybody needs, only that you can't do the calculations in your head. The problem with the Wolfram language is that it's proprietary, its only implementation is $$$ and it's in no way standardized.

    18. Re:CS should _not_ be taught to teenagers by phantomfive · · Score: 1

      Yeah, give an 8-year-old Logo and a Turtle, and within a few hours they'll be programming. The idea that normal people can't program is an idea that can only be held by the ignorant.

      --
      "First they came for the slanderers and i said nothing."
    19. Re:CS should _not_ be taught to teenagers by Immerman · · Score: 1

      The rabbit hole undoubtedly goes deep - but basic things like being able to recognize the approximate Big O complexity of an algorithm aren't exactly rocket science, and can be useful even to optimize repetitive tasks around the house. Similarly things like functional decomposition.

      And perhaps most importantly introductory computer science (ideally) teaches rigorous thinking of the kind useful in life, and absolutely essential in mathematics and science, in a form better suited to general human nature than algebra and higher mathematics. Let the computer actually do the repetitive exacting work, you just need to learn how to break the problem down into something that can be solved in a systematic matter.

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    20. Re:CS should _not_ be taught to teenagers by ShanghaiBill · · Score: 1

      Most people do not need coding

      Even fewer people need calculus, trigonometry, or even algebra. But high schools still teach that.

      Please explain why anyone, other than an academic, would use calculus professionally yet not find programming useful.

      As a practicing engineer, I spend a thousand times as much time coding as I do deriving closed form integrals.

    21. Re:CS should _not_ be taught to teenagers by ShanghaiBill · · Score: 1

      The prerequisites alone are undergraduate university math.

      Understanding algorithms for sorting and searching require very little math. Complexity analysis requires understanding of exponents and logarithms, which are taught in junior high school. Most programming is more like doing plumbing than like doing math. "Okay, take this data stream and connect it to that socket, then run it through a filter and compress it ..."

    22. Re:CS should _not_ be taught to teenagers by Zontar+The+Mindless · · Score: 1

      You're not that special, sorry.

      --
      Il n'y a pas de Planet B.
    23. Re:CS should _not_ be taught to teenagers by Impy+the+Impiuos+Imp · · Score: 1

      > complexity analysis

      Basic CS???

      One of the many cool things about Einstein was he could write descriptions of relativity accessible to the average person.

      This doesn't involve that, or algorithms, or a language like C which punches you in the face. These things would be more obvious if you were as close to Einstein as you imagine.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    24. Re:CS should _not_ be taught to teenagers by ShanghaiBill · · Score: 1

      So teach them baking, or investing.

      You can screw those up and not even know you are doing it wrong. A lot of things can "sort-of" work, with no clean and clear distinction between getting it right and getting it wrong. That is why programming is the best way to teach logic and reasoning. You design the logic, you run it, and it either works or it doesn't. If it doesn't, then you need to figure out what you did wrong and fix it.

      If you are taught baking, you learn how to bake.

      If you are taught investing, you learn how to invest.

      If you are taught programming, you learn how to program, but you also learn how to think logically, deal with complexity, and systematically solve problems.

    25. Re:CS should _not_ be taught to teenagers by ShanghaiBill · · Score: 1

      You're right, it's about logic. So let's teach them all electronics and circuit design. And mechanical engineering.

      Yes, kids should have exposure to all of these things. I teach programming (using Scratch) and robotics (using Mindstorms) to 4th, 5th, and 6th graders. They love the programming, but they also learn how to design circuits and interface them to the robots. They learn the mechanics of grippers, leverage, and gear ratios.

      This is way more useful that teaching them cursive writing, or the avoidance of split infinitives and dangling participles.

    26. Re:CS should _not_ be taught to teenagers by Pseudonym · · Score: 1

      Most people do not need coding, will never be any good at it and trying to tech it to them is a complete waste of time.

      On the contrary, in the medium-term future, many (if not most) employees will be expected to know how to partially automate their own jobs. That may be as simple as the ability to use the macro system in your office suite, but it's all algorithmic thinking.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    27. Re:CS should _not_ be taught to teenagers by Dog-Cow · · Score: 1

      Making change involves basic algebra. (e.g. cost: $4.97, handed $5. $4.97 + x = $5)

    28. Re:CS should _not_ be taught to teenagers by anarcobra · · Score: 1

      > If you are taught programming, you learn how to program, but you also learn how to think logically, deal with complexity, and systematically solve problems.

      I seriously doubt this, unless you are taught in a very specific way.
      If you were taught baking in the same way it would have the same effect.
      Most CS teaching I see is basic "here's how to use these language features" kind of stuff, which doesn't teach you anything useful at al.

    29. Re:CS should _not_ be taught to teenagers by khallow · · Score: 1

      I was going to argue for some CS being a perfectly applicable for high school, but couldn't think of a sub field which wouldn't require a lot more mathematical rigor than a typical high school student has.

      Combinatorics, brute force strategies like the Monte Carlo method, basic numerical methods (finite difference, trapezoid method for integration), basic computer graphics, describing and solving computer puzzles, making games, etc.

    30. Re:CS should _not_ be taught to teenagers by gtall · · Score: 1

      I doubt this as well. I know people who know programming but cannot reason their way out of a paper bag. I'm unsure what causes this but it would seem that programming encourages "reasoning in the small" where everything can be controlled. In most real world problems, conditions cannot be controlled and competing interests must be evaluated as well as the end goal. Also, process matters out there, in the closed world of programming, it does as well but at the level of baby programming, that is not going to be apparent.

    31. Re:CS should _not_ be taught to teenagers by BasilBrush · · Score: 1

      Understanding algorithms for sorting and searching require very little math.

      Indeed. I did those at high school. And again in the first week of CS degree.

      Complexity analysis requires understanding of exponents and logarithms, which are taught in junior high school. Most programming is more like doing plumbing than like doing math.

      It's built on that. But it's way too complicated a topic for high school. It wasn't even taught in the first year of my CS degree,

      Most programming is more like doing plumbing than like doing math. "Okay, take this data stream and connect it to that socket, then run it through a filter and compress it ..."

      Data processing is like that. If you were writing COBOL in the mainframe days it would seem like that. Or if you're writing shell scripts for Unix like OSs then it may seem like that. But most modern programming is not at all like that.

    32. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      You bastard.

      It's 7:30 AM where I live, and I just realized that there are cupcakes downstairs... and now I can't stop thinking about having one for breakfast.

    33. Re: CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Are we talking search with exact matches in a set? Fuzzy lexical matches? Semantic matches? Searching for matching subgraphs in a set of graphs? Fuzzy search for subgraphs in a set of graphs? Are we looking at exhaustive search, or best match within a particular resource use requirement, e.g., time or computation or a function of some combination? Are we looking at the optimal data representation for a particular type of search, or one that is reasonably optimal over several? Are we looking at ways to remap the representation to optimise searches? Are we looking at false positives and false negatives in areas where we have traded speed and accuracy.

      Search is not necessarily trivial.

    34. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Most people do need some coding every now and then, they just don't know it and keep wasting time on repetitive tasks a simple piece of code could do for them.
      You don't need to be terribly good with coding to glob together some excel vba horror that does half your work for you. The coding quality might be utter crap, but if it gets the job done does it matter?
      Not everyone can be expected to become a programmer, but a little bit of coding even at most rudimentary level can go a long way. I used to work as an electronics engineer, half of my time was spent generating documentation. Little bit of fairly simple code reduced document generation time to zero for me and every other electronics engineer in the company. Documentation quality was better and everyone could focus twice as much time on actual engineering tasks, all with a bit of code that a high school student could have written, given some time and motivation.
      Why did it take a new guy to get something obvious like that done? Because none of the other electronics engineers had any programming background whatsoever, they were hardware engineers not programmers and couldn't even imagine that the time waste that was document generation could be done by a program.

    35. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      And what right has that to this discussion here? Right, none at all.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    36. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      And when, in your deranged mind, has Logic stopped being a mathematical discipline? Also, how much actual CS do you have, because logic does not get you very far, even eminently complex HOLs do not capture most of CS (or even coding) in a practically useful way. In addition, your "approach" is pretty much unusable in the real world, as the technology is neither simple nor obvious at this time and will remain so for the foreseeable future.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    37. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Programming is much, much more than simple propositional logic. At the very least you need discrete-time predicate logic, and there you leave basically all non-experts behind. Hence modeling programming as "logic" is not useful in actual reality beyond very simple toy code.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    38. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Indeed. And look, anybody actually able to read well (not the mostly functionally-illiterate level we encounter so often these days) can work though a coding tutorial if they find they need basic skills at it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    39. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Thanks, and same to you too. You think I have no experience teaching coding? Meeep, wrong. You think I am a shitty teacher? Meeeep, wrong. The difference is that I teach CS students on different levels and that I found out that even among them, most never learn to code well, _regardless_ on who teaches them, what language(s) are used or whether they were taught at all. Same result in any situation: About 10% can code well on graduation, 30-40% so-so, 50% (!) not really. This is not a question of teaching methods, languages, teachers, etc. Vastly different approaches produce very similar results. It is purely a problem of aptitude. And most people do not have it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    40. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      You seem to be functionally illiterate. I was always talking about coding well. Coding badly can indeed be taught to almost everybody, just like singing badly, doing bad oil-painting, giving bad speeches, etc. can be taught to almost everybody. The point is that doing so does far more harm than good and hence it should _not_ be done.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    41. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Hahahaha, you wish.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    42. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      That tired old nonsense has been touted since computers are around. Wrong half a century ago, wrong today. Unless you are thinking of a future where 90% are unemployed, because their jobs have been automated away. In that scenario, you will find that the remaining 10% are mostly those with the aptitude to write good code.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    43. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Oh, sure, most people would _benefit_ from some actual coding skills. But the same is true for basic medicine, politics, budget planning, etc. And yet, most people cannot do these things competently either.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    44. Re:CS should _not_ be taught to teenagers by Richard_at_work · · Score: 1

      A couple of years ago I decided to actually go and get a CS degree after 15 years of on-the-job experience. I chose a well known, internationally recognised distance learning university and picked one of their CS-Maths combined degrees so as to learn something new.

      The maths side of things was awesome.

      The CS part was dismal - one of the first year courses was around handling mobile devices on web pages. The approaches they taught were either doing a client side xml transform, using JS to switch out the desktop style sheet for a mobile optimised one, or using JS to redirect the client to a mobile specific site.

      And it went downhill from there.

      I've also run into CS degree with hons holders who couldn't code worth shit.

      I don't hold much faith in academia when it comes to CS.

    45. Re:CS should _not_ be taught to teenagers by 0100010001010011 · · Score: 1

      The punchcard operators, switch board operators and keyboardists said the same things about their jobs as Slashdotters are saying about theirs. It's perfectly relevant.

    46. Re:CS should _not_ be taught to teenagers by Pseudonym · · Score: 1

      Wrong half a century ago, wrong today. Unless you are thinking of a future where 90% are unemployed, because their jobs have been automated away.

      I'm thinking of a future where per-capita productivity increases over time. That is, pretty much what's happened in the last half century extrapolated.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    47. Re:CS should _not_ be taught to teenagers by phantomfive · · Score: 1

      Well, if your point is that there are too many idiot programmers writing bad code, I agree with you there.

      --
      "First they came for the slanderers and i said nothing."
    48. Re:CS should _not_ be taught to teenagers by Plus1Entropy · · Score: 1

      But the way that you find out if someone has the aptitude for or an interest in something is to expose them to it. Sure, some kids will be exposed to it outside of school, and pursue it as a hobby (which is what I did), but not everyone has the same environment that I did which facilitated that.

      It's like saying we shouldn't have kids play basketball in gym class because only some of them will be good at it and even less will play in the NBA.

      --
      Only crack the nuts that crack. You don't put the ones that don't crack in the sack.
    49. Re:CS should _not_ be taught to teenagers by ShanghaiBill · · Score: 1

      Making change involves basic algebra. (e.g. cost: $4.97, handed $5. $4.97 + x = $5)

      No it doesn't. Making change is just arithmetic.
      Kids know enough math to make change by 3rd grade.

    50. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Or maybe you are a few years too late and you can't perceive what chances some of those who can't program would have been able to if they had been exposed earlier?
      Also I'd say this is a completely different level, I think some useful understanding can be gained by learning some programming even if variables (those are surprisingly hard to explain to young children), loops etc. are never understood, and on that level I think most can understand it.

    51. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Most of those subjects are multidisciplinary. Those native language teachers could teach writing for interactive systems, art teachers teach assets creation, mathematics and physics teachers combine their forces and teach the applied numerical methods in relation to the game and maybe even curriculum contexts. Philosophy teacher could teach the logic and puzzles course with the mathematics teacher, and so on. It would take a lot from the teachers and demand a new kind of organization of lessons and their planning. But everyone might have fun and be more motivated, perhaps..

    52. Re:CS should _not_ be taught to teenagers by UnknownSoldier · · Score: 1

      You are throwing the baby out with the bath water.

      Yes, some (most?) people will never be great programmers. That's _not_ the point.

      The point about teaching them "coding" is to expand their mind and expose them to areas other then just the "regurgitate indoctrination" that "education" tends to focus on.

      Even if only _1_ kid is any good at it that is a success. You don't have any idea how the basic of coding will effect them later in life, but I can tell you that without it that they will be at a disadvantage compared to what they would have been if they had seen that "coding" is MUCH, MUCH, more then just hitting the "run" button.

    53. Re: CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Thank you for confirming, I figured you were autistic..

    54. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      My dog has been stuck in an infinite loop for you last 10 years you insensitive clod!

    55. Re:CS should _not_ be taught to teenagers by exomondo · · Score: 1

      Some things are jobs for specialists that have the aptitude for it, because anybody else will never be any good at it. Coding is such a thing.

      No, it isn't. Coding is just a process that is done by many different disciplines in science, engineering and mathematics to express and solve problems. Mathematicians, physicists, chemistry researchers, structural engineers, visual effects artists and even industrial designers these days use coding in their day-to-day work. That might be writing CFD simulation code in R for a physicist, mathematicians writing AMPL to solve complex problems, visual effects artists writing shaders to describe physical effects or even scripting in CAD design environments to produce requirements-driven designs.

      Coding is applicable to more and more industries than ever these days. I don't know about code.org's methodology or who funds it or what conspiracy theories there might be about that but dismissing the importance of coding in education demonstrates a real ignorance of how coding is used in the real world. And no, not everybody is going to use it in every industry but that goes for most of the stuff taught in high schools.

    56. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      And what about all the other stuff that would have similar effects bud does not get a chance because of the "coding" hype? Coding is a technical specialty that most people will never really understand. There is absolutely no sane reason to single it out as something that "everybody should have some understanding off".

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    57. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Actually, it requires a lot of very specialized math that is hard to understand for most people.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    58. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      The last half century did burn about 2000 years of results from fundamental research. That is basically over now and things are starting to slow down. Next step is not to find new technologies but to apply what is there to get rid of all these pesky workers. Simplistic extrapolation does not work for longer-term predictions in complex systems.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    59. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      That is bullshit. Next you will be claiming that authors are coding because they type text into a machine. Or that everybody is a surgeon because they can apply a band-aid.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    60. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Coding is a technical specialty that most people will never really understand.

      Bullshit! You can throw all the fake credentials around that you want but saying that proves you don't even understand the most fundamental elements of coding. You can try and blame everybody else by saying you're a good teacher and it's the students that are the problem but you have just demonstrated how wrong you are, the sad thing for you is you're probably too pigheaded and arrogant to ever realize your own failings.

    61. Re:CS should _not_ be taught to teenagers by exomondo · · Score: 1

      That is bullshit.

      Nope, it's correct and your smallmindedness and foul mouth doesn't change that, sorry. If you had real experience in the industry you would know how correct that is, but your lame attempt a one-line rebuttal shows that you don't have that at all.

      Next you will be claiming that authors are coding because they type text into a machine. Or that everybody is a surgeon because they can apply a band-aid.

      No, I won't, nor did what I wrote imply that I would.

    62. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      yeah, like imaginary numbers,I use that very day in my apparel system coding.

      one could argue that most people have no need for math past the trigonometry, but we still teach it because you never know what will inspire a person to take their knowledge further. Not everything is taught based on practical use, more 'practical knowledge(?)', it opens up ones mind to possibilities that may have not been known before (to the individual).

    63. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Distance learning university? I don't really have a lot of faith when it comes to online degrees.
      As for me, I did my CS at one of the top universities in Canada and I can tell you that both, the math side of things as well as the programming part were amazing.
      Right now at work we have a couple of guys that don't have formal education in CS, and while the can program, they usually don't do a great job. The reason is that they don't really have an understanding on whats algorithmic complexity, how to take advantage of caching to improve performance or how for data structures work under the hood (One of them was using a linked list for random access!)

    64. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      To restore your faith, try something like this free course instead.

    65. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      While an algorithm is a mathematical object, it's a bit foreign to the small amounts of mostly pure math taught in high schools, and is much more relevant to computer science. I'd rather see it taught where it's more relevant, in CS classes.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    66. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      One of the cool things about special relativity is that it can be understood fully with some basic mathematics, provided one is willing to relearn a whole lot of fundamentals. This is not true of general relativity, or of anything more than the very basics of quantum mechanics (although Feynman did some very good work on those).

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    67. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      Having been involved in CS teaching, our elementary classes were how to program (in case someone needed it, and as service classes for other departments), and a firm grounding in the theory, I had a student object to the theory, saying it had no practical use. Personally, I felt that, if you came for a CS degree, you were darn well going to learn some of the science (using "science" a bit loosely here), and that there was a business programming program across the river in the business school.

      I think the reason why you had a bad experience with a CS program is that you got into a crappy CS program. I can't imagine a course like you describe being part of a decent CS curriculum.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    68. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      It's great to have an engineering program in a high school. My son loved it. However, there's limited time in K-12 and a tremendous amount of stuff that it would be good to cover.

      Cursive is still moderately useful, but I'm not sure valuable K-12 time should be spent on it. I think it's about as useful as typing was back when I was in high school. There's nothing wrong with split infinitives in English; that's a holdover from prescriptivist teachers trying to apply Latin grammar to English. Learning how to communicate in one's native language, however, is an extremely important skill, and one which will be useful in a large number of ways in most careers. That should be a priority.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    69. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      Programming isn't magic. If the school is based on regurgitation indoctrination, that's how programming will be taught. If it isn't, there will be a lot of subjects that force the kids to think.

      The most important skills for K-12 education are communication skills, like reading and writing. After that, there's a host of things it would be good for students to be exposed to, including simple math, history, art, health, how everyday things work, how to cope in the modern world, keeping physically active, and so forth. There isn't time to include everything, and programming is just one of the many things it would help a student to know.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    70. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      There's a nice simple algorithm for making change. Take the money, then provide change from highest denomination to lowest until the amount handed over is accounted for. To be efficient, it requires being able to do simple arithmetic fast, but not algebra. If I pay $20 for something costing $13.83, the cashier needs to realize that a $5 bill is less than the change owed, but $10 is too much, that $18.83 requires a $1 but not a $5, and so forth.

      Or it can be automated. Many cash registers automatically dispense coins, allowing the cashier to pass out the paper money, which people seem to find easier to figure.

      No algebra is required. None.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    71. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      Most people can't reliably automate anything, since automating a job is far harder than doing it. For one thing, it requires that all the possible problems be accounted for up front rather than handling them as they come up.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    72. Re:CS should _not_ be taught to teenagers by david_thornley · · Score: 1

      The problem with that Excel VBA horror is that it's unlikely to be reliable. It will give answers to everything (unless it errors out), but not necessarily the correct answers, and the only way to verify answers will be to recalculate them.

      If you could write some simple code that did all the documentation for you, that wasn't good documentation, even if it was better than what was being produced earlier.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    73. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      "You think I am a shitty teacher? Meeeep, wrong."

      "About 50% [cannot] really code well on graduation."

      "_regardless_ on who teaches"

      Let me refine my earlier post: the problem isn't that you're a bad teacher, but that you're an incompetent department. Worse, you're blaming it on your students, using some nebulous idea of "aptitude" to pretend that, well, they're beyond hope anyway.

      You might want to start by doing something about a course where 50% of graduands aren't competent. Until then, you're a mickey mouse college with goals other than teaching (I'll conjecture one of those new capitalist colleges that thinks of education as simply something you sell to dumb parents / loan providers, but that's just a guess).

    74. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Well, keep kidding yourself. Your "criticism" does not touch me, because none of it has any relation to reality.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    75. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Funny. Not in any way connected to reality, but funny nonetheless. And from somebody that does not even have the minimal stones needed to use a pseudonym.

      BTW, I am not "throwing credentials around". If I did that, you would probably do what the last person did when he found out who I was: He accused me of being the janitor that had broken into my office and was posting from my computer, because his small mind could not deal with what he found. Still makes me smile when I think of it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    76. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Hahahaha, funny. The 50% number is from an "elite" technical university. Others are worse. The state of things is so abysmally bad that people without a clue about actual reality (like you) are unable to grasp it. And no, it is not teaching quality, as then (quite obviously to anybody with the slightest understanding what a "cause" is and what an "effect"), the the results would be different for the students of different teachers. The problem is far too many students without the required aptitude. As these students already _are_ selected for aptitude, the only valid conclusion is that the aptitude is rare and hence teaching this to even more people is a really stupid thing.

      Oh, and stop blaming others for your own incompetence.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    77. Re:CS should _not_ be taught to teenagers by exomondo · · Score: 1

      Well, keep kidding yourself. Your "criticism" does not touch me, because none of it has any relation to reality.

      Well actually it does. So the question is whether you don't know that this is what happens in the industry or whether - and this is perfectly valid - your definition of "coding" is more synonymous with software engineering than it is with writing code.

      So are you saying you don't think people in mathematics, physics, chemistry, design, visual effects, etc... write code? Or that you don't consider their writing of code to be "coding"?

    78. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      It is hilarious that even when I explicitly said dont bother throwing around fake credentials you lack the self control to prevent reflexively bragging about yourself with yet more baseless attempts to validate your opinion whilst at the same time criticizing the lack of a psuedonym. Your post really coudnt be much more ironic.

    79. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      Keep kidding yourself. Hint: "Bragging" looks quite a bit differently.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    80. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      Your assertions are baseless and nonsensical, it doesn't matter who you are it won't change that fact. If you think it will then who are you? And if you realize that it won't then why are you bothering to bring it up at all?

    81. Re:CS should _not_ be taught to teenagers by gweihir · · Score: 1

      You really do not get it? It is pretty simple: That you are fully clueless and at the same time completely unaware of it is one thing. (Look up the "Dunning-Kruger effect at some time.) The other is that you are _not_ the only person reading here (talk about extreme ego...)

      It is really no surprise that you are hiding even your pseudonym. But you seem to be unaware that this cowardly act removes all credibility (ego again), because nobody can look up what you said before and see your karma.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    82. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      My understanding is that one of the primary reasons cursive is still taught is because it forces children to develop and practice fine motor skills at right about the time that part of their brain is developing. It's not so much because cursive writing is going to be so useful to the kids later in life.

    83. Re:CS should _not_ be taught to teenagers by Anonymous Coward · · Score: 0

      My statements stand on their own. If you can make a convincing pragmatic argument then it doesn't matter who you are, obviously you cannot do this.

    84. Re:CS should _not_ be taught to teenagers by Cinnamon+Beige · · Score: 1

      I'd say that the base level of understanding I'd want everybody to have actually could be covered at a younger age and much more simply--teach basic logic, do it early, and do it well. You can stick to mathematical logic if you want. I'd have actual coding be in optional classes, and by HS I would actually insist that no language that isn't of serious use--let's go "Live, with a compiler for it written in it, significant large projects use it" for our criteria here--be offered once you get past an intro course.

      I'd also treat anything that restricts them to a walled garden or private playground like the plague carrier it is: If simplicity is the key desire, stick to either the classics or do something like use one of the open-source game engines and have everybody's goal be to get a ultra-short game done.

      I was part of a pick-up team whose sole goal was to get a visual novel done in our free time in a month: we started with zilch, not even the game engine picked out yet, but got it all the way through beta in that time period...and did it pretty comfortably. (End result was even fully voiced.) The actual coding is probably less important to have everybody know than the process--and I think overall a game probably will be generally a good pick for a small, fast, and fun project with a decent chance of success, especially if you encourage them to have the mindset that if their idea is for a big game...what they're doing now is the short demo to raise funds and interest with.

  5. A problem by fyngyrz · · Score: 1

    The main problem I think we face is that we appear to be very near the tipping point where "programmer" won't be a job -- it'll be the result of an expert system.

    These neural-like-systems are already picking the right thing out of an image, out of speech, out of all the go moves possible -- with training. How long do you really think it'll be before one of them is trained on a metric shit-ton of code, and then asked to pick the right code to solve the problem... and then succeed?

    Driving, lawyers, customer service, fast food... and more. Those are all looking very iffy right now, human-employment-wise. I think programming is a pretty solid target for exactly this kind of system already; the training is probably all that has to be managed. And yes, I write software, among other things. A lot of code (and particularly a lot of the code most people would learn to grasp in a high school environment) is really pretty simple, once you know how. So the only question is, how long before one of these systems knows how? And how far might they go?

    Smells like social and economic change to me. Really does.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:A problem by Anonymous Coward · · Score: 0

      The problem with this whole get-rid-of-the-programmer idea is that we still have (for example) technical writers for documentation even though everyone is supposed to be able to read and write these days.

      I've no doubt that some programming jobs will no longer be required, but I seriously doubt that we are going to reduce programming as a whole to the status of (for example) knowing how to write a book in Latin.

    2. Re:A problem by adonoman · · Score: 1

      You'll still need someone to define the solution set - what a correctly looking program behaves like. In photo recognition, the problem is fairly well defined already and the hard part is writing the output. For most programs though, the hard part is deciding what the problem really is? Which data do we need to capture? Who can access it? Which aggregates/reports do we care about? By the time you've answered all the relevant specification questions, you've basically solved the problem already without an expert system needed to get you the rest of the way. I guess you could argue, that that's what a compiler already is.

    3. Re: A problem by Anonymous Coward · · Score: 0

      I think a bigger problem is that companies don't want to pay for domestic pnogrammers. That alone makes it a waste of time.

    4. Re:A problem by Hognoxious · · Score: 2

      Fred Brooks said that half of the work is debugging the spec. If a school CS course just gets that across it'd be valuable for people who don't become programmers but have to work with them.

      It's amazing how utterly shite some people are at describing a problem they want solved.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    5. Re:A problem by fyngyrz · · Score: 1

      You'll still need someone to define the solution set

      Yes, that's what "training" would have to cover, among other things.

      By the time you've answered all the relevant specification questions

      Yes. But you only have to answer them once. Much (most, perhaps) programming is reinventing the wheel, or painting the rim a different color. The more you know, the easier that is, because you know the range of tools available and you can fit them to the problem, until you haven't done it in a while. Same thing will, I think, apply with LDNLS software generators: the more they know, the better they will get. But that whole "haven't done it in a while" thing isn't going to apply. it's just going to get better and better and better at the job. It won't get tired, it won't get distracted by the secretary's legs, it won't quit at 5pm, it won't need a vacation, it'll never get pregnant or have a sick kid, won’t need or want a cafeteria, a gym, breaks, a lunch hour, or stock options; it'll be immune to office romance, gossip, corporate espionage, complaints of mistreatment; have no interest in and will not require promotion, will never misuse company time, and will be replaceable the very moment something more effective is available without any consequences to social security charges, unemployment tithing, legal costs, or need for security personnel to walk the previous “employee” to the door.

      And it won't need a paycheck.

      Leaving the high schooler holding a rather empty bag. Probably the rest of us, too, but definitely entry level programmers.

      --
      I've fallen off your lawn, and I can't get up.
    6. Re: A problem by fyngyrz · · Score: 1

      I don't know if its a bigger problem, but it certainly is a problem; and particularly for entry-level stuff. And older workers.

      Someone should mod you up. I have points, but I can't; already posted with my ID above.

      --
      I've fallen off your lawn, and I can't get up.
    7. Re: A problem by fluffernutter · · Score: 1

      Yeah I think out of high school someone who knows how to program would get a job, but there is no career there. That's worse than not having jobs because it gets them to their 30's at which point they will have difficulty switching to a career that they wlll continue to be able to grow in.

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    8. Re:A problem by Dutch+Gun · · Score: 1

      When you find yourself continually "reinventing the wheel", as a programmer, you should start figuring out how to create a wheel factory. But that doesn't put you out of work, as you still need to work on the wheel factory, if not the individual wheels. It just means you can create a lot more wheels with a whole lot less effort. The programmers still will have plenty of work - they just work on higher-level abstractions, and are more productive. True, there may be adjustments in employment numbers, but keep in mind that this may be offset by increased demand from a larger world-wide userbase, as more and more people are reaping the benefits of technology.

      Besides, people have been promising programmer-free application construction for decades, and we're STILL relying on good ole third-generation languages for a large part of our infrastructure. The future, as it turns out, wasn't fancy fourth and fifth generation languages, but moderate language improvement and more frameworks or libraries to handle the common grunt-work. I don't think we're in imminent danger of losing all our programming jobs to AI-driven systems. It makes for a nice boogeyman, but low-cost outsourced labor is probably much more of an actual threat for most of us over the next few decades.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    9. Re:A problem by Dog-Cow · · Score: 1

      Programming requires an understanding of semantics, not just syntax. A neural net may be able to cobble together some statements that solve a particular instance of a problem, but will the solution generalize to all possible inputs? And how do you train a neural net to understand a problem stated in a natural language? Providing a problem description the neural net can understand is a form of programming too.

    10. Re:A problem by Anonymous Coward · · Score: 0

      I just think of the fun of fixing security bugs in your neural network. Instead of just fixing an overflow, now we have to re-teach the neural network to not let evil person see the stuff he shouldn't see, hope that the trigger isn't still hidden in the opaque depths of the network and then hope some more your security fix didn't actually break the main functionality completely.
      At which point I wonder if people who think neural networks will be useful for anything but special cases (basically things you don't really care about if the result is correct, because you already gave up on finding a 100% reliable way of doing it) actually ever thought things through.

    11. Re:A problem by david_thornley · · Score: 1

      What you're talking about is a higher-level programming language, and you're repeating "programming is dying" arguments that have been around at least as lon as I've been alive.

      The neural net can't pick out the right code to solve the problem without knowing what the problem is, and somebody's going to have to express the problem in some sort of detailed and unambiguous language, and now you've got a programming language that can't be used well except by a programmer. The only way to avoid this is to develop strong AI, and if we develop that the effects on programming as a profession are minor compared to everything else.

      Over time, lots of people have come up with ways to get programming done without programmers, such as the development of COBOL. None have worked, although over time there are more and more specialized tools to allow non-programmers to do the simpler stuff programmers do, freeing up the programmers to do more complicated and interesting things.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  6. Start with Turing machine by Anonymous Coward · · Score: 2

    What's simpler than programming Turing machines? Start with zeros and ones and then introduce Gödel numberings for string computations. There are online Turing machine simulators. THAT's teaching computer science.

  7. No Wolfram.. by Anonymous Coward · · Score: 4, Insightful

    Wolfram should not be considered as a starting language worthy of being taught to entry-level students OR considered to be a mission-critical language until there's an open source version of it. As long as the language remains a monopoly, it is useless for all intents and purposes. Having finally transitioned to a fully open architecture for apps, what LOON wants to go back to the proprietary lock-in days? Next thing you know people will be trying to run their businesses with copy-protected diskettes and God help them when they wear out.

  8. First defense of the honor of Python? by shanen · · Score: 1

    Interesting topic, but my initial reaction is that they seem to approaching the topic sideways, focusing on some weird trivialities of the current implementations. Is there a label for a Hobson's choice with two options?

    There are lots of good first languages for programming, and the focus should be on the outcomes. Actually, that would probably mean that different first languages will help different kinds of students become better programmers, and the apparent premise of one and only one as a standard first language is already fatally flawed.

    My Subject: promised a defense of Python, but I'm not really qualified to give it... I like it and see it as a good first language, but I've been around for a long time and I've seen so many first languages come and mostly go over the years. Is anyone still starting with BASIC these days? I'm pretty sure that Fortran and Pascal have mostly faded into the mists of time, and I'm sure there were others that have faded so much I can't even remember their use as first languages.

    --
    Freedom = (Meaningful - Coerced) Choice != (Speech | Beer^2), and sad sock puppets' bad mods avail them naught.
    1. Re: First defense of the honor of Python? by Anonymous Coward · · Score: 0

      Yeah Python is the best first language.

    2. Re:First defense of the honor of Python? by Anonymous Coward · · Score: 0

      * PICO 8 is a virtual system powered by a subset of Lua. It's a neat, if odd, place to start game programming
      * Petit Computer and other similar software on the Nintendo 3DS helps you build programs (mostly games) in some flavor of Basic
      * Python is still a fantastic first language

      I think beginner courses for programming should focus on results first. Get the kids to a point where they are changing something on the screen in a meaningful way. They'll start forming connections on their own. Then you can sit back and accept questions, and/or move onto theory once everyone's figured out that changing a few lines can change the whole program.

      That's the problem with theory, though. It's a very dry topic, regardless of discipline, and it will only appeal to a small percentage of students. So going over the basic theory is a fine idea, then let it go. The kids who will become programmers will start asking questions and asking for resources after class. Hell they might even stay late to get more computer time in!

    3. Re:First defense of the honor of Python? by Zontar+The+Mindless · · Score: 1

      Anyone who thinks using a whitespace-significant language with young kids is a good idea has got to be out of his cotton-pickin' mind. (And obviously has never spent any time around kids.)

      --
      Il n'y a pas de Planet B.
    4. Re:First defense of the honor of Python? by Anonymous Coward · · Score: 0

      Actually, my choice of Python as a first language was informed by my years trying to grade C++ programs.

      One big problem is that people write programs that have the right spacing to do what they want, but aren't detaild enough to get the braces right. So they write programs that look like they should work and then can't figure out why they don't.

      Another big problem is that people write programs with the braces in the right places, but the spacing is al over the place. The programs work but are impossible to read.

      Python solves both problems by making it so that programs do what they look like they should do. If the program compiles then it works the way it looks like it should.

      dom

  9. Pascal, by chance? by El+Cubano · · Score: 1

    a new Advance Placement course "will be offered in more than 2,000 U.S. classrooms this fall...the largest course launch in the history of the AP exam."

    Are they still teaching Pascal for AP Comp Sci, by chance?

    Now, get off my lawn!

    Seriously, though, I don't remember anything that I learned my high school AP Comp Sci class (which taught Pascal), aside from discovering that I really enjoyed tinkering with computers to make them do different things.

    1. Re:Pascal, by chance? by jdschulteis · · Score: 1

      a new Advance Placement course "will be offered in more than 2,000 U.S. classrooms this fall...the largest course launch in the history of the AP exam."

      Are they still teaching Pascal for AP Comp Sci, by chance?

      AP Comp Sci replaced Pascal with C++ in 1998 and C++ with Java in 2004.

      ...and don't tell me to get off your lawn, kiddo--I graduated high school before AP Computer Science was even a thing.

  10. Wolfram scares big companies. by Anonymous Coward · · Score: 0

    It's too powerful, and paying for it doesn't end in the pockets of the big companies like Apple.

  11. Choose none of those languages by Morgaine · · Score: 5, Insightful

    "Would you be inclined to embrace Wolfram's approach, Apple's Swift Playgrounds, Microsoft TEALS' Java-centric AP CS curriculum, or something else (e.g., R, Tableau, Excel+VBA)?"

    Choose none of those named above, nor any other proprietary language or platform. It is quite incredible and irresponsible that someone would recommend bringing up children into a form of corporate mental slavery and proprietary dependency.

    Give your children freedom. There is no shortage of unencumbered free and open source programming languages that will serve their educational needs very well indeed. Once they are young adults armed with some knowledge and experience, they can choose their own proprietary chains if they so wish.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    1. Re:Choose none of those languages by chartreuse · · Score: 1, Interesting

      Fyi, Swift is open source (swift.org), and one of the most popular depositories on Github.

      I do like Swift, a lot, but perhaps introductory CS should start with something like Python for concepts and then move to Swift or whatever once performance becomes a factor.

    2. Re:Choose none of those languages by Anonymous Coward · · Score: 0

      Swift is open source. That doesn't make it a good candidate for teaching coding, but it does invalidate your specific argument.

    3. Re:Choose none of those languages by phantomfive · · Score: 2

      The Swift libraries that everyone uses are not open source, though.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Choose none of those languages by cant_get_a_good_nick · · Score: 1

      You've sent this message on a computer network with packet switching ideas invented by the US government, originally enacted between US government sponsored computers, over a corporate ISP, from a browser from another corporation.

      Realize that you're a part of society. Unless you want to go become a caveman and domesticate your own corn, you're standing on the shoulders of others. You need to use other people's work. You need to trust them. Or if you want to be pedantic, have faith. The slavery metaphor is a bit much.

  12. Slashdot questions by Areyoukiddingme · · Score: 5, Interesting

    I normally never answer Slashdot questions, but I feel the urge to answer this one.

    What would I teach? C.

    You heard me. C.

    As you may have guessed, I learned to ride a bicycle without ever having training wheels. The first language I learned was C. Kids should learn C. The ones that can't should never be programmers. The ones that can will be able to handle any high level language ever invented, including whatever wankery the Apples and Googles of the world come up with next. Teach them C. At the command line. All else is puffery.

    I also feel obliged to respond to the blithering idiocy of the Code.org CEO. Early elementary students? Wtf are you babbling about you drooling moron? Coding has prerequisites. A student who wishes to learn code must read and write at least one natural language well and must know not only arithmetic but also elementary algebra. A student's first coding class will teach Boolean algebra. The combination of those three things is what coding is. Written language combining Boolean logic with algebraic equations. If you're not doing that, you're not coding.

    1. Re:Slashdot questions by Anonymous Coward · · Score: 0

      Assembly, not C. Then scheme. Then C by writing a scheme interpreter.

    2. Re:Slashdot questions by Anonymous Coward · · Score: 1

      I actually would push for javascript. It is not as abstract. It is free. And students can see things actually happening on a web page. Most students are fairly familiar with web pages nowadays, so I wouldn't be concerned with that. If not javascript, then I would actually push for Pascal.

    3. Re:Slashdot questions by Anonymous Coward · · Score: 0

      You're right. If the students have trouble (or can't) reading and writing, then there's no point in teaching them to code. In addition, its not like the codes' comments could get any worse if it was written by students who can't read and write well.

    4. Re: Slashdot questions by Santana · · Score: 1

      Pharo Smalltalk is an even better experience.

      --
      The best way to predict the future is to invent it
    5. Re:Slashdot questions by Anonymous Coward · · Score: 3, Interesting

      What do you mean by "fairly familiar with web pages"?

      I and a bunch of my friends learned HTML in our teen years, in our spare time. We set up Angelfire, Tripod, and/or Geocities sites and learned to navigate the W3C standards to improve our sites. A lot of people in that generation are now full-blown web developers. What opportunities do today's kids have that are remotely close to that?

      Maybe I'm not hanging around the right people but I don't see that spark of creativity in today's kids. At least not with the Web. Kids can read enough to navigate a page. 99% of them don't know shit about HTTP, HTML, CSS, or the fabled Javascript. We have this cultural Dunning-Kruger pathology where we're assuming kids that came after us are more technically advanced and adept. The truth is they've simply learned how to *use*. They adapted quickly because a) they're children, they're proven to learn faster and b) if it's toylike and fun, it doesn't feel like learning, so they spend more time on it. Most systems and websites are becoming more locked down than they were in the 1990s and there's less opportunity to learn from the mainstream. Hence we have a generation of kids that use Netflix, Facebook, Twitch, Google, et al, but couldn't tell you the first thing about how they work. A large part of *why* they don't know stems from a lack of creative playgrounds. Being able to write my own website and publish it -- for free! -- was a novel and fun idea in the 1990s. It's not a big deal now, especially since bandwidth is high enough that you can just host from your own machine, hook up dynamic DNS and/or use VPN software like Hamachi to share your stuff. Amazon's services are free for a single node, iirc, which can be a good opportunity to learn programming, hosting, *and* server administration. How many kids do you see digging into things like that? By the time I was 20, I had dabbled in most of what I listed; and I've not done anything particularly special with it like some of my peers.

      Javascript is a poor language because it has a broken sense of objects, comparison, and even math. Its typing is weak, which encourages sloppy thinking (and thus sloppy code). Its object hierarchy is from prototypes, which look like functions to the untrained eye. $DEITY help you if you have a legitimate need for multiple inheritance. The cherry on top is the DOM, which is terrible and slightly different in every browser. Then there are the pros and cons of each JS engine. Oh, and you can't forget that it's supposed to be ECMAscript and has next to nothing in common with Java. Then there are superset languages/frameworks that pretty much everyone uses, like JQuery, Coffeescript, Typescript, and so on. You know it's a problem when most people aren't even using the core language.

      It's a mess created by people who decided to shove a round peg through a square hole. The language itself is full of pitfalls, poor truth tables, poor typing, and encourages sloppy thinking. I wouldn't recommend JS to even an experienced programmer.

    6. Re:Slashdot questions by bekeleven · · Score: 1

      You have completely missed the point of this entire discussion.

      Of course you don't think coding should be taught to children. You think coding begins at C. These are related.

      Boolean algebra? Coding isn't being taught in schools because they need elementary schoolers to build them a new email client. Coding is moving into the classroom because it's an effective way to teach logic and problem-solving. Coding can help teach concepts like algebra, even.

      I learned coding messing around with trivial, forgiving programs on simple interfaces. The first code I ever "wrote" was graphical building blocks in lego mindstorms. Later, I graduated to coding my calculator in its BASIC variant. I basically skidded into "big boy" programming off the inertia of trial and error with loops until I figured out what I was supposed to be doing. Me and my friends had optimization competitions. We built games. We started long before we knew algebra or boolean logic... formally, at least. I've heard plenty similar stories on this website.

      Here you go. This is how to teach a child to code: https://lightbot.com/

    7. Re:Slashdot questions by AmiMoJo · · Score: 1

      There is value in leaning to code being becoming a proficient programmer and doing it as a career. It teaches logical thinking and problem solving.

      So we should start with something easy, to teach those skills, rather than worrying too much about making great future developers. A lot of great devs started out on BASIC, remember, myself included.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    8. Re:Slashdot questions by Anonymous Coward · · Score: 0

      So you don't understand prototyping. And you don't know the difference between JS and DOM. Nor do you understand the difference between spec and implementation. Oh, and you're pissed off because it's not Java.

      Anything else?

    9. Re:Slashdot questions by drinkypoo · · Score: 1

      I think we should start with a scripting language, because even people who will never be good programmers can get something out of scripting.

      I started with Logo, though, and that was bloody useless. So I also think they need to use a language people actually use for stuff. Teaching languages are fucking brain-damaged. What a waste of time.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Slashdot questions by Nemyst · · Score: 2

      Fuck no. Teaching C would be teaching a whole bunch of bad habits, antiquated programming designs, very heavy focus on low-level management when most software these days is high level abstraction, and it'd make the overwhelming majority of students see programming in a similar way as math: boring, hard and something they want to avoid as much as humanly possible.

      You're basically pulling the "We walked to school uphill both ways" stereotype here. No, your way of learning back in the day was not the best. Congratulations on doing it or whatever, but from a pedagogical perspective, it's fucking terrible. You want to ease students in, not drop them into a pit of snakes and tell them "have fun!" That might work for a limited subset of students, but it won't work for most.

      On top of that, I think coding at a young age should take advantage of the fact it's structured and expose students to various language paradigms. Don't just teach traditional imperative programming, teach functional programming (which is what Mathematica is great for, or Haskell), teach logical programming (Prolog), teach OOP, teach Lisp-style languages, teach as many different ways of thinking as possible. I've seen people like you with years of C experience struggle extremely hard to grasp functional programming because it's a completely different way of thinking. If you expose people to all of these paradigms at the same time, you avoid them ending up thinking "programming is always like this."

    11. Re:Slashdot questions by Anonymous Coward · · Score: 0

      I don't know what you're talking about. I started learning BASIC in 1st grade, at the same time I started learning to read. I certainly didn't know how to write or do algebra, but that didn't stop me from learning how to program.

      Obviously I learned to read whatever words I needed in my program and to do whatever kind of math I needed to make my program work, but that hardly makes such things prerequisites.

      Coding is mostly about breaking down problems into smaller steps and reasoning about them. For example, to make chocolate milk you must get the chocolate and the milk into a glass and stir them. Does it matter which you put in first? No, but you have to do both before you stir.

      As long as you can decompose an algorithm into its component steps, you can code, and that's what really matters.

      dom

    12. Re:Slashdot questions by strikethree · · Score: 1

      You heard me. C.

      I agree. BASIC enforces terrible logic skills. Scripting languages may be useful to teach logic, but ultimately, you need to deal with "the machine". C can be tedious, but it is far less tedious than Assembly... which does not encourage logic in the same way that BASIC does not.

      Kudos for you to go against the current on this one.

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
    13. Re:Slashdot questions by Areyoukiddingme · · Score: 1

      Coding is moving into the classroom because it's an effective way to teach logic and problem-solving.

      No it's not. It's about the most ass-backwards, crippled way to teach logic and problem-solving you can imagine.

      Logic and problem-solving have been around, taught, and used for thousands of years, maybe tens of thousands of years. They're best taught with puzzles and games and the simple exigencies of life.

      Coding is about making an incredibly limited, restricted, literal machine do what you want. It's about taking ideas and figuring out how to turn them and twist them just so, so you can wedge them into an electro-mechanical mechanism and get something other than Null Program back. We compare computers today to where they were 30 years ago and go completely gaga over how powerful they are. But it's an illusion. Yes, they can flip bits back and forth faster than ever, but the process of getting them to flip bits in the particular pattern we want is completely unchanged. People in this thread (and everywhere else on the Internet) tell me about marvelous things like Scheme and Haskell and Swift and Go and blah blah blah and at the end of the day...?

      At the end of the day, a sequence of instructions is loaded into the processor and the processor sends electrons here or there depending on the instructions. That's all. There's no magic, despite the very best efforts of compiler and interpreter authors to make it look like magic. The machine still loads and executes instructions, one after the other. If you want a particular pattern of bits at the end, you must give the machine the correct sequence of instructions.

      Why, by all that's holy, would you subject children to such an awful environment to teach them logic and problem-solving? Why would you advocate the use of the most unfriendly, unforgiving, unbending, unsympathetic, unreasonable, unyielding, unrelenting learning environment yet devised as a teaching tool for young minds? Children need room for error. Children need "good enough." Children need "almost." There's no room for any of that in a computer.

      Accuracy and precision come with time and practice, with maturity and experience, with encouragement and determination. Teach logic. Teach problem-solving. Teach reading, writing, and arithmetic. Teach algebra. And then, tell them, "Take all of things you have learned, everything you have practiced, everything you know, and fine it all down to the most excruciatingly detailed level you can imagine—and that's coding."

      Me and my friends had optimization competitions. We built games. We started long before we knew algebra or boolean logic... formally, at least.

      Sure. And that's probably the best way. But we were talking about formalities. Classroom instruction. If we insist on formal instruction, rather than letting curiosity take its course and only giving formal instruction to those children who naturally gravitate to the subject (an approach which is apparently unacceptable to our overlords), then at least give them a fighting chance.

  13. You should all get a D by Anonymous Coward · · Score: 0

    Teach the D language. It's the next big system language. Everything follows after that. Don't teach application programming before Algebra, Trigonometry, and Calculus. Establish a firm understanding of hardware and process flow. Then, dig into the details of structure and elegance.

  14. "coding" is not CS! by alexo · · Score: 4, Insightful

    Computer science is no more about computers than astronomy is about telescopes.
    -- Commonly attributed to Edsger Dijkstra.

    1. Re:"coding" is not CS! by Anonymous Coward · · Score: 0

      If that is a legitimate quote, it's one of the stupidest I've ever heard.
      A computer scientist that doesn't consider the physical hardware her data structures and algorithms will be executing on is a fucking terrible computer scientist.

    2. Re:"coding" is not CS! by Anonymous Coward · · Score: 0

      Judging by the gigabyte Solitaires and CPU hogging spirit-level apps on my phone, I'd say "terrible" is the new "standard" in CS.

    3. Re:"coding" is not CS! by Alomex · · Score: 1

      Actually, the quote is deeper than most people think. Go to any astronomy department and you will find faculty members whose specialty is telescope design.

      Dijkstra wasn't saying that computers are not CS, he was simply pointing out that they are not the ultimate end of what CS does, they are only a part of what CS is.

      CS is about processing information, presently we use computers and code to do that, hence look at any CS department and you'll find professors doing research on those subjects, among others. But a hundred years hence you might find that most of those computer specialists are now programming on quantum computers or atomic computers or DNA computers and writing "code" means a completely different thing but it still CS, just like astronomy is still astronomy whether you are using an optical lens looking at the moons of Jupiter in the 1500s or using LIGO to discover gravitational waves from a supernova collision in the 2000s.

    4. Re:"coding" is not CS! by johannesg · · Score: 1

      It is a lousy astronomer who does not know how to use a telescope, or who has never seen the stars.

    5. Re:"coding" is not CS! by Anonymous Coward · · Score: 0

      A computer scientist's main concern shouldn't be about the physical hardware. A computer scientist should be more concerned about the correctness and proof about the mathematical models of the system in question than the physical hardware where the application is to be implemented. As part of the problem analysis, the computer scientist should be able to trivially map the cost of each theoretical element of the system into the corresponding system implementation. It's not hard to attach numbers to data structures and algorithm analysis. It's much harder to prove that your system design is formally correct and also achieves the task in question.

    6. Re:"coding" is not CS! by Anonymous Coward · · Score: 0

      I like to describe CS as "the theory of computation": we study the mathematical foundations of computation itself, data and data structures, algorithms, problem analysis, logical reasoning etc and then apply that theory into implementing a system that transforms our information into a form we can accept. I'm happy to distinguish between theoretical computer science with applied computer science.

  15. Opposite is true by SuperKendall · · Score: 4, Insightful

    Most people do not need coding, will never be any good at it

    Actually that is very, very wrong. Most people DO need coding.

    Yes they are bad at it, but look how useful just knowing how to work excel is to tons of people.

    Also over time, look how many personal database products have come and gone... in their time, each of those was very, very useful to a lot of people that did no other programming.

    Each of those classes of products can do amazing things even in the hands of people who stumble around computer operating systems.

    That's why learning some basics of programming is a really good idea for everyone, because everyone really can benefit from knowing some simple programming concepts in conjunction with task-dedicated tools. Even just for hobby, or home finance use.

    Most people will not be doing programming with general purpose languages as we know it, but on the other hand those that are good at it may never discover they enjoy it if we don't try to teach it to everyone, and the value one good coder can bring is so substantial over a lifetime it's worth testing 1000 people to find - and in the meantime the other 1000 trying it out may learn basics that help them in other ways.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Opposite is true by Anonymous Coward · · Score: 0

      Actually that is very, very wrong. Most people DO need coding.

      Need it for what? There's no compelling need for everyone needing to learn programming. Most people would benefit more from learning medicine that would help safeguard their health.

      The only benefit from everyone learning programming is it increases the supply of programmers. More programmers leads to lower wages for programmers and higher profits for software companies. That's the only need this initiative is supporting.

      because everyone really can benefit from knowing some simple programming concepts in conjunction with task-dedicated tools. Even just for hobby, or home finance use.

      For those needs, you only need to know how use software, not create it. Just download or buy the software you need for the hobby or finance use, instead of creating it from scratch.

    2. Re:Opposite is true by khallow · · Score: 1

      Need it for what?

      SuperKendall answered that question:

      Yes they are bad at it, but look how useful just knowing how to work excel is to tons of people.

      Also over time, look how many personal database products have come and gone... in their time, each of those was very, very useful to a lot of people that did no other programming.

      Each of those classes of products can do amazing things even in the hands of people who stumble around computer operating systems.

      Maybe you should break tradition and read posts before asking stupid questions?

      For those needs, you only need to know how use software, not create it. Just download or buy the software you need for the hobby or finance use, instead of creating it from scratch.

      Woosh. It's worth noting, for example, that programming is just using software too. And programming usually doesn't create stuff from scratch (you use libraries and reuse your code, right?).

    3. Re:Opposite is true by 0100010001010011 · · Score: 1

      Need it for what? There's no compelling need for everyone needing to learn programming. Most people would benefit more from learning medicine that would help safeguard their health.

      How exactly do you think work gets done at most jobs? There are people that still manually sort Excel files because they don't know the sort function exists. Millions of jobs would benefit from a bit of scripting to cut out repetitive, error prone human tasks.

    4. Re:Opposite is true by Anonymous Coward · · Score: 0

      Also over time, look how many personal database products have come and gone... in their time, each of those was very, very useful to a lot of people that did no other programming.

      Those databases usually involve a very high-level declarative programming languages with a limited scope. That is, you specify what you want rather than how to get the job done. Coincidentally, your typical software's GUI is also declarative in the sense you just specify some goal/result and let the software take care of the details. So you and Kendall are simply acknowledging that regular users have no interest into delving into the depths of programming (despite having plenty of opportunity).

      They just want to use software to get stuff done. Just like many car drivers want to use cars to go from point A to B. They don't want to open the hood and tinker with the engine and the transmission.

      Woosh. It's worth noting, for example, that programming is just using software too.

      It's a lot more than just using software. It's involves learning the principles of software creation, and in-depth knowledge about computer hardware and OS architecture. Just because you know how to use a fork and knife does not mean you have same skillset as a surgeon.

    5. Re:Opposite is true by Deaddy · · Score: 1

      This is true. Also, even if people do not necessarily code later on, knowing a bit about how computers make things happens removes magical thinking, which is a good thing.

      Plus, the more people can code, the more people want to code, increasing the demand for systems where you can actually do some coding. Which is the only insurance against ever more locked and dumbed down systems.

    6. Re:Opposite is true by khallow · · Score: 1

      Those databases usually involve a very high-level declarative programming languages with a limited scope.

      And there we go. We were speaking of "some coding" after all.

      So you and Kendall are simply acknowledging that regular users have no interest into delving into the depths of programming (despite having plenty of opportunity).

      We're pointing out that regular users still have need for coding skills even if they have no interest in delving into the depths. There's two points that have been made so far. First, even a rudimentary coding skill allows one to do some good stuff with spreadsheets, databases, etc. Second, such a coding skill extends to other aspects of life, not just computers. Many things are structured in similar ways, such as procedures for cooking food or functional descriptions of job requirements.

      It's a lot more than just using software. It's involves learning the principles of software creation, and in-depth knowledge about computer hardware and OS architecture. Just because you know how to use a fork and knife does not mean you have same skillset as a surgeon.

      No, it's not. The car analogy here is learning about basics of car maintenance and what that funny looking stuff in the innards of your car are. Things go a lot smoother if you have some understanding of that (like why the oil needs to be changed) and the capability to change the tires. And if cars are something you'd be interested in, now you are exposed to cars and might be interested in going all the way and becoming a mechanic or an engineer.

    7. Re:Opposite is true by Anonymous Coward · · Score: 0

      Office already has VBA (along with a nice IDE), which has sort() among other things. If users would rather use Excel than VBA for sorting, it's a strong indicator that most common users have zero interest in learning programming languages.

    8. Re:Opposite is true by Anonymous Coward · · Score: 0

      Nope. Sorry. You look around your workplace and you see lots of people running Excel because you likely work in a white-collar environment. What about all the blue-collar jobs out there? How about retail? Service industry? What about childcare providers? Food prep? How about lawn maintenance workers? Kitchen staff? Garbage collectors? etc...

      Sure, there are circumstances where anyone in those positions *might* use Excel, but more than likely they're going to be using it the same way the majority of non-techies use it today: as a glorified list-making app.

      No, most people out there *don't* need to know how to program (in Excel or otherwise), and have no interest in it.

    9. Re:Opposite is true by Anonymous Coward · · Score: 0

      There are literally thousands of free tutorials to learn programming on the web. Heck, you don't even have to install the compiler, just use the web-hosted editor and compiler. Either way, both tools and tutorials are free.

      In spite of all that, only a few people are interested in learning programming. So people like you want to force other people to learn programming by making it a requirement of school curriculum. Can we say, hidden agenda?

    10. Re:Opposite is true by gweihir · · Score: 1

      Complete nonsense. Nobody needs coding outside of their jobs even today, and very few need it for doing their jobs. Also teaching people a tiny bit of coding is like teaching them to start a chainsaw: People will get hurt with that approach. Large enterprises see this routinely in practice when some semi-competent idiots start to automatize business processes with Excel, for example, with no review, no testing, no backup, no documentation and no emergency procedures. This does much, much more harm than good. And that is what you are advocating.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    11. Re:Opposite is true by khallow · · Score: 1

      There are literally thousands of free tutorials to learn programming on the web. Heck, you don't even have to install the compiler, just use the web-hosted editor and compiler. Either way, both tools and tutorials are free.

      OTOH, there are certain places where kids are required to be which can teach that stuff as well.

      In spite of all that, only a few people are interested in learning programming. So people like you want to force other people to learn programming by making it a requirement of school curriculum. Can we say, hidden agenda?

      There are also a few people interested in literacy or numeracy too. I don't mind forcing kids to learn stuff that they need.

    12. Re:Opposite is true by 0100010001010011 · · Score: 1

      And how many people know VBA exists? Perhaps if they had a coding course in high school.

    13. Re:Opposite is true by Anonymous Coward · · Score: 0

      There are literally hundreds of free linux distributions to use on the web. Heck, you don't even have to install the operating system, just use the Live CD/USB. Either way, both operating system and tutorials are free.

      In spite of all that, only a few people use desktop linux.

      Your argument works equally well as one for dismissing the effort of desktop linux.

      So people like you want to force other people to learn programming by making it a requirement of school curriculum. Can we say, hidden agenda?

      There are plenty of free resources for math, physics, chemistry, history, etc. but you want to force people to learn this by having is a requirement of the school curriculum. The agenda of people like you is so obvious, you don't want companies to hire foreign workers and you don't want anybody to train local workers so you can maintain artificial scarcity.

    14. Re:Opposite is true by everflow · · Score: 1

      ... it's worth testing 1000 people to find - and in the meantime the other 1000 trying it out may learn basics that help them in other ways.

      You mean basics like basic mathematics?

      *ducks*

  16. By the time that many learn something useful by Anonymous Coward · · Score: 0

    The value will be in the dirt and you can expect 15.00.

  17. free interactive online CS lessons by Anonymous Coward · · Score: 2, Informative

    At the "University of Waterloo" we like Python and JS... So we built [https://opencs.uwaterloo.ca] so students can learn programming... Seems some high schools are starting to use it.

    1. Re:free interactive online CS lessons by AJWM · · Score: 1

      At the "University of Waterloo" we like Python and JS...

      Maybe they do now, but back in the day they liked Fortran. Anyone remember WATFOR (and WATFIV)?

      There was also a Waterloo BASIC, and later (actually done by a company spun off from UW) Watcom C/C++.

      (Me, I learned ALGOL and APL more or less in parallel with each other. If you really want to learn programming, vs just doing some bit-bashing, learn at least two very dissimilar languages. It'll stretch your brain.)

      --
      -- Alastair
    2. Re: free interactive online CS lessons by Anonymous Coward · · Score: 0

      Yes, APL. Was learned by boy scouts in the early days of computing, over the summer. Also REXX, is good. Everything is a string in REXX.

    3. Re:free interactive online CS lessons by Anonymous Coward · · Score: 0

      +1 for your https://opencs.uwaterloo.ca/
      I was just about complaining why people are not able to use some real programming language; starting with simple ones, like python and javascript. No need for a specific platform, no need for subscriptions, etc. It is probably too straightforward for Code.org CEO, politicians and other disconnected beings.

      And if you need something for small kids, you can use Karel https://en.wikipedia.org/wiki/Karel_(programming_language) or Scratch https://en.wikipedia.org/wiki/Scratch_(programming_language)

  18. Rarely CS by Anonymous Coward · · Score: 0

    Coding (i.e., programming ) is rarely computer science. Most of the best programmers I know have no clue when it comes to actual computer science. The moment you tell them that the task at hand does not involve creating a website or a mobile app, they virtually crumble into a blubbering heap.

    1. Re:Rarely CS by johannesg · · Score: 1

      If "most of the best" programmers you know only know how to create websites and mobile apps, maybe you just don't know any good programmers... Which would also explain why they have no clue about CS.

    2. Re:Rarely CS by Anonymous Coward · · Score: 0

      Sigh... You miss the point completely. One can be an incredibly talented programmer and still be a literal CS newbie. You should know that.

  19. most of all pointers by Anonymous Coward · · Score: 0

    I really hope you are kidding. While it is true that C teaches some very important low level concepts... those can be taught on their own, without the mess that is C programming. Pointers alone would present a major challenge for kids, adults who know how to program in other languages have problems with pointers, much less kids. And there is the terrible API, especially IO, the obscure programming paradigms and illegible syntax....

    1. Re:most of all pointers by Areyoukiddingme · · Score: 1

      I really hope you are kidding. While it is true that C teaches some very important low level concepts... those can be taught on their own, without the mess that is C programming. Pointers alone would present a major challenge for kids, adults who know how to program in other languages have problems with pointers, much less kids.

      Not even a little bit. Pointers are precisely what I was thinking of when I recommended C. Pointers are fundamental to how the machine works. Learning them learns the machine. If you do not know how the machine works, you are a bad programmer.

      As for teaching abstract concepts... Nope. Humans learn by doing. There's a reason there are exercises at the end of every chapter in a math book. In order to understand the machine, you must program the machine, and you must do so in a language that does not insulate you from the machine. You can be told about stacks and heaps and the von Neumann architecture, but until you scribble all over your stack with an out of bounds write, you don't understand it. Are pointers hard? Yes. Difficulty is necessary for learning. Does C's almost total lack of a standard library mean you're going to reinvent the wheel a lot? Of course. Students always reinvent wheels. It's how to learn.

      I'm not saying that newly fledged programmers will be writing a lot of C. They won't be. I'm saying C is an appropriate, if not the appropriate teaching language. Their third class can be in Python. Their first and second classes should be in C.

    2. Re:most of all pointers by Bite+The+Pillow · · Score: 1

      You are talking about learning the fundamentals to provide a solid baseline to support a thorough understanding of how machines work, and thus how code actually runs.

      That's not the topic here, because it will prevent most people from learning. The opposite of the goal here.

      I agree that C and assembly should be studied and learned, but your goal is winnowing out anyone who doesn't yet have the spark of interest, or who hasn't developed the kind of logic processing you can teach through programming.

      Your plan will produce 99.9% non coders and .1% rock stars. Not the goal here.

    3. Re:most of all pointers by Anonymous Coward · · Score: 0

      A hello-world, blink-the-LED exercise could start off with machine language from the data sheet, so they know what the compiler is doing for them.
      But then C while they make their Arduinos do useful things. If they let the blue smoke out, $3/chip or board is a lot cheaper than the blown I/O boards for larger computers.

  20. Also, a serious user would need to pay for usage.. by Anonymous Coward · · Score: 2, Insightful

    Where do I sign up for my free Mac or iPad to use the Swift Playground? And of course, Windows and Linux are second class citizens for all Apple products and services so any kids without access to Apple products are treated like shit.

  21. This is not true. by HBI · · Score: 4, Insightful

    No they didn't. I was around at the time and it was like being a phlebotomist or a help desk technician today. Short vocational training and they let you loose to do your job. Because all three were rote tasks and required zero creativity.

    --
    HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
    1. Re:This is not true. by __aaclcg7560 · · Score: 2

      Because all three were rote tasks and required zero creativity.

      Help desk requires a significant amount of creativity when it comes to consoling hurt computers, fixing broken users and avoiding office politics.

    2. Re:This is not true. by HBI · · Score: 2

      By that standard, most jobs do. But not in the actual execution of the tasks you were hired for.

      --
      HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
    3. Re: This is not true. by Anonymous Coward · · Score: 0

      Found the helpdesk guy.

    4. Re: This is not true. by __aaclcg7560 · · Score: 1

      Found the helpdesk guy.

      Former help desk guy. I now do computer security. Still consoling hurt computers, fixing broken users, and staying out of office politics.

    5. Re: This is not true. by HBI · · Score: 1

      I worked at or ran help desks for 10 years - 87 to 96 or so. It was more creative then than now, that's for sure, but not very much so, and the people I hired for my jobs weren't all that creative, either.

      --
      HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
  22. To the tune of "What the World Needs Now" by HBI · · Score: 1

    (with apologies to Jackie DeShannon and Dionne Warwick...)

    What the world needs now, is more shitty code
    Lame developers throwing systems into safe mode
    What the world needs now, is more shitty code
    Javascript used to push out a fecal load

    Lord, we don't need any more PHP
    There is broken code, strewn enough, for us to fix
    There is Python, and VB, and Ruby shit
    Let's rewrite it all in Perl 6

    I'd be ok with your viewpoint if we could have them all develop in Logo.

    --
    HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
  23. CHESS by johnrpenner · · Score: 1

    the semantics of the languages change (C++, Swift, Java) — but the type of thinking you need to see the effect of logical interactions is best introduced by getting students playing CHESS. it offers the ability to teach logic independent of individual language semantics which i would see as fundamental.

    2cents
    jp

    1. Re:CHESS by Anonymous Coward · · Score: 0

      Only if you don't value all the (future) programmers who just hate chess (quite a few), which btw. is not a logic game at all (being any good at it requires crazy amounts of brainless rote memorization, logic doesn't really get you very far in it).

  24. Wolfram is the best choice for Education by mattmarlowe · · Score: 1

    The answer depends on your goal.

    If you want to teach kids so they can get a job, any popular coding language will do.
    If you want to teach kids what programming is about, any teaching focused language (such as pascal) might be appropriate.

    If you want to teach your kids how to incorporate math, electronics, robotics, and computing into the rest of their lives...than I think a computational computing focused language and tools such as Wolfram Framework and Mathematica makes sense. The problem will be that there are very few teachers or parents able to teach it properly.

    I'm homeschooling my kids and I've bought Mathematica for each of them. I'm reading the various howto guides and textbooks now to figure out how to teach it properly. We will be incorporating arduino type coding and using mathematica to supplement their math and science classes too.

    1. Re:Wolfram is the best choice for Education by __aaclcg7560 · · Score: 2

      If you want to teach kids so they can get a job, any vocational trade will do.

      FTFY - We need more plumbers, electricians, and carpenters.

    2. Re:Wolfram is the best choice for Education by Anonymous Coward · · Score: 0

      Based on salaries, it looks like we need more politicians and CEOs

  25. healthcare should be taught instead by Anonymous Coward · · Score: 0

    You forgot, it also helps make an argument that there are a shortage of American computer programmers.

    In the USA, without socialized medicine, everyone has to deal with human health. If health education can avoid seeing an expensive doctor, it is economically useful.

    I still think computer programming should be taught to some honors high school students.

    1. Re:healthcare should be taught instead by Anonymous Coward · · Score: 0

      You forgot, it also helps make an argument that there are a shortage of American computer programmers.

      It's not that there is a shortage of American computer programmers, it's that there is a shortage of good American computer programmers, so much so that they can get just as good quality for much cheaper by outsourcing.

      You don't want them to hire foreign workers and you don't want them to train local workers, it's pretty clear your agenda is just to maintain the overinflated salaries that have led to the ridiculous economic inflation in areas like Silicon Valley.

    2. Re: healthcare should be taught instead by Anonymous Coward · · Score: 0

      You seem to be part of a merry band around here screeding that their salaries are 'ridiculously inflated' when their salaries follow supply-demand law very well, telling me your a total idiot regarding economics. People who do not know the meaning of the words they use do not belong on Slashdot attacking the real nerds who know their profession inside and out.

    3. Re: healthcare should be taught instead by Anonymous Coward · · Score: 0

      So the high salaries are a result of high demand and low supply, hence the import of H1Bs is justified as is the need to train more local workers.

  26. Re:Also, a serious user would need to pay for usag by __aaclcg7560 · · Score: 1

    [...] any kids without access to Apple products are treated like shit.

    This is so true. I found in the 7th grade in 1983 that I came from a "poor" family because we didn't have an Apple ][ computer to do my homework and cable TV to watch MTV. My childhood was ruined. Damn Apple!

  27. Most kids can do "coding" by the end of Grade 5 by Anonymous Coward · · Score: 0

    Pig-Latin is coding. It has nothing to do with computers.

    Converting the thought about the colour Yellow into the train of symbols Y E L L O W is coding.

    Any moron can "code". Most do.

    I do not see what the huffpuff is about.

    Or is this about a bunch of morons who confuse the mechanical process of "coding" with "programming"? This is the same as confusing "using a hammer" with designing a structurally sound building.

    Teching kids to hammer nails into wood does not teach them how to build a building. Similarly teching them mechanical "coding" skills will not produce "programmers", just more useless mechanical robots who spew out endless reams of utter crap.

  28. Whatever happened to Logo ?... by Anonymous Coward · · Score: 0

    Hi -

    I remember when Logo (or "Turtle") was often used in education.

    Tom

  29. Ironic by Anonymous Coward · · Score: 0

    That Timmy Cook, who cannot Code anything much else English is demanding all children become his coding sex slaves.

    An that this the problem with Apple: a company of perverts.

  30. That's it! by Anonymous Coward · · Score: 0

    > Also, a serious user would need to pay for usage, making implementation inaccessible in most schools.

    This Wolfram dude looks just like the Wright Brothers...

  31. I don't know, turtles are kind of cool. by WarlockD · · Score: 1

    Maybe some kind of simple programming language elementary dealing with turtles? A command based system where you tell it to go 5 spaces, draw a line and turn and have the students predict where it goes?

    Seriously, high-school= C. Maybe stripped down without any of that pointer stuff or, make that a separate class, and that covers the basic syntax of every other major language out there. I learned fucking pascal off a Mac LC and it nearly failed me in programming 101 in college cause no one used that stuff. But elementary students who can't spell and you want to teach algebra? Go with Logo. I might not remember much about pascal (till recently at-least) but I sure as hell remember spending hours in front of an Apple 2, trying to draw little people, then running them over with my turtle.

    And YES. Strip out all that pointer stuff. To pass references, tell students to use &. I KNOW its not in the C spec, but anyone who as ever sat down and actually tried to teach someone programming realizes that people have problems with what a pointer is. I don't know why, but peoples eyes just glaze over. Its a complicated subject especially when you start throwing operator presidence in there like like *ptr++ or *(ptr-4). Those are just the basic examples. If you can get them to comprehend what a references are, then you are half way there.

    If you can just get them to sit down and program something because they wanted to and not needed to, then they will learn themselves. Getting to that point is what everyone is trying to do. Just don't try to teach people flavor-of-the-month languages.

  32. CS in schools by Anonymous Coward · · Score: 0

    Students should learn problem solving which involves logic. So, start with simple sequencing, then condition and then loop. Let us not worry about type, etc. Once this frame work is learned, then go back to add more ideas like type declaration – simple integer, real and strings. Give more control oriented problem with more nested loop, move on to arrays, and finally to pointers. It is also necessary for the students to know that different set of programming tools are needed to solve complex problems in Engineering, Science, Graphics, AI and so on. So start with simple BASIC language and then move on to C teach typing, arrays, pointers. At that stage most of the students even if not proficient will understand to find the right tools in each programming language. They will see that the logic is same in all the languages, but the syntax and library part will be more exhaustive in C, C++, Java etc. BASIC is free, so also C compiler and without paying to any one students will learn at their own pace. If they are interested they will develop simple games, others useful programs for themselves and their home. No need for corporation to get into this and make a huge profit. But who is going to listen to this.

  33. Re:Also, a serious user would need to pay for usag by marcomarrero · · Score: 1

    It's even worse, it won't run on Macs, and it's only for newer iOS devices running iOS 10.

    Well, there's always the educational Microsoft Small Basic (too bad is not C#) and QB64, a remake of QBasic/QuickBasic (even the IDE...) for those who want to see Gorilla.bas and Nibble.bas running in Windows, Linux, Mac and even Android.

  34. As easy as talking English by AlejandroTejadaC · · Score: 1

    Young english learners have the choice of learning Computer Programming using a Programing Language that closely resemble their native language: Livecode. It's Open source, Multi-platform (Linux, Windows, Mac, etc,) and Free for education and non-commercial uses. I just hope that, someday, people who speak other languages could have this choice too.

    1. Re:As easy as talking English by johannesg · · Score: 2

      I found the following example on wikipedia:

          repeat ten times

              put "Hello world at" && the long time & return after field 1

              wait 1 second

          end repeat

      So what does this magical natural language-based language do? It uses the same keywords you find in other languages ("repeat", "end repeat"), it still requires quotes around quoted text, it still uses weird symbols ("&&" and "&"), and no doubt there are still significant restrictions on language structure because otherwise it would not be parseable without ambiguity. In other words, it is like every other computer language out there, except perhaps slightly more verbose in places because most other computer languages have done away with sticking "the" in front of nouns.

    2. Re:As easy as talking English by Anonymous Coward · · Score: 0

      I like livecode, and like the fact that I can go back to a project a year later and for the most part, just read the code.

      I use it for 1 offs, and love its chunking ability (the ability to break text apart using "chunk" expressions)

      Suppose you have some *gag* comma delimited data in a file and you want to sum column 3.

      if there is a file "mydatafile.csv" then
      repeat for each line tLine in URL "file:mydatafile.csv"
      add item 3 of tline to tSum
      end repeat
      put tSum into field "theTotal"
      end if

      You could also open the file for read of course, or slurp the whole file (ala perl) like so-- put url "file:mydatafile.csv" into myVariable
      and then process the lines of the variable. (repeat for each also works with char, word, item, byte, trueword, etc)

      you can address things by char, byte, word, trueword, line, item..
      if your data is tab delmited, you can-- set the itemdelimiter to tab -- (the default is comma)..

      The thing is.. It is still programming. But the easy readability in mostly english makes the entry level pretty easy for beginners.

    3. Re:As easy as talking English by AlejandroTejadaC · · Score: 1

      Probably, the most important reason to learn first an english-like programming language as LiveCode) is that it shows that a young student could understand and apply many essential programming principles just using english language. https://en.wikipedia.org/wiki/...

    4. Re:As easy as talking English by AlejandroTejadaC · · Score: 1

      Today, I just remembered this post that addressed many of your concerns. Please read this post in the forum page: "Why LiveCode - From an Educator's Viewpoint" http://forums.livecode.com/vie...

  35. Wolfram on Raspberry Pi by Anonymous Coward · · Score: 0

    I'm not sure what the big hoo-ha about the cost of the wolfram language is. It's free on the raspberry pi, and the raspberry pi can also handle all the other major programming languages that are likely to be taught. A pi+keyboard+mouse+screen is cheaper than a pc.

  36. Just use *ANY* BigCorp backed language! by Anonymous Coward · · Score: 0

    And get those porks flowing! Presto!

    (Ain't this a truly revolting show?)

    Dear USians -- yesterday I was on the streets railing against TTIP and CETA. This is *exactly* the kind of thing I was railing against: I *want* my government to be able to pass laws which make education, health and food as independent as practical from BigCorps. And the decisions are taken democratically, and not at a wine-and-dine soirée among some corrupt politicans and some self-apointed Atlases with an hypertrophied sense of entitlement (just because they -- or their parents -- have been ruthless assholes to have made a mountain of money they're not apt to lead in our society).

    Dear USians -- I love you all (well, nearly :^). Do come over to Europe. I'll be friendly to you, tell you directions whenever you feel lost, here and there I'll buy you a coffee. But I don't love at all the clusterfuck you've got yourselves into. We've been trying to emulate it here (badly, and with some lag) and the results have been... discouraging. We don't want more of it. We want less!

    You, as humans are still *warmly* welcome.

  37. The argument for VBA by Anonymous Coward · · Score: 0

    Not all teens will grow up to be developers - those that are so inclined will have the desire and motivation to learn multiple languages, rendering the choice for high school moot.

    Knowledge of VBA and Excel is invaluable in many companies, from small businesses to Fortune 100. and it's easy and quick to learn. Is it a great language for learning the fundamentals of computer science? No.... but it'll give the student an introduction to programming and an extremely valuable skill for almost any career.

  38. Python by globaljustin · · Score: 1

    Teach kids Python.

    It's what you use to make computers do what you want, especially for user-facing tasks.

    In 3 hours kids can go from knowing nothing about how code commands work to downloading all the pokemon art from a website with a simple .py program run from the terminal.

    --
    Thank you Dave Raggett
    1. Re:Python by pedz · · Score: 1

      Never saw the appeal to Python. Linux guys use it but I never understood why. How is any different, really, than Perl 5? And the biggest hit against Python is the two versions that still are prevalent today that don't work with each other. I can't remember: Python 2 and Python 3? Or is it 3 and 4. In any case, when I toyed with it, half the scripts worked with A and half worked with B. It was fairly frustrating for me and I'm a CS language nut.

  39. Teaching Languages are Idiotic by drinkypoo · · Score: 2

    No student should ever learn a language that they'll never use again, period. It is just a fat waste of time, when they could actually be learning a language. You don't get any additional skills by learning a teaching language, but odds are you will learn some bad habits.

    The Wolfram language fails this test pathetically, so anyone who suggests that we use it for teaching should come down off their ivory tower and see how the other half lives before making their arrogant pronouncements of superiority.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    1. Re:Teaching Languages are Idiotic by pedz · · Score: 1

      I agree mostly but Pascal offers an interesting exception. It was designed as a teaching language but, unfortunately, became rather wide spread. Perhaps that argues more for your point than against. I'm not sure.

  40. Why the new programming push? by pedz · · Score: 1

    I have a lot of various concerns. First, there is no shortage of programmers today. Their pay has remained relatively flat since 1995 or so when out source became the solution to all of U. S. industries woes. Sure, most of the employees are coming from other countries or being out sourced but having cheaper programming labor home grown may or may not help. If there is a glut, those people will be susceptible to abuses, low wages, and long hours.

    "writing a programming" is not the same as computer science or even "programming" as a skill. I'm frustrated where I work. I have a BS and MS in CS. Some of the people I work with don't even have a high school diploma, some have trade school backgrounds, a few have a random college degree. Yes, they can "write a program" but they create more problems than they solve because they don't have enough depth. Good quality maintainable code isn't written by someone who writes a program. Its done by someone who really cares about the craft. I'm not arguing that a degree makes the difference but it is a first indicator of the depth of a person's interest. Creating a new set of low trained people who can write a program or two but are not actually interested in the art and craft of programming isn't what the world needs.

    To that end, what the world of programming needs is a method of judging and grading the skill of a person who writes programs -- a management technique that works. Currently, the guy who talks the most gets the most promotions and usually they are the least talented. Tragically, this is also true for managers themselves.

    As far as which language, it doesn't make any difference at all. I started with TI programmable calculators. What is needed is a magic spark to create an interest in a person. Most people believe that that magic spark is "fun" but I'm very dubious about that belief as well. "fun" lasts for a weekend (ala Pokemon Go). The person needs to find it "interesting" -- somehow, someway. Making it "useful" to them is even better. I don't think a given language will spark a higher percentage of people than any other given language. A few will find GUI bullshit useful, some will find it fun. But some students actually are curious what three dimensional conic sections look like and don't care the least about GUI clicky things.

    What I'm finding a shortage of is basic diagnostic abilities... debugging methodologies. People today simply do not know how to narrow down and find where a problem is. They can not differentiate between problems and symptoms. They don't know to change only one thing at a time, keep careful notes, and methodically eliminate various sources of an issue until the real root cause of the issue is found. I'm not talking just about programming but basic life things like when a car or a smart phone acts up.

    Indeed, I would say that the current push for more people who can write a program is a perfect example of treating a symptom rather than fully understanding what the problem is. What exactly is the problem that will be solved when everyone can write a program or two?

    When I was in school, around 8th grade or so, everyone took an art class. Did that make us all artists? I would say not. Did that even create a basis where all of us can appreciate good art? I would say no to that as well.

  41. Education Should be FREE by Anonymous Coward · · Score: 1

    Free for Education:
    Total cost to school?
    Can kids download for FREE to their home PC/Laptop?

    Does Swift Playgrounds run on Linux or Android? [FREE for Education?]
    What type of Hardware is needed for Swift Playgrounds && How much does it cost? [$350/hardware?]

    How much does Rasberry Pi3 or Odroid cost? [Hardware && Software? $25 - $35?]
    1. What type of programming tools is available for kids?
    2. How do kids do extra credit/Homework, can they bring the Hardware Home, Download for Free, Run in emulator?
              What if my kid is more interested in CS class than FootBall? Do they have to wait til they go to school the next day for their CS class?
    3. Does Code.org looking for a FREE Solution for kids to learn or does it create HUGE dents in the school's budget?
    4. Is it possible for Schools to partner with Linux for a Cheaper Solutions for CS Classes? [Exampe: Red Hat, Suse, Ubuntu, Linux Foundation, etc]
    5. If Governments are deploying Linux, should Schools partner with Linux so kids can find a job after graduating?
    6. Is there another Organization that can provide a better solution in reducing pricing for Education like FREE.

  42. Programming means logic in a specific language by LynnwoodRooster · · Score: 1

    What is important is to teach how to create the algorithm, the logical steps, in the first place. Not the actual language that was used (C was just starting to get rolling when I was learning languages, and Pascal was huge). Teach algebra and geometry. Teach trig. Use word problems. Have the student learn how to take a stated problem, break it down to steps needed to solve, and then implement the solution in any language - even pseudocode.

    It is this process that enables all programming; learning a specific language or toolset is irrelevant. Learn how to think logically, to analyze a problem, and how to create a flow for the problem is what matters. And that can be done with simple high school algebra, geometry, and trig.

    --
    Browsing at +1 - no ACs, I ignore their posts. So refreshing!
  43. None of the above by Anonymous Coward · · Score: 0

    Not everyone needs to code, but at some level everyone need to do data analysis and presentation even if it just enough to understand that some politicians proposal is flawed from the start or that dates should be included when presenting past news (looking at you CNN and slashdot -- somehow a shooting from a year a go is related link for this post).

    Any language that supports recursive functions and user defined data structures along with all the othe basic features like flow control should be fine for teaching CS. As far as tools, interactive programming notebooks seem much better than old style write-compile-execute-debug paradigm -- much easier to 1) see effects in isolation and 2) understand the importance of isolation