43 comments

[ 3.1 ms ] story [ 95.0 ms ] thread
I never imagined how much focus and fascination society would place on computer science when I chose it as my major over a decade ago. There were under 5 CS majors in my graduating class of hundreds of students. This has me wondering about the future. What will be the next big thing with which we will see articles claiming

"Soandso is the first president to do X"[0]?

or "...X will be a fundamental skill—just like reading, writing, and arithmetic..."[1]

Are there any so-called fundamental skills left for us to discover?

[0]: https://www.whitehouse.gov/blog/2014/12/10/president-obama-f...

[1]: http://socialissues.cs.toronto.edu/index.html%3Fp=279.html

It's probably time for us to rediscover logic as a fundamental skill. But that's a prerequisite or corequisite to computational thinking.
Yes! Propositional logic and conditional/indirect proof strategies should be taught before any kinds of "proofs" are taught to students (I'm looking at you, trigonometry).
Right. It's briefly introduced in geometry (or used to be) in the typical US high school curriculum, but not thoroughly and not as a distinct concept from geometry. It deserves its own sequence of material, and it should be applied to multiple areas so students can see the value of it more easily.

When the only application is geometry, and they hate geometry, they won't care about the "tool" being used.

Aristotelian logic can and should be taught at the elementary school level. Bring back the Socratic method while we're at it! And Euclid's Elements! The Greeks contributed well to education.
Used to be taught in the 19th century and early 20th century, along with rhetoric and the classics.

I think we made a great mistake by getting rid of them.

No, the fundamental skill is the ability to convince other people that you have the fundamental skill.
I didn't say the, I said a. What you refer to would be an aspect of rhetoric, another fundamental skill.
Coming from a language that doesn't really have articles, I was wondering if I should use "the" or "a". I think I could use both, because it cannot be proven that there is only fundamental skill with that property, or that they cannot support each other.

Anyway, my comment was a social commentary - it doesn't seem that pure logic is really what ultimately matters in human society, sadly. That is, if some other people are using logic wrong, you will also gain if you use it wrong in order to convince them.

Although I would also say that empiricism is much more important to rationalism (logic). There are many ideas that seem very logical, yet they are very bad, because people intuitively misunderstand some aspect of reality in their model.

I reckon rationality/rational thinking, decision theory, bayesianism, being aware of cognitive biases inherent in the human brain, in a word lesswrongiansm.
(Tiny thin grey sans-serif font!? What the point? Why bother writing an article, why not just use lorem ipsum!? Do you hate my eyes?)

I think they're making a very important point, although the definition they give of "computational thinking" is woeful.

Try this bookmarklet: https://www.readability.com/bookmarklets It will allow you to read almost anything in the web.

Also you can use the "Article mode" of your favorite browser (like Firefox). But, I don't know why, it doesn't always appear.

Cheers! I usually hit just F12 and turn off the offending CSS rules.
(comment deleted)
(comment deleted)
Thinking is already computation. Computational is redundant.

We just need to incorporate what we've begun to understand through computer science into our own common sense.

This is the correct approach, except, it is the only approach and is and will happen anyway. It happened as we better understood objectivity and subjectivity, as we understood mathematics and logic, and as we understood science and factuality. With computers, it's abstractions and execution of languages, expressions of logic, etc. The beauty of it is it's more relevant to how we compute, so it's like understanding how we understand. And that's the field of AI.

Give kids a computer and things to build, and they will naturally learn from the experience. No need to bring up the term thinking, or science, or even computers. We think, we learn, we understand. Saying we need to somehow do these things is redundant. Encouraging more open source open hardware computers in classrooms is what we need to be doing.

> Thinking is already computation. Computational is redundant.

I don't think this is obviously true. At least superficially it isn't: the human brain doesn't work like a formal system, as far as we know. Most definitions of computational thinking I've read do not equate it to thinking.

But I think we're getting there. To say the brain doesn't work like a formal system and to say how the brain works cannot be formalized are two distinct statements. Natural language may not be a formal language, but the process of building natural language systems is that of formalizing how it works. And our progress is evidence.
I don't know if we're getting there. There is no evident natural progression to this conclusion. Maybe the brain just doesn't work in ways that can be formalized, and maybe it does. I don't think the evidence so far points unambiguously towards a model of the brain as a formal computing device. It may very well turn out to be a dead-end.

What is true, however, is that it's not redundant to speak of "computational thinking", because it's not been proven a synonym for thinking in general.

There's a very important distinction between computation your brain can do, and computation you can describe in words and communicate to other brains that then do operations that follow the same rules. With the former, the only way to verify, reproduce, or modify the thinking is to go to the brain that had that thought and think it again. With the latter, you can look at the verbal descriptions and can largely ignore which brain is thinking the thoughts.

That's the fundamental distinction. It's not that the thinking is more or less computational. It's that the thinking can be put down in words as a computation without great loss in fidelity.

> and computation you can describe in words and communicate to other brains

But we think in words. Thinking and speaking come from the same place, and when we are thinking, most of it is us talking to ourselves. It's our inner dialog. It's "communicating to other brains", where "other" is "our". The only difference really is who it's directed to, whether we've voiced it or wrote it down, and whether we self-censored some of it in the process.

> But we think in words.

Not everyone does this.

> The only difference really is who it's directed to, whether we've voiced it or wrote it down, and whether we self-censored some of it in the process.

That last part is the part that's key to computational thinking. What has been elided from your thoughts (expressed as an inner monologue, communicated via writing or voice to others)? Computational thinking requires you to be able to provide sufficient detail that a "computer" can repeat the process that you have performed, and potentially enough logical information that it can handle exceptional cases and situations. For a sufficiently advanced computer (read: intelligent and educated human), "Solve the equation for X" may be sufficient. For a program in C, you'll have to provide more detail. For a Mathematica program, it's about the same as communicating it to a human (depending on their level of education and the qualities of the equation, Mathematica may require more or less detail).

> Not everyone does this.

Yes, you do need to be literate. But if you are, and you think, what do you hear? And what did you just write, if not your thoughts? Except directed to me/HN after confirmed with yourself?

I would not use the term computational thinking for what you are describing, and I wouldn't consider natural languages and programming languages and mathematics all "languages of thought" either. Mathematics is formal. Programming languages are Turing Complete instruction sets with abstraction and other language features. Natural language is something entirely different. The only thing they all have in common is that they are expressed with symbols.

> Computational thinking requires you to be able to provide...

That part is just computation. I would not consider being able to duplicate instructions in C as a computational thinking goal. I would consider duplicating the instruments we have that back our thought processes in C that would generate thought processes within a machine as "computational thinking" or just "thinking" or "artificial intelligence". A computer solving a problem we can solve is not artificial intelligence. It's just intelligence copied.

I will admit though that we may be using some terms to mean slightly different things.

> > Not everyone does this.

> Yes, you do need to be literate.

At some level, I suppose. But there's a lot of thought that occurs without words, and the conversion into words when I'm writing or speaking happens so late in the process that is indistinguishable from the act of writing or speaking.

> But if you are, and you think, what do you hear?

If I hear anything at all, it's more like music than words. But usually, what I see in my mind's eye is more relevant than what I hear.

It actually took me a very long time to figure out that when people say "internal monologue" they aren't speaking metaphorically. It's not something I've ever experienced.

> And what did you just write, if not your thoughts?

It's more of a description of the relevant parts of my thoughts than my actual thoughts. Words feel like a crappy copy of thoughts to me.

When one speaks of visual thinking, one does not mean literal pictures either though, right? For me, when tackling a programming problem for example, I may see a data structure or some piece of architecture as a graph, without really seeing the pictorial representation of that graph that I'd draw on a paper. There's no scaling or positional geometry to speak of; merely connections. Was just wondering if this is similar to what others mean.
Yeah, that's representative of my experience. It feels visual, but not exactly in the same way as drawing to communicate--I just "know" what the parts mean instead of them being shaped in some meaningful way.
> > Not everyone does this.

> Yes, you do need to be literate.

At some level, I suppose. But there's a lot of thought that occurs without words, and the conversion into words when I'm writing or speaking happens so late in the process that is indistinguishable from the act of writing or speaking.

> But if you are, and you think, what do you hear?

If I hear anything at all, it's more like music than words. But usually, what I see in my mind's eye is more relevant than what I hear.

It actually took me a very long time to figure out that when people say "internal monologue" they aren't speaking metaphorically. It's not something I've ever experienced.

> And what did you just write, if not your thoughts?

It's more of a description of the relevant parts of my thoughts than my actual thoughts. Words feel like a crappy copy of thoughts to me.

Some people literally don't hear an inner monologue. It doesn't have anything to do with literacy. If you can speak you have the faculty of language to produce such a thing. But some people think in images and abstract sounds. When I program I rarely hear a monologue, I mostly visualize the structure of the program being formed. My internal monologue is primarily present when I'm in the act of writing or imagining a dialogue or speech I intend to take part in, acts specifically involving words. My driving trips don't involve a monologue, my mind is filled with images of where I'm going and a visual (sort of) image of the vehicles around me (situational awareness), and a graphical representation of the route as a totally not to scale map.

Look up the definition of computational thinking. It isn't AI.

> driving trips don't involve a monologue

You're not thinking when you're driving though. The term is highway hypnosis. When we know what we're doing, we become unconscious and unaware, granting us bandwidth to think of other things. When I drive I think of other things.

For the most part, I don't think we're referring to the same things with "thinking". If we were, we'd see we're contradicting a lot less.

> definition of computational thinking

Right. And disagreeing with this definition (or formulation) is where I started, so no surprise there. I would say the original article deviated from (or may have even been irrelevant with) the formal definition (or maybe not).

(edit: What I'm saying is, if you're thinking straight, it is already computational, so there is no need to make the distinction. I still stand by that statement after considering everything thoughtful posted here, by you and everyone else.)

You're not thinking when you're driving though. The term is highway hypnosis.

That's a thing to avoid because it's dangerous; it isn't the usual case.

That's not the point though.

Even just driving is "just doing it". Most driving is autopilot. Awareness is not necessarily "thinking". We don't deliberate/contemplate/philosophize while driving unless we're incompetent. And we can very much decide/simulate/execute/do without much thought. Thought helps, but those things themselves are not thinking. We have our gut, our instincts, our imagination, our intuitions, and our spurs of the moments, all which are used as opposites to "deliberate thought". Considering all computing the brain does as "thinking" undermines all of these differences.

It'd be easier if my use of the word was just wrong, but reviewing the definition of "computational thinking", they only refer to the deliberate kind also. If there was a better word than "thinking" for what I'm referring to, I'm sure "computational thinking" would adopt that expression also.

At the end of the day we're just nitpicking semantics, and there are better uses of our time.

The harder I'm thinking, the less sense my inner monologue seems to make. Even for fairly simple things -- other than reading -- it tends to be a jumble of half-articulated sentence fragments and images. When I'm thinking hard, there tend to be significant portions that I have no idea what to call them.

So the inner monologue clearly isn't how I think (what I use to think), but seems to be something more like samples from a debug trace or audit log.

We use words to describe our thoughts. This is different than "thinking in words" in subtle, yet important ways. There are ways of "just knowing", much like you "just know" that three times four is twelve, or where to put your hand to catch a thrown ball. Probably the most salient example is Eugene Gendlin's "focusing". You can likely also access many of these through various meditation disciplines.

There may also be a lot of personal variation in things. I know that I am very much not on the "verbal thinking" side of brain design space - to the point where thinking of things to say distracted my visual processing and made me practically incapable of doing eye contact in conversations.

Yes, to be more precise, the expression would be "we articulate our thoughts with words". Words are not equal to our thoughts, but they are the product, and the interface, and used to represent, and treated as if they are it. So we share our thoughts with words, not with "focusing" or "knowing". And we do this even with ourselves. Notes to self are in words. We may start with something else, but to be able to express whatever that "was" or "is" is where words come in.

But why words are important here is also because we are talking about computation. To reason, we need something to hold on to and reason with. We need to be able to move things around and then feed back into our minds or minds of others. This is the computation. And computation is done with abstractions. Words are all abstractions. And abstractions are constructed from experience. And that is how they all connect, and why words, even though they may just be words, can be asserted as true or not true. But the truth value of a statement can only be known by computation. Truth is the result of computation which requires abstraction.

We could make the distinction between intentional computation and computation done under the hood. Our brain does a lot of prep work before we even see anything. But for the most part, when we say "thinking" it is safe to say we are referring to the deliberate kind (or maybe not, and that is where we aren't quite meeting eye to eye). The deliberate kind will conclude with words to be shared and be computable.

Aside: from the sorts of internal experiences you seem to pay attention to, I'd be extraordinarily surprised if you enjoy or are any good at dancing.

>Notes to self are in words.

I've planned things without ever using words, even to myself. I've done things with only nonverbal thought driving my behavior. I have specific non-verbal handles for these thoughts, although obviously they are hard to communicate verbally. You don't need to be able to express them if you're capable of, you know, just doing it.

>To reason, we need something to hold on to and reason with.

You can do this with visualizations, as well as other abstract non-verbal structures. I can rotate shapes in my head, or non-verbally figure out a mathematical proof and then go back and fill in the verbal steps.

"Non-verbal thought" is fine, but that's not the opposite of what I mean by "thinking".

> I have specific non-verbal handles for these thoughts,

Right. But you have handles. Just assume by "words" I mean handles, and we're talking the same language. You may not like my choice of words, but the reason is that as long as we have handles, words are easy to come by. In fact, they're just convenient labels. "I don't label" is no substitute for "I don't think". But "I have nothing to label" is. By "non-verbal" you're not saying you have nothing to label. You just don't bother with names.

> just doing it.

Right. But that's intended also to mean "without thinking about it" and that's exactly how I was using the word "thinking".

I'm assuming you're considering the computation of dancing as a counterpoint to my statements regarding words, but if we are to go that route, I would consider the language dancers use. Different "moves" are clearly abstracted and used to convey various emotions and inferences. At this point we have the language of the dance. And most styles have a dictionary of moves. They then practice so that those moves become second nature, so that they can just do it, without thinking about it. But I would posit that the thinking is done during practice, so that it's all baked into the output which would be the performance.

I'm not good at dancing. You're right about that. (I do enjoy it though)

>> And that's the field of AI.

No that's more like classic psychology / neuroscience.

> Thinking is already computation. Computational is redundant.

There is a difference between computation being part of the underlying substrate of thought, and having thoughts formulated explicitly in terms of a computational framework. The article is advocating the second thing here (the question of whether the second thing is a necessary consequence of the first thing is an open question: neurons are also part of the substrate of thought—does that mean we will inevitably come to think in terms of neurons?)

Edit: thinking more about it though, I do believe the structure of our brains makes it inevitable that we will always need abstractions and to consider alternate problem/solution representations—but the emphasis on algorithms is more related to contemporary computing hardware than the structure of the human brain.

Literally the first sentence after the preamble is:

  I use the term “computational thinking” as shorthand for “thinking like a computer scientist.”
It would benefit society if people understood that people are not computers.

There are so many processes for humans that are based on assumptions that humans have large and perfect memory, that there is no cognitive overhead in task switching, and that humans can repeat the same task exactly over and over. On the other hand, I also see foolish people who try to automate processes designed for humans with computers, for example, manual entry of data into database.

Computers are any thing that computes. People are quite capable of computing. To restrict the concept to machines (and only certain classes) makes it difficult to talk about the fundamentals and models of computation.
See - that's exactly what I point out in my other comment. It's perfectly logical (or rational) to think of humans as computers, yet doing so in practice is a terrible idea. You're basically advocating a certain model because it is simple, disregarding that it is a bad model of reality. It's one of the reasons why so much of economics really sucks.