Hacker News new | past | comments | ask | show | jobs | submit login
Remaining Trouble Spots with Computational Thinking (acm.org)
44 points by memset on May 30, 2017 | hide | past | favorite | 16 comments



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.


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.


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.


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.


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.


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?


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.


> This article does not really address for the the biggest point: is there any reason not to teach children computational thinking?

I feel like the article addressed that point head-on with the paragraph below. If computational thinking benefits only future computer programmers, and does not benefit anyone else, then that is a reason not to teach computational thinking to all children, isn't it?

If this isn't addressing for you whether there is a reason not to, what would a reason not to teach computational thinking need to look like for you? Would it have to do active harm before it becomes a reason not to?

"The boldest claim of all is that computational thinking enhances general cognitive skills that will transfer to other domains where they will manifest as superior problem-solving skills. Many education researchers have searched for supporting evidence but have not found any. One of the most notable studies, by Pea and Kurland in 1984, found little evidence that learning programming in Logo helped students' math or general cognitive abilities. In 1997, Koschmann weighed in with more of the same doubts and debunked a new claim that learning programming is good for children just as learning Latin once was. (There was never any evidence that learning Latin helped children improve life skills.) Mark Guzdial reviewed all the evidence available by 2015 and reaffirmed there is no evidence to support the claim."


Is there any reason not to teach children religious 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.

Or, substitute for "religious" anything you dislike - "superstitious", "homeopathic", "racist", "left-wing", "right-wing". Or more fairly, as the article suggests, compare teaching "computational thinking" to teaching Latin. Clearly there is at least some reason you think "computational thinking" is worthwhile. What is it?

We cannot, after all, teach children everything. There is simply too much it is possible to learn.


I certainly learned such thinking in school - it's called studying literature. One must understand something to truly reject it.


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


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.


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.


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


Being able to roughly guess an underlying distribution by plotting it is huge. I'd imagine getting good at this from simple sampling would be even bigger.

On that note, anyone have good anki decks for recognising distributions? :)

Edit: I somehow lost the first paragraph I had here... Leaving the post, in case someone wants to answer the distribution question. But, apologies for the not sequitur to get to it. :(


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: