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

25 of 241 comments (clear)

  1. 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 Brett+Diamond · · Score: 2

      Octave is an open-source Matlab, not Mathematica.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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