Computational thinking

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Computational thinking (CT) is the mental skill to apply fundamental concepts and reasoning, derived from computing and computer science, to solve problems in all areas.[1] In education, CT is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute.[2] It involves automation of processes, but also using computing to explore, analyze, and understand processes (natural and artificial).[3][4][5]

It may be hard to understand what constitutes computational thinking, and people may fall into the trap of considering just AI. AI is the most popular example of computational thinking, but does not represent the field entirely. Computational thinking started long before AI became popular with deep learning as the leading horse. As one example, mathematical programming, part of operations research, is computational thinking, developed during WW II, and traditionally, even a decade ago, used no AI.

One can see computational thinking with a thought experiment:

"Suppose you give your result, from your model, to someone. Do you believe the person would be able to tell the difference between your solution, from your algorithm, and a human? If not, this is computational thinking. It is a machine (i.e., an algorithm, a routine), doing human-thinking work."[6]

Notable psychologist and economist Daniel Kahneman and his colleagues have an interesting definition of algorithms: that all computational thinking are algorithms.[7]

Although nowadays these [machine learning] are the applications we have in mind when we hear the word algorithm, the term has a broader meaning. In one dictionary’s definition, an algorithm is a “process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” By this definition, simple models and other forms of mechanical judgment [in opposition to clinical judgement] we described in the previous chapter are algorithms, too.

Computational thinking, since it is present essentially everywhere, may be similar to data science: everyone does it, and it is hard to define without excluding any of its use cases.

History[edit]

The history of computational thinking as a concept dates back at least to the 1950s but most ideas are much older.[8][3] Computational thinking involves ideas like abstraction, data representation, and logically organizing data, which are also prevalent in other kinds of thinking, such as scientific thinking, engineering thinking, systems thinking, design thinking, model-based thinking, and the like.[9] Neither the idea nor the term are recent: Preceded by terms like algorithmizing, procedural thinking, algorithmic thinking, and computational literacy[3] by computing pioneers like Alan Perlis and Donald Knuth, the term computational thinking was first used by Seymour Papert in 1980[10] and again in 1996.[11] Computational thinking can be used to algorithmically solve complicated problems of scale, and is often used to realize large improvements in efficiency.[12]

The phrase computational thinking was brought to the forefront of the computer science education community in 2006 as a result of a Communications of the ACM essay on the subject by Jeannette Wing. The essay suggested that thinking computationally was a fundamental skill for everyone, not just computer scientists, and argued for the importance of integrating computational ideas into other subjects in school.[13] The essay also said that by learning computational thinking, children will be better in many everyday tasks—as examples, the essay gave packing one's backpack, finding one's lost mittens, and knowing when to stop renting and buying instead. The continuum of computational thinking questions in education ranges from K–9 computing for children to professional and continuing education, where the challenge is how to communicate deep principles, maxims, and ways of thinking between experts.[3]

For the first ten years computational thinking was a US-centered movement, and still today that early focus is seen in the field's research.[14] The field's most cited articles and most cited people were active in the early US CT wave, and the field's most active researcher networks are US-based.[14] Dominated by US and European researchers, it is unclear to what extent can the field's predominantly Western body of research literature cater to the needs of students in other cultural groups.[14]

Characteristics[edit]

The characteristics that define computational thinking are decomposition, pattern recognition / data representation, generalization/abstraction, and algorithms.[15][16] By decomposing a problem, identifying the variables involved using data representation, and creating algorithms, a generic solution results. The generic solution is a generalization or abstraction that can be used to solve a multitude of variations of the initial problem.

The "three As" Computational Thinking Process describes computational thinking as a set of three steps: abstraction, automation, and analysis.

Another characterization of computational thinking is the "three As" iterative process based on three stages:

  1. Abstraction: Problem formulation;
  2. Automation: Solution expression;
  3. Analysis: Solution execution and evaluation.[17]

Connection to the "four Cs"[edit]

The four Cs of 21st-century learning are communication, critical thinking, collaboration, and creativity. The fifth C could be computational thinking which entails the capability to resolve problems algorithmically and logically. It includes tools that produce models and visualize data.[18] Grover describes how computational thinking is applicable across subjects beyond science, technology, engineering, and mathematics (STEM) which include the social sciences and language arts.

Since its inception, the 4 Cs have gradually gained acceptance as important elements of many school syllabi. This development triggered a modification in platforms and directions such as inquiry, project-based, and more profound learning across all K–12 levels. Many countries have introduced computer thinking to all students. The United Kingdom has CT in its national curriculum since 2012. Singapore calls CT "national capability". Other nations like Australia, China, Korea, and New Zealand embarked on massive efforts to introduce computational thinking in schools.[19] In the United States, President Barack Obama created this program, Computer Science for All to empower this generation of students in America with the proper computer science proficiency required to flourish in a digital economy.[20] Computational thinking means thinking or solving problems like computer scientists. CT refers to thought processes required in understanding problems and formulating solutions. CT involves logic, assessment, patterns, automation, and generalization. Career readiness can be integrated into academic environments in multiple ways.[21]

The "algoRithms" part of CT has also been referred to as the "fourth R", where the others are Reading, wRiting, and aRithmetic.

In K–12 education[edit]

Similar to Seymour Papert, Alan Perlis, and Marvin Minsky before, Jeannette Wing envisioned computational thinking becoming an essential part of every child's education.[13] However, integrating computational thinking into the K–12 curriculum and computer science education has faced several challenges including the agreement on the definition of computational thinking,[22][23] how to assess children's development in it,[9] and how to distinguish it from other similar "thinking" like systems thinking, design thinking, and engineering thinking.[9] Currently, computational thinking is broadly defined as a set of cognitive skills and problem solving processes that include (but are not limited to) the following characteristics[23][24] (but there are arguments that few, if any, of them belong to computing specifically, instead of being principles in many fields of science and engineering[3][5])

  • Using abstractions and pattern recognition to represent the problem in new and different ways
  • Logically organizing and analyzing data
  • Breaking the problem down into smaller parts
  • Approaching the problem using programmatic thinking techniques such as iteration, symbolic representation, and logical operations
  • Reformulating the problem into a series of ordered steps (algorithmic thinking)
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
  • Generalizing this problem-solving process to a wide variety of problems

Current integration computational thinking into the K–12 curriculum comes in two forms: in computer science classes directly or through the use and measure of computational thinking techniques in other subjects. Teachers in Science, Technology, Engineering, and Mathematics (STEM) focused classrooms that include computational thinking, allow students to practice problem-solving skills such as trial and error.[25] Valerie Barr and Chris Stephenson describe computational thinking patterns across disciplines in a 2011 ACM Inroads article[22] However Conrad Wolfram has argued that computational thinking should be taught as a distinct subject.[26]

There are online institutions that provide a curriculum, and other related resources, to build and strengthen pre-college students with computational thinking, analysis and problem-solving.

Center for Computational Thinking[edit]

Carnegie Mellon University in Pittsburgh has a Center for Computational Thinking. The Center's major activity is conducting PROBEs or PROBlem-oriented Explorations. These PROBEs are experiments that apply novel computing concepts to problems to show the value of computational thinking. A PROBE experiment is generally a collaboration between a computer scientist and an expert in the field to be studied. The experiment typically runs for a year. In general, a PROBE will seek to find a solution for a broadly applicable problem and avoid narrowly focused issues. Some examples of PROBE experiments are optimal kidney transplant logistics and how to create drugs that do not breed drug-resistant viruses.[27]

Criticism[edit]

The concept of computational thinking has been criticized as too vague, as it's rarely made clear how it is different from other forms of thought.[8][28] The inclination among computer scientist to force computational solutions upon other fields has been called "computational chauvinism".[29] Some computer scientists worry about the promotion of computational thinking as a substitute for a broader computer science education, as computational thinking represents just one small part of the field.[30][9] Others worry that the emphasis on computational thinking encourages computer scientists to think too narrowly about the problems they can solve, thus avoiding the social, ethical and environmental implications of the technology they create.[31][8] In addition, as nearly all CT research is done in the US and Europe, it is not certain how well those educational ideas work in other cultural contexts.[14]

A 2019 paper argues that the term "computational thinking" (CT) should be used mainly as a shorthand to convey the educational value of computer science, hence the need of teaching it in school.[32] The strategic goal is to have computer science recognized in school as an autonomous scientific subject more than trying to identify "body of knowledge" or "assessment methods" for CT. Particularly important is to stress the fact that the scientific novelty associated with CT is the shift from the "problem solving" of mathematics to the "having problem solved" of computer science. Without the "effective agent", who automatically executes the instructions received to solve the problem, there would be no computer science, but just mathematics. Another criticism in the same paper is that focusing on "problem solving" is too narrow, since "solving a problem is just an instance of a situation where one wants to reach a specified goal". The paper therefore generalizes the original definitions by Cuny, Snyder, and Wing[33] and Aho[34] as follows: "Computational thinking is the thought processes involved in modeling a situation and specifying the ways an information-processing agent can effectively operate within it to reach an externally specified (set of) goal(s)."

Many definitions of CT describe it only at skill level because the momentum behind its growth comes from its promise to boost STEM education. And, the latest movement in STEM education is based on suggestions (by learning theories) that we teach students experts' habits of mind. So, whether it is computational thinking, scientific thinking, or engineering thinking, the motivation is the same and the challenge is also the same: teaching experts' habits of mind to novices is inherently problematic because of the prerequisite content knowledge and practice skills needed to engage them in the same thinking processes as the experts. Only when we link the experts' habits of mind to fundamental cognitive processes can we then narrow their skill-sets down to more basic competencies that can be taught to novices. There have been only a few studies that actually address the cognitive essence of CT. Among those, Yasar (Communications of ACM, Vol. 61, No. 7, July 2018) [35] describes CT as thinking that is generated/facilitated by a computational device, be it biological or electronic. Accordingly, everyone employs CT, not just computer scientists, and it can be improved via education and experience. Yasar founded the first undergraduate degree program in computational science in 1998; an NSF-supported program that fueled the advancement in computational thinking education long before the seminal paper by Wing in 2006. In 2003, he testified before the US Congress about the virtue of a computational approach to STEM education. In his work, he describes not only the cognitive essence of CT, but he also links it to both scientific thinking and engineering thinking.

See also[edit]

References[edit]

  1. ^ Wang, Paul S. From Computing to Computational Thinking. CRC Press, 2016. ISBN 1482217651
  2. ^ Wing, Jeannette (2014). "Computational Thinking Benefits Society". 40th Anniversary Blog of Social Issues in Computing.
  3. ^ a b c d e Denning, P.J. and Tedre, M. Computational Thinking. The MIT Press, 2019.
  4. ^ Wing, Jeannette M (28 October 2008). "Computational thinking and thinking about computing". Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences. 366 (1881): 3717–3725. doi:10.1098/rsta.2008.0118. ISSN 1364-503X. PMC 2696102. PMID 18672462.
  5. ^ a b Denning, Peter J.; Tedre, Matti (7 July 2021). "Computational Thinking: A Disciplinary Perspective". Informatics in Education. doi:10.15388/infedu.2021.21. ISSN 1648-5831.
  6. ^ Pires, JG. Computational Thinking: How computers think, decide and learn, when human limits start and computers champ. Vol.1. 2022.
  7. ^ Pires, JG. Computational Thinking: How computers think, decide and learn, when human limits start and computers champ. Vol.1. 2022.
  8. ^ a b c Tedre, Matti; Denning, Peter (2016). "The Long Quest for Computational Thinking" (PDF). Proceedings of the 16th Koli Calling Conference on Computing Education Research.
  9. ^ a b c d Denning, Peter J.; Tedre, Matti (2019). Computational thinking. Cambridge. ISBN 9780262353410. OCLC 1082364202.
  10. ^ Papert, Seymour. Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc., 1980.
  11. ^ Papert, Seymour (1996). "An exploration in the space of mathematics educations". International Journal of Computers for Mathematical Learning. 1. doi:10.1007/BF00191473. S2CID 46013234.
  12. ^ Computational thinking:
  13. ^ a b Wing, Jeanette M. (2006). "Computational thinking" (PDF). Communications of the ACM. 49 (3): 33–35. doi:10.1145/1118178.1118215. hdl:10818/29866. S2CID 1693513.
  14. ^ a b c d Saqr, Mohammed; Ng, Kwok; Oyelere, Solomon Sunday; Tedre, Matti (2 March 2021). "People, Ideas, Milestones: A Scientometric Study of Computational Thinking". ACM Transactions on Computing Education. 21 (3): 20:1–20:17. doi:10.1145/3445984.
  15. ^ "Introduction to computational thinking". BBC Bitesize. Retrieved 25 November 2015.
  16. ^ "Exploring Computational Thinking". Google for Education. Retrieved 25 November 2015.
  17. ^ Repenning, Alexander (4 September 2016). "Computational Thinking Tools". IEEE Symposium on Visual Languages and Human-Centric Computing. Retrieved 7 April 2021.{{cite news}}: CS1 maint: url-status (link)
  18. ^ Grover, Shuchi (25 February 2018). "The 5th 'C' of 21st Century Skills? Try Computational Thinking (Not Coding)". EdSurge. Retrieved 25 February 2018.{{cite news}}: CS1 maint: url-status (link)
  19. ^ "The 5th 'C' of 21st Century Skills? Try Computational Thinking (Not Coding) – EdSurge News". EdSurge. 2 February 2018. Retrieved 11 June 2018.
  20. ^ "CSforALL". csforall.org. Retrieved 11 June 2018.
  21. ^ "Future-forward: How to incorporate the 5th 'C' of 21st Century learning". eSchool News. 2 October 2017. Retrieved 11 June 2018.
  22. ^ a b Barr, Valerie; Stephenson, Chris (2011). "Bringing computational thinking to K–12: what is Involved and what is the role of the computer science education community?". ACM Inroads. 2. doi:10.1145/1929887.1929905. S2CID 207184749.
  23. ^ a b Grover, Shuchi; Pea, Roy (2013). "Computational Thinking in K–12 A Review of the State of the Field". Educational Researcher. 42. doi:10.3102/0013189x12463051. S2CID 145509282.
  24. ^ Stephenson, Chris; Valerie Barr (May 2011). "Defining Computational Thinking for K–12". CSTA Voice. 7 (2): 3–4. ISSN 1555-2128. CT is a problem solving process...
  25. ^ Barr, David; Harrison, John; Leslie, Conery (1 March 2011). "Computational Thinking: A Digital Age Skill for Everyone". Learning & Leading with Technology. 38 (6): 20–23. ISSN 0278-9175.
  26. ^ Wolfram, Conrad. "Computational thinking is the code to success". The Times Educational Supplement.
  27. ^ "PROBE Experiments". www.cs.cmu.edu.
  28. ^ Jones, Elizabeth. "The Trouble with Computational Thinking" (PDF). ACM. Retrieved 30 November 2016.
  29. ^ Denning, Peter J.; Tedre, Matti; Yongpradit, Pat (2 February 2017). "Misconceptions about computer science". Communications of the ACM. 60 (3): 31–33. doi:10.1145/3041047. S2CID 411880.
  30. ^ Denning, Peter J. (1 June 2009). "Beyond computational thinking". Communications of the ACM. 52 (6): 28. doi:10.1145/1516046.1516054. hdl:10945/35494. S2CID 215746950.
  31. ^ Easterbrook, Steve (2014). "From Computational Thinking to Systems Thinking: A conceptual toolkit for sustainability computing". Proceedings of the 2nd International Conference ICT for Sustainability. doi:10.2991/ict4s-14.2014.28. ISBN 978-94-62520-22-6.
  32. ^ Nardelli, Enrico (February 2019). "Do we really need Computational Thinking?". Communications of the ACM. 62 (2): 32–35. doi:10.1145/3231587.
  33. ^ Wing, Jeannette M. (March 2011). "Research Notebook: Computational Thinking—What and Why?". The LINK. The Magazine of Carnegie Mellon University's School of Computer Science. Carnegie Mellon University, School of Computer Science. Retrieved 1 March 2019.
  34. ^ Aho, Alfred V. (January 2011). "Computation and computational thinking". Ubiquity. 2011 (January). doi:10.1145/1922681.1922682.
  35. ^ Yasar, Osman (1 July 2018). "A New Perspective on Computational Thinking". Communications of the ACM. 61 (7): 33–39. doi:10.1145/3214354.

Further reading[edit]