
Remaining Trouble Spots with Computational Thinking - memset
https://cacm.acm.org/magazines/2017/6/217742-remaining-trouble-spots-with-computational-thinking/fulltext
======
mannykannot
I am not convinced there is a distinct discipline of computational thinking -
all of the examples given seem to have antecedents that predate the practice
of using computational machines to solve problems. The more one argues that
computational thinking is generally useful, the less clear it becomes that
there is anything unique about it.

I would replace the three questions of the article with two others:

1) Is the teaching of computing a particularly useful way to teach thinking
skills, and if so, how can that be maximized?

2) How can we improve the use of general thinking skills in the practice of
software development?

With regard to the second issue, I think it is somewhat ironic that the
currently-dominant methodology for software development, agile methods,
started as a revolt against analytical methods - computational doing as
opposed to computational thinking, if you will.

------
mrdrozdov
I think it's worth considering data science as a discipline to teach
youngsters rather than computer science. It's quite visual at times, requiring
less abstract thinking, although does depend on important algorithmic
principles to process large amounts of data. Besides, data science is readily
applicable to many other fields including Econ, languages, history, certainly
math, but even art.

~~~
mannykannot
I agree that it should be taught, though I am not sure it requires any less
abstract thinking than computer science, depending on how deep you go.

~~~
mrdrozdov
This sounds like an argument that you can make for many fields. In data
science, certainly you can cover topics like clustering and PCA, which are
reasonably advanced, but straightforward to teach because they can be
visualized very clearly.

------
williamscales
This article does not really address for me the biggest point: is there any
reason not to teach children computational thinking? I would say there is no
such reason. We should teach children many ways of thinking so that they can
be versatile thinkers. I do not see how an argument beyond that point is
needed.

~~~
MarcScott
From the article:

> Finally, it is worth noting that educators have long promoted a large number
> of different kinds of thinking: engineering thinking, science thinking,
> economics thinking, systems thinking, logical thinking, rational thinking,
> network thinking, ethical thinking, design thinking, critical thinking, and
> more.

As a former teacher, which do I prioritise? There are a set number of hours in
a school day, and I still need to teach the basic facts such as:

glucose + oxygen --> carbon dioxide + water

and:

Bonjour == Hello

Why would I waste time teaching "Computational thinking" if it's unproven
whether or not it only actually benefits programmers?

~~~
williamscales
But that's the point! You don't need to teach glucose + oxygen. Why would you
waste time teaching "glucose + oxygen" when it's not proven to benefit anyone
but biologists and chemists? You just need to teach them to think in many ways
and they will figure the rest out. I believe a lot of the problems we have are
because we don't have enough faith in our children.

------
lacker
I don't understand why you would teach kids "computational thinking" instead
of just teaching them "programming".

~~~
dahart
Those two things are the same in the context of this article, computational
thinking is what you get when you learn to program. "Seymour Papert may have
been the first to use the term computational thinking in 1980, when in his
book Mindstorms he described a mental skill children develop from practicing
programming."

The author is questioning whether teaching programming really is good for
anyone besides future programmers.

~~~
MarcScott
This is not the case. Many believe that CT is a way of thinking that can be
completely separated from programming, and taught as an independent thinking
skill.

For instance, the article talks about the problems is assessing CT. There is
no such problem in assessing programming, just ask someone to solve a problem
using their preferred language.

~~~
dahart
(Edit I rewrote this comment considerably to try harder to see and address
your point of view, apologies if you read the first draft)

I understand your objection to my first sentence given that the premise of
these 'many people' you and the article are talking about is that
computational thinking is separable from programming. What I was trying to say
in response to the parent comment is that trying to teach programming instead
of teaching computational thinking perpetuates the unproven idea that everyone
should learn computational thinking slash programming skills. Programming is
one way to acquire computational thinking, so if computational thinking is
separable from programming, then teaching programming is a narrower more
specific approach toward the same goal. And the author questioned the goal.

OTOH, I see value in the comment I replied to - I prefer the idea of using a
term (programming skill) that people know what it means and both how to teach
and assess it. That comment may have been agreeing with the article author
that "computational thinking" too vague to be useful in practice.

Computational thinking is trying too hard to separate itself from programming.
We don't know they're separable, and we don't really know how to teach any
"thinking" per se anyway. We don't learn "physical thinking" or "language
thinking", we learn Physics and English, and (just like in CS) mostly by
example.

The whole reason there's a "problem" assessing computational thinking is that
it hasnt been shown to be an independent thinking skill. It hasn't been
successfully separated from programming. The only known ways to teach it is to
teach programming, and the only known ways to assess it is to assess
programming skill.

The quote in my first comment was straight out of the article, and came from
the person who ostensibly coined the term "computational thinking", and he
defined CT as the skill gained from programming. I'm not saying that
computational thinking is the practice of programming, what I'm saying is that
computational thinking is acquired mental skills from programming a lot. If
there's another way to learn computational thinking, someone needs to
demonstrate.

Solving a specific problem using your preferred language isn't what we're
talking about, that's not assessing programming skill in general. That would
be like suggesting you derive the quadratic formula once in order to assess
math skill. To assess programming skill, and to gauge computational thinking,
you would need to solve a variety of problems. You might have trouble trying
to do it in a single programming language, and it's tempting to think it
should be generalizable and you can remove the language part. But it is yet to
be shown that this can be done.

------
slyrus
I need to put one of those "deep earning neural networks" to work.

