Maybe there’s more than one kind of Computational Thinking, but that makes research difficult
December 7, 2018 at 7:00 am 17 comments
Shuchi Grover has a nice post in Blog@CACM where she suggests that there is more than one kind of Computational Thinking, which tries to resolve some of the concerns about the term (some of which I discussed here):
It’s also clear to me that in order to help make better sense of CT, we must acknowledge and distinguish two views of CT for K-12 education that are defined and operationalized based on the context for teaching/learning/application. One is a view of CT as a thinking skill for CS classrooms, that includes programming and other CS practices with the goal of highlighting authentic disciplinary practices and higher-order thinking skills used in computer science. The other is CT as a thinking skill/problem-solving approach in non-CS settings—this is often about using programming to automate abstractions of phenomena in other domains or work with data with the goal of better understanding phenomena (including making predictions and understanding potential consequences of actions), innovating with computational representations, designing solutions that leverage computational power/tools, and engaging in sense making around data.
She says that their are two “views” of CT, but she does distinguish Wing’s original definition which most people don’t buy. So, it seems like there are three. (Kudos to Shuchi for pointing out that Seymour Papert actually uses the phrase “computational thinking” in Chapter 8 of Mindstorms — so cool!)
But I’m still wondering: Why do we have to call all of these things “computational thinking”? I get that there’s a lot of energy around the term, but it’s an overloaded term. Think about it from the perspective of any other science. If you discovered that a species of animal or bacteria you were studying was actually two species, you’d name them differently. In the 19th century, physicists thought that light traveled through a “luminiferous aether,” but now, nobody uses that term because we realized that such a thing didn’t exist. Maybe we as scientists should invent some new and more accurate terms instead of overloaded and confusing “computational thinking”? If we’re using “computational thinking” because it has marketing cachet with teachers and principals (even if the term isn’t useful to researchers), that makes it hard to have a science around computing education. Do we write about CT Type-1 vs CT Type-2?
Entry filed under: Uncategorized. Tags: computational thinking.
1.
Raul Miller | December 7, 2018 at 9:34 am
I don’t see two different definitions of “computational thinking” here, so much as one definition being applied in two different contexts.
2.
orcmid | December 7, 2018 at 10:45 am
That sounds like a valuable enquiry.
Peter Naur advanced a notion of programming as theory building. I suppose that might be akin to CT-2. I’ve been a little distrustful of the Naur conception of what programmers manage to accomplish, and Naur was not suggesting that this is a given self-conscious activity of programmers, but maybe arises in a programmer’s tacit understanding of the purpose a program is intended to satisfy..
Naur proposed that institution of theory-building as a practice was more important than the nuts-and-bolts of programming; I can’t argue with that. There is a companion insight into what it is valuable to document. I found this version of the Naur essay accompanied by some useful commentary: http://pages.cs.wisc.edu/~remzi/Naur.pdf
3.
orcmid | December 7, 2018 at 10:47 am
I should have said “cultivation of theory-building as a practice.”
4.
gasstationwithoutpumps | December 7, 2018 at 6:25 pm
This sounds like the distinction I made between “algorithmic thinking” and “computational thinking” in https://gasstationwithoutpumps.wordpress.com/2010/08/12/algorithmic-vs-computational-thinking/
5.
Mark L. Miller, Ph.D. | December 7, 2018 at 9:18 pm
Mark,
Thanks for your thoughtful blog series. I think it is a very important time to seek clarity on the term, “computational thinking.” Although I use it myself, as a sort of “catch-all” for the many metaphors and powerful ideas one gets from exposure to a computer culture, I am not sure that most people today use it to mean what Seymour intended. Many seem to think it means, learning to use the primitive control structures and variables of a language like Logo or Scratch.
Also, related terms, such as “design thinking,” “heuristic thinking,” and so on are used in sloppy ways, to the point where no one is able to clearly state whether and how much these terms overlap.
I do believe that the pressure to “market” computer science to society and to the education establishment has led to our fuzzy use of these terms. Not only science, but also practice would be better served if those of us working in the field were to come together and agree on the precise set of concepts, metaphors, and skills to which we refer by use of these terms. At the time of Mindstorms, Seymour also pointed out that the field of computation was in its infancy, and so our understanding of what it meant was certain to evolve. I fear he would be troubled by how many educators use his term, sloppily, today. If we develop rigorous statements of what children are learning, beyond learning to code — through access to malleable “objects with which to think” (which is a core tenet of constructionism), I believe we can do a better job of PD for CS educators and a better job of showing the value of CS for students whose goal is not to get a job at Google.
The term emerged in a period when “computational models of cognition and learning” were an area of strong research. Since then, we have all had to reckon with the role of social factors, situational factors, and more; but anthropomorphic metaphors are still important as we think about thinking and learn about learning.
Best, Mark
6.
socialstudiesscience | December 8, 2018 at 8:01 am
Reblogged this on Social Studies of Science.
7.
Robert R Gotwals | December 16, 2018 at 12:55 pm
How about: computer science, if what you are doing is programming, code validation and verification, etc., and computational science if you are using computing/math to model nature (defined VERY loosely). I’ve been a computational science educator for 35+ years, and I just don’t see anything of value-added (yet, but open-minded) in this new terminology.
8.
orcmid | December 16, 2018 at 8:55 pm
I had forgotten about this, and I stumbled over it while looking for something else:
Fred Gruenberger was very interested in recruitment and training of programmers around 1960 and how, at that time, people who became adept could come from practically any background. He also had a newsletter on “Popular Computing” that he sold the title of to a tech magazine in the early PC era..
Knuth has also remarked on the 2% of folks who seem to just get navigation of layers of abstraction, in his book “Things a Computer Scientist Rarely Talks About” on pp.11-13.
I don’t know what to make of this in terms of the idea of CS for all, and widespread exposure, although it drives me back to wanting to see how communities of practice are a better angle of approach. And also wonder what has changed about this since 1999 when Knuth made the observation that appears in his book, and maybe since 2012 when he remarked on it again.
9.
Mark Guzdial | December 17, 2018 at 9:28 am
Knuth later regretted that claim.
10.
orcmid | December 17, 2018 at 11:08 am
Be more specific please
11.
Robert R Gotwals | December 17, 2018 at 6:44 am
I too have two different operational descriptions of CT, one that pertains to the SCIENCE being studied (for example, computational chemistry) and one that pertains to the computer model being used/modified/created to study that problem. Each of the ISTE parameters — decomposition, abstraction, pattern recognition, algorithm design, and evaluation — can be applied to both the science and the model. I’m writing an article on this now.
12.
Robert R Gotwals | December 17, 2018 at 6:52 am
One OTHER concern about higher-order thinking skills, a laudable goal, is that the majority of high school kids have no foundational skills in areas such as computer science, or, to an even larger degree, computational science. Expecting a kid to demonstrate the higher order thinking skills of computational thinking is, in many ways, akin to handing a kid a violin and expecting him to demonstrate musicianship. MAYBE after several hundred scales have been practiced. Same with the CS/CT kid. If the CT “movement” encourages more kids to have a chance to practice their “scales”, then perhaps it’s a good thing, but, in many schools, we are a LONG way away from expecting any evidence of higher order skills. I’m explicitly teaching my kids — high school research students who are learning a variety of computational science tools — the ISTE CT skills to see if that has any value in terms of their understanding and ability to use these tools. We’ll see.
13.
orcmid | December 17, 2018 at 11:38 am
I notice that ISTE for Students is broader than the CS/CT competency, and Digital Citizenry is an interesting notion. I’ll look deeper into https://istestandardspd.org/product/digital-citizen/
Can you unpack this a little more: “I’m explicitly teaching my kids — high school research students who are learning a variety of computational science tools — the ISTE CT skills to see if that has any value in terms of their understanding and ability to use these tools. We’ll see.”
14.
orcmid | December 17, 2018 at 11:45 am
What is a “high school research student?” for example.
I confess willingness to believe that experiential approaches and practices may be important (just like learning scales and developing “muscle memory” and ear), as a precursor to grasping the distinctions of Computer Science (or maybe better, Software Engineering). I wonder where it is possible to observe such methods put into practice. I can’t get my head around it and doubt that I qualify as an educator.
15.
Robert R Gotwals | December 17, 2018 at 12:18 pm
Students at the pre-college level who are using the technologies, techniques and tools of computational science to study challenging problems in the sciences — life, physical, social, etc. Come to North Carolina to see this in action!
16.
Robert R Gotwals | December 17, 2018 at 11:49 am
Yes, I teach two “Research in Computational Science” classes, along with computational classes in chemistry, biology, medicine, nanotechnology, and humanities. For the two research groups, I explicitly taught them the components from ISTE (decomposition, abstraction, etc.) to see if it would inform their abilities to develop a research question, write an NSF-style proposal, conduct their research, and communicate their results. I have one group developing proposals at this time, and the other working on their projects. For BOTH groups, I expanded the application of ISTE CT components to have a science part (how does decomp/abstraction/etc. influence the understanding of the scientific question) and a computational part (how do these influence your model choice, modification, creation, understanding of resulting data, etc.). Hope that helps!
17.
orcmid | December 17, 2018 at 12:18 pm
I just ran into an appealing approach to “Design Thinking” and was happy to learn that it is people- and opportunity-based, not about user interfaces in software. The linked Harvard Business Review article is very interesting and possibly useful in devising CSE approaches.
https://twitter.com/i/web/status/1074710437755682824