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

3 of 241 comments (clear)

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