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)?"

155 of 241 comments (clear)

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

    3. 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.
    4. 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"
    5. 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).

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

      Octave is an open-source Matlab, not Mathematica.

    7. 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
    8. Re:Mathematica is pay to play only by losfromla · · Score: 1

      Yeah, that is more correct

      --
      Only I can judge you.
  3. 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 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.

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

    9. 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.
    10. 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.

    11. 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
    12. 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."
    13. 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.
    14. 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.

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

    16. 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.
    17. 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.
    18. 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.

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

    20. 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});
    21. 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)

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

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

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

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

    26. 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.
    27. 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.
    28. 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.
    29. 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.
    30. 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.
    31. 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.
    32. 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.
    33. 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.
    34. 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.
    35. 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.

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

    37. 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});
    38. 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."
    39. 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.
    40. 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.

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

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

    43. 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.
    44. 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.
    45. 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.
    46. 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.
    47. 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.

    48. 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
    49. 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
    50. 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
    51. 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
    52. 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
    53. 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
    54. 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
    55. 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
    56. 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.
    57. 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.
    58. 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.
    59. 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"?

    60. 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.
    61. 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.
    62. 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.

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

    2. 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."
    3. 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.
    4. 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.
    5. 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.
    6. 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.
    7. 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.

    8. 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
  5. 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.

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

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

  9. 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 phantomfive · · Score: 2

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

      --
      "First they came for the slanderers and i said nothing."
    3. 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.

  10. 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: 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.

    2. 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
    3. 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.

    4. 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/

    5. 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
    6. 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.'"
    7. 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."

    8. 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
    9. 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.

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

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

  12. 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 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?).

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

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

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

    5. 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.
    6. 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.

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

    8. 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*

  13. 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
  14. 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.

  15. 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 __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.

    4. 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.
  16. 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.
  17. 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

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

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

  20. 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!

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

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

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

  24. 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 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/...

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

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

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

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

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

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

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

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

  32. 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!
  33. 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.

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

    Nailed it.

  35. 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
  36. Re: Code.org by exomondo · · Score: 1

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

  37. 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
  38. 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.

  39. 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
  40. 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.

  41. 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
  42. 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.