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)?"
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)?"
everything else does. in public schools in USA
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.
What is code.org and why should I care what its CEO thinks? Who gives a shit?
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.
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.
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.
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 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.
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.
It's too powerful, and paying for it doesn't end in the pockets of the big companies like Apple.
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
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.
Teach the D language. It's the next big system language. Everything follows after that. Don't teach application programming before Algebra, Trigonometry, and Calculus. Establish a firm understanding of hardware and process flow. Then, dig into the details of structure and elegance.
Computer science is no more about computers than astronomy is about telescopes.
-- Commonly attributed to Edsger Dijkstra.
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
The value will be in the dirt and you can expect 15.00.
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.
Coding (i.e., programming ) is rarely computer science. Most of the best programmers I know have no clue when it comes to actual computer science. The moment you tell them that the task at hand does not involve creating a website or a mobile app, they virtually crumble into a blubbering heap.
I really hope you are kidding. While it is true that C teaches some very important low level concepts... those can be taught on their own, without the mess that is C programming. Pointers alone would present a major challenge for kids, adults who know how to program in other languages have problems with pointers, much less kids. And there is the terrible API, especially IO, the obscure programming paradigms and illegible syntax....
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.
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.
(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.
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 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.
You forgot, it also helps make an argument that there are a shortage of American computer programmers.
In the USA, without socialized medicine, everyone has to deal with human health. If health education can avoid seeing an expensive doctor, it is economically useful.
I still think computer programming should be taught to some honors high school students.
[...] 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!
Pig-Latin is coding. It has nothing to do with computers.
Converting the thought about the colour Yellow into the train of symbols Y E L L O W is coding.
Any moron can "code". Most do.
I do not see what the huffpuff is about.
Or is this about a bunch of morons who confuse the mechanical process of "coding" with "programming"? This is the same as confusing "using a hammer" with designing a structurally sound building.
Teching kids to hammer nails into wood does not teach them how to build a building. Similarly teching them mechanical "coding" skills will not produce "programmers", just more useless mechanical robots who spew out endless reams of utter crap.
Hi -
I remember when Logo (or "Turtle") was often used in education.
Tom
That Timmy Cook, who cannot Code anything much else English is demanding all children become his coding sex slaves.
An that this the problem with Apple: a company of perverts.
> Also, a serious user would need to pay for usage, making implementation inaccessible in most schools.
This Wolfram dude looks just like the Wright Brothers...
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.
Students should learn problem solving which involves logic. So, start with simple sequencing, then condition and then loop. Let us not worry about type, etc. Once this frame work is learned, then go back to add more ideas like type declaration – simple integer, real and strings. Give more control oriented problem with more nested loop, move on to arrays, and finally to pointers. It is also necessary for the students to know that different set of programming tools are needed to solve complex problems in Engineering, Science, Graphics, AI and so on. So start with simple BASIC language and then move on to C teach typing, arrays, pointers. At that stage most of the students even if not proficient will understand to find the right tools in each programming language. They will see that the logic is same in all the languages, but the syntax and library part will be more exhaustive in C, C++, Java etc. BASIC is free, so also C compiler and without paying to any one students will learn at their own pace. If they are interested they will develop simple games, others useful programs for themselves and their home. No need for corporation to get into this and make a huge profit. But who is going to listen to this.
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.
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.
I'm not sure what the big hoo-ha about the cost of the wolfram language is. It's free on the raspberry pi, and the raspberry pi can also handle all the other major programming languages that are likely to be taught. A pi+keyboard+mouse+screen is cheaper than a pc.
And get those porks flowing! Presto!
(Ain't this a truly revolting show?)
Dear USians -- yesterday I was on the streets railing against TTIP and CETA. This is *exactly* the kind of thing I was railing against: I *want* my government to be able to pass laws which make education, health and food as independent as practical from BigCorps. And the decisions are taken democratically, and not at a wine-and-dine soirée among some corrupt politicans and some self-apointed Atlases with an hypertrophied sense of entitlement (just because they -- or their parents -- have been ruthless assholes to have made a mountain of money they're not apt to lead in our society).
Dear USians -- I love you all (well, nearly :^). Do come over to Europe. I'll be friendly to you, tell you directions whenever you feel lost, here and there I'll buy you a coffee. But I don't love at all the clusterfuck you've got yourselves into. We've been trying to emulate it here (badly, and with some lag) and the results have been... discouraging. We don't want more of it. We want less!
You, as humans are still *warmly* welcome.
Not all teens will grow up to be developers - those that are so inclined will have the desire and motivation to learn multiple languages, rendering the choice for high school moot.
Knowledge of VBA and Excel is invaluable in many companies, from small businesses to Fortune 100. and it's easy and quick to learn. Is it a great language for learning the fundamentals of computer science? No.... but it'll give the student an introduction to programming and an extremely valuable skill for almost any career.
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
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.'"
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.
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.
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!
Not everyone needs to code, but at some level everyone need to do data analysis and presentation even if it just enough to understand that some politicians proposal is flawed from the start or that dates should be included when presenting past news (looking at you CNN and slashdot -- somehow a shooting from a year a go is related link for this post).
Any language that supports recursive functions and user defined data structures along with all the othe basic features like flow control should be fine for teaching CS. As far as tools, interactive programming notebooks seem much better than old style write-compile-execute-debug paradigm -- much easier to 1) see effects in isolation and 2) understand the importance of isolation