
How to teach computational thinking - deepakkarki
https://backchannel.com/how-to-teach-computational-thinking-29e45c8a2664#.b4hdqhocd
======
thinline
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.

~~~
throwaway729
_> 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.

~~~
thr0waway1239
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.

~~~
programnature
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.

~~~
throwaway729
_> 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)

------
nv-vn
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.

~~~
ecfxixiuabhyqnm
> 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.

~~~
nv-vn
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.

------
lacker
_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"](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.

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

~~~
lacker
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](https://en.wikipedia.org/wiki/Computational_archaeology)

------
edtechdev
If you want to teach computational thinking to kids, here are some much better
(and researched) resources:

[http://csunplugged.org/](http://csunplugged.org/)

[https://code.org/](https://code.org/)

[https://scratch.mit.edu/](https://scratch.mit.edu/)

and many others: [http://bit.ly/ortonacode](http://bit.ly/ortonacode)

I would avoid proprietary tools (like Wolfram or Microsoft/Apple code) and
avoid tools designed for professionals, not beginners (like java, python, and
the like), until they are ready for them and choose them on their own.

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

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

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

~~~
PostOnce
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.

~~~
thinline
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.

------
DrNuke
Still thinking that primary education should be some sort of Ancient Greece
curriculum and that applied subjects must only come at a later stage.

~~~
Pamar
Would you mind giving an example of such a curriculum?

~~~
DrNuke
First reference from the wiki here:
[https://en.wikipedia.org/wiki/Education_in_ancient_Greece](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.

------
ankurdhama
Real world problem -> Mathematical problem -> algorithm(computation) ->
Mathematical solution -> Real world solution.

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

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

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

[https://news.ycombinator.com/item?id=12468479](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".

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

~~~
larve
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.

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

------
amelius
I always wondered why Wolfram didn't choose a pure functional language, which
seems so much more in line with mathematical thinking.

------
giomasce
This is not about computational thinking. This is about Wolfram advertising.

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

~~~
copperx
I don't think everyone can be a mathematician, but I see the value in putting
Calculus in the core curriculum.

~~~
pzone
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.

------
vonnik
the usual plug for wolfram...

