Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Government Programming United States Apple

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

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)?"
This discussion has been archived. No new comments can be posted.

Code.org Disses Wolfram Language, Touts Apple's Swift Playgrounds

Comments Filter:
  • everything else does. in public schools in USA
  • by Anonymous Coward on Saturday September 17, 2016 @05:37PM (#52908879)

    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.

  • by gweihir ( 88907 ) on Saturday September 17, 2016 @05:46PM (#52908909)

    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.

    • by E-Rock ( 84950 )

      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.

    • by Fear the Clam ( 230933 ) on Saturday September 17, 2016 @06:18PM (#52909021)

      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.

      • by RobotRunAmok ( 595286 ) on Saturday September 17, 2016 @07:50PM (#52909283)
        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.
        • 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

          • > 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.
            • by gtall ( 79522 )

              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

          • 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 desk

      • 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.
        • by gweihir ( 88907 )

          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.

      • by Kjella ( 173770 )

        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

      • by gweihir ( 88907 )

        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.

    • Opposite is true (Score:5, Insightful)

      by SuperKendall ( 25149 ) on Saturday September 17, 2016 @06:25PM (#52909035)

      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.

      • Comment removed based on user account deletion
      • by gweihir ( 88907 )

        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

    • by fermion ( 181285 )
      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.

    • by murdocj ( 543661 )

      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.

      • by gweihir ( 88907 )

        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.

    • 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 under

      • 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.
        • by gweihir ( 88907 )

          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.

          • Well, if your point is that there are too many idiot programmers writing bad code, I agree with you there.
      • by gweihir ( 88907 )

        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 me

        • 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

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

      • by Dog-Cow ( 21281 )

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

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

    • You're not that special, sorry.

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

      • by gweihir ( 88907 )

        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.

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

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

  • 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 s

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

      • by fyngyrz ( 762201 )

        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 th

        • 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

    • by Dog-Cow ( 21281 )

      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.

  • by Anonymous Coward

    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.

  • No Wolfram.. (Score:4, Insightful)

    by Anonymous Coward on Saturday September 17, 2016 @06:00PM (#52908951)

    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.

  • 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

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

    • 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 [collegeboard.com] 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.

  • by Morgaine ( 4316 ) on Saturday September 17, 2016 @06:09PM (#52908989)

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

    • Re: (Score:2, Interesting)

      by chartreuse ( 16508 )

      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.

  • Slashdot questions (Score:5, Interesting)

    by Areyoukiddingme ( 1289470 ) on Saturday September 17, 2016 @06:15PM (#52909009)

    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.

    • Pharo Smalltalk is an even better experience.

    • by AmiMoJo ( 196126 )

      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.

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

    • by Nemyst ( 1383049 )
      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. C
  • by alexo ( 9335 ) on Saturday September 17, 2016 @06:23PM (#52909031) Journal

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

    • by Alomex ( 148003 )

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

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

  • by Anonymous Coward

    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.

    • by AJWM ( 19027 )

      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 [wikipedia.org])?

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

  • by Anonymous Coward

    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.

    • [...] 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!

  • 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

  • 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 the

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

  • 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 stu

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

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

  • 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 spec

Never test for an error condition you don't know how to handle. -- Steinbach

Working...