47 comments

[ 3.6 ms ] story [ 111 ms ] thread
I dunno. This seems a little like the "putting a GUI over the CLI" discussion.

> its intellectual core is about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them.

I think the thing to teach is logic. (Make that Logic with a capital "L.") It covers all the basics: clarity of thought, language and its hidden dangers, definitions, systematic thinking, order, etc. Studying Plato and Aristotle is a great place to start.

I’ve noticed an interesting trend. Pick any field X, from archeology to zoology. There either is now a “computational X” or there soon will be. And it’s widely viewed as the future of the field.

I was dubious about this particular example and searched for [computational zoology]. There's nothing really there, except for a Craig Thompson making a similar "X could be Zoology in Computational X" claim. Computational Zoology is certainly not viewed as the future of zoology.

https://www.google.com/search?q="computational+zoology"

Why make this precise claim without checking if it's true? Just an odd way to write an essay.

Overall this essay reads like a long, long, long laundry list of features of the Wolfram Language and the Many Wolfram-Branded Products With Many Features, rather than an explanation of "how to teach computational thinking". It's like I wrote an essay "How to use Google for Education", found a thousand educational pages on the internet, and wrote a story in which I googled each one.

My first reaction to it was "Oh, it's an infomercial."

Do you think we get Sun'n'Run if we order now?

Disclaimer: I work in bioinformatics

It's a bit of a weird thing to say that 'computational zoology' will be a field since zoology itself (and botany FWIW) has become 'computational zoology'. Instead of comparing the way an arm looks or counting the number of stamen to delineate species, you now use molecular markers (SNPs, SSRs, gene presence/absence) to distinguish species, and you do that using computers instead of your magnifying glass. A recent example would be that 'giraffes are 4 species' paper - traditional zoologists had them down as one species based no the way they look, but the computer (DNA analysis) says they're four different ones.

Biology is really shifting away from the lab to the computer - people who used to do 100% lab-based work now do 50% computer-based, 50% lab-based work (mileage may vary).

Hmm. I guess it's not an example that helps my point, then - even if it's not called "computational zoology", you're basically saying zoology is moving in that direction. Ah well.

"Computational archaeology" is a thing, but it doesn't seem like it's the future of archaeology. IANAA of course ;-) I'm just going off of https://en.wikipedia.org/wiki/Computational_archaeology

the usual plug for wolfram...
Real world problem -> Mathematical problem -> algorithm(computation) -> Mathematical solution -> Real world solution.

Teaching people only one part of this chain is just useless.

I might be in the minority here, but I don't think that 'thinking like a programmer' is something that everyone is capable of doing. I think there might be some kind of tyranny in trying to force it on everyone.
I don't think everyone can be a mathematician, but I see the value in putting Calculus in the core curriculum.
Calculus is a poor example. Most people don't get much of a benefit from a course in calculus. They would be much better served by a course in statistics or personal finance, or perhaps a computer science course as described in the article.
Tyranny, perhaps. But surely, you pity those whose math skills are so poor they are ripe for exploitation under capitalism.
Mandating these people learn how to program computers will help them how, exactly?

Teach personal finance if you want to help people avoid financial mistakes. Complement it with decent financial regulation. (Our current system does a pretty good job of protecting consumers overall. They constantly nip away at practices deemed unfair.) No calculus courses needed.

I think the author glosses over the issue of keywords. In order to be productive in the Wolfram Language (or any language), you need to build up an understanding of what operations it supports. There are thousands of such operations, neccesitating a method of looking up the correct operation for each task. And it's not always clear how to glue them together. What kid would think to type "GeoPlot" or "{n,20}" unprompted? In other words, people still need to build a mapping between their internal desires and valid syntax. We are still a long way from being able to compute in the language of thought.
There is an extremely well furnished documentation system, describing every option, and giving usually playful and interesting examples. I often take "mathematica" days where I just go through the help system finding nice examples and building up on them.
I can't help but feel that the Wolfram Language is less of a programming language and more of a DSL for querying a very precisely defined set of data. I think that the whole thing falls apart once you step outside the boundaries of the data they offer. In that sense, it doesn't seem very well suited for teaching computational thinking at all -- there's no logic involved in letting another person solve a problem for you. The examples show how computers can enrich the work of people in the future, but to me that's entirely different from computational thinking. What's going on here is little more than teaching kids how to use Google efficiently.
I think the google comparison is fair, but I feel like Wolfram (and let's be clear, this piece is basically a giant ad) is like an order of magnitude ahead in the search engine aspects, if the sub-field is not-web-page datasets.
Exactly! It's a huge development in terms of technology and usability, I just think it's largely mis-marketted.
> I can't help but feel that the Wolfram Language is less of a programming language and more of a DSL for querying a very precisely defined set of data.

If what you're thinking about is Entity and EntityValue, you can't be more wrong: the built-in data is so slow it's impossible to use, even Wolfram employee steer away from it when giving presentations. You clearly can't give a demo where returning a bunch of missing data takes several seconds.

If by 'data' you mean a certain library of algorithmic content, then you might be onto something.

Well, both here really. But the amounts of data normally showed in demos is a bit over the top. Showing me that you can color states on the map of the US in 3 lines of code is not impressive when you already have the map data set up in order to be colored. The interesting part of the problem is finding the boundaries and creating shapes to color using that. The algorithmic content also detracts from the examples showing programmatic thinking, but not to the same extent.
This is not about computational thinking. This is about Wolfram advertising.
Anything written by Stephen Wolfram is mostly about Stephen Wolfram.
I see there are lots of skeptics here. Well, as a developer with kids of 11 and 15 (who are not particularly attracted to the idea of programming, in general), I can say that the Mathematica environment/Wolfram Language is both fantastic and effective. So great that I'm willing to plug it despite not being on Wolfram's payroll.

After several years of trying to use this or that other language with the kids in an attempt to stir up some sort of longer term interest and to get them to begin thinking in a problem-solving way, the Wolfram Language is the only one that's managed to produce results and hold their interest.

Two of the most key features of the Wolfram Language, IMO, are the very high level of abstraction available through the many built-in functions and, as a result, the quick feedback given to the user. When I compare the reams of code that must be written in any other language to achieve only a fraction of what a Wolfram Language one-liner does, I cringe at the thought of trying to convince someone (who's point isn't to become a developer, but to simply find a solution to a problem) that they need to man-up and type a book before they can expect any appreciable results.

The book, An Elementary Introduction to the Wolfram Language, mentioned in the article, is also an amazing resource. It begins with no expectations of prior programming experience and progresses at a decent pace with captivating examples throughout.

So, yeah, I'd like an non-commercial (remember that there are free tiers and products) environment+language that's equal (in terms of being very suitable for kids up to domain experts) to what's available from Wolfram, but from what I've seen, there is nothing that comes close. Sure, people will point to the various notebook type environments out there, but these have got quite a ways to go before they reach the breadth and slickness of Wolfram's offerings.

(comment deleted)
> So, yeah, I'd like an non-commercial (remember that there are free tiers and products) environment+language that's equal

This will never happen I fear. And IMO it's not even a matter of interface issues -- environment, language, etc. -- although matching those would take a lot of effort as well.

But more importantly, I think a lot of people massively under-estimate the sheer number of best-in-class implementations of important algorithms that are locked up in Mathematica's source code. I try to avoid Mathematica whenever an alternative exists, but in a lot of cases there just isn't an alternative. Especially as you get closer to "real" mathematical capabilities.

I have heard something similar to this sentiment expressed many times. Can someone explain how this turned out to be the case? Especially considering, math is one of those subjects which will tremendously benefit from being unlocked from a paid software's source code.
Go read up on the history of the company. Wolfram knew what he wanted very early on and pursued it with relentless focus and drive.

Others have tried to catch up, but they can't match the output of the engine he built to power Mathematica's development.

Frankly, it seems strange to me that he's not considered a folk hero on HN.

Pursued it with relentless focus and drive

This is what separates successful from struggling.

Nah.

Many relentlessly focused and driven people have failed miserably, and many vague and sluggish people have succeeded beyond all expectation.

Take me, for instance. I waffled along one step ahead of destitution for thirty years and then got an amazing job without trying even slightly. Now, I'm on track to retire before I'm fifty. Everyone who knows me calls me lazy! What have I done? Why me? I just give generously to charity and keep my head down.

I've found a crucial skill for a happy life is to carefully avoid pointless effort.

Its an interesting question. One reason is Wolfram is extremely talented at language design, which is necessary to build an artifact of this size without self-immolating. Another is that it is a commercial company following a plan. A third is that few people have learned the lessons of Mathematica enough to apply them.
> One reason is Wolfram is extremely talented at language design

It's always a matter of taste when it comes to language design, but I'd have to disagree with this assessment ;-)

> which is necessary to build an artifact of this size without self-immolating

Well, that's certainly not the case. Plenty of huge software artifacts of very impressive quality have been built by non-language-designers.

> Another is that it is a commercial company following a plan

This is certainly true. Or rather, several plans, all of which intersect at common mathematical sub-questions. So then the entire company can leverage effort that's been poured into those components.

> A third is that few people have learned the lessons of Mathematica enough to apply them

Nah. I think the third reason is that Wolfram hires excellent hackers who are also excellent mathematicians. He hires a lot of them. And he puts them to work on the intersectional capabilities I mentioned above.

(Disclaimer: pure conjecture. I've never worked at Wolfram)

> Mathematical thinking is about formulating things so that one can handle them mathematically, when that’s possible. Computational thinking is a much bigger and broader story, because there are just a lot more things that can be handled computationally.

This is a completely lopsided statement. Computation(via some automaton) is a small subset of what mathematics deals with.

It is possible to deal with concepts and objects mathematically a lot more often than computationally.

There was some recent HN discussion on the limits of formal methods:

https://news.ycombinator.com/item?id=12468479

If we're willing to accept broken software some of the time we can do far more, and in practice this is how the vast majority of software is developed. In this context I think "mathematical" vs "computational" has the colloquial meaning of "proven" vs "empirically tested".

Still thinking that primary education should be some sort of Ancient Greece curriculum and that applied subjects must only come at a later stage.
Would you mind giving an example of such a curriculum?
First reference from the wiki here: https://en.wikipedia.org/wiki/Education_in_ancient_Greece . The idea is that a pupil must learn himself first, then his own world and finally something practical to make a living. Greece is for Westerners, though. I can imagine different communities in the world having their own way to license considerate and compassionate human beings before hard professionals.
The keyword "wolfram" appears 146 times in that page.
I always wondered why Wolfram didn't choose a pure functional language, which seems so much more in line with mathematical thinking.
And we all need to learn radio because its 1897 and radio is the future, or its 1940 and electronics are the future or whatever.

You don't need to know how a combustion engine or an electric motor work in order to operate a chainsaw, the tree falls down either way.

We have a society, an economy, and a civilization, other people do some of the work, and you do some. We don't need to, and can not know how it all works. Pay someone to do the stuff you don't know. That's how we got to the moon.

Why does everyone keep saying we all have to learn how to code and think like computers? We all have to live in human bodies, and I would wager the vast, vast majority of HN knows a lot more about their computer than their anatomy. No one goes around saying we all need to learn internal medicine and human anatomy, because the future is living in a human body.

If you don't know how anything works, all you can do is follow, and cannot separate misinformation from truth. It's funny you mention engines because it's widely known that auto mechanics will take advantage of the general public's ignorance of how their cars work in order to profit. The same goes for several other industries. Sometimes the corporations actively try to prevent their consumers from knowing too much. Maybe you're fine with that. Others aren't.

Computers have permeated almost every aspect of our lives. It makes great sense and empowerment to actually know how they work.

As the saying goes, "knowledge is power".

> As the saying goes, "knowledge is power".

As the paraphrase from a TV series goes, "power is power". Knowledge is only a leverage. You can't do sh&t about modern cars' overcomplicated design, at best you can complain and grumble.

On the contrary, if you know that modern cars are overly-complicated, you can choose to not buy one, and instead buy something more like a 1984 volkswagen bug.
OK, and how long would that work for you? Not to mention that you suddenly limit your options, sometimes to the point of them disappearing completely.

As a singular consumer you don't have that much power over manufacturers, even if you know the product inside out.

Yeah, the mechanic profits off of me not knowing my engine, and I profit off of him not knowing his computer, and in the end we all get along.

The pharma co is taking advantage of me because I don't know enough chemistry to mix that stuff up at home? Their profits are through the roof!

At some point you have to concede that one man with one life can't know everything, and focus on learning what you care about.

You can be a jack of all trades and master of none, in other words.

Maybe you didn't read the whole article to get Stephen's point that the Wolfram Language allows you to experiment with a very, very wide variety of subjects without requiring deep expertise (but of course allowing for that as well).

So your point is quite valid, one person can't hope to know everything. This is why it's great to find a tool that allows you to dive deeper into the things you do care about.

I've said it before: In two thousand years Wolfram will be remembered for being first to computerize thought, as we remember Democritus for being first to describe atomic theory.

I truly wish he weren't insufferable (I say this as one who has read his tome) because he deserves greater fame than he has. (But not as much as he thinks he does.)