Computational Thinking PDF
Document Details
Uploaded by TerrificHydrogen
Jeannette M. Wing
Tags
Related
- Unit 2.1 Computational Thinking PDF
- Computational Thinking & Problem Solving (SE1101) Lecture 1
- Computational Thinking Problem Solving Techniques PDF
- Computer Science Textbook for Class XI (PDF)
- Intro to Computational Thinking and Problem Solving Unit-1 Part 1 PDF
- LU1 Introduction to Problem Solving PDF
Summary
This document discusses computational thinking, which is a method for approaching the formulation of problems and solutions, drawing on the concepts within computer science. It highlights the process of solving problems and designing systems by applying fundamental computer science concepts. Computational thinking requires understanding the limits and potential of computing.
Full Transcript
Viewpoint Jeannette M. Wing Computational Thinking It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use....
Viewpoint Jeannette M. Wing Computational Thinking It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use. omputational thinking cisely. Stating the difficulty of a problem accounts C builds on the power and limits of computing processes, whether they are exe- for the underlying power of the machine—the com- puting device that will run the solution. We must consider the machine’s instruction set, its resource cuted by a human or by a constraints, and its operating environment. machine. Computational In solving a problem efficiently,, we might further methods and models give us ask whether an approximate solution is good the courage to solve prob- enough, whether we can use randomization to our lems and design systems that no one of us would advantage, and whether false positives or false nega- be capable of tackling alone. Computational think- tives are allowed. Computational thinking is refor- ing confronts the riddle of machine intelligence: mulating a seemingly difficult problem into one we What can humans do better than computers? and know how to solve, perhaps by reduction, embed- What can computers do better than humans? Most ding, transformation, or simulation. fundamentally it addresses the question: What is Computational thinking is thinking recursively. It computable? Today, we know only parts of the is parallel processing. It is interpreting code as data answers to such questions. and data as code. It is type checking as the general- Computational thinking is a fundamental skill for ization of dimensional analysis. It is recognizing everyone, not just for computer scientists. To read- both the virtues and the dangers of aliasing, or giv- ing, writing, and arithmetic, we should add compu- ing someone or something more than one name. It tational thinking to every child’s analytical ability. is recognizing both the cost and power of indirect Just as the printing press facilitated the spread of the addressing and procedure call. It is judging a pro- three Rs, what is appropriately incestuous about this gram not just for correctness and efficiency but for vision is that computing and computers facilitate the aesthetics, and a system’s design for simplicity and spread of computational thinking. elegance. Computational thinking involves solving prob- Computational thinking is using abstraction and lems, designing systems, and understanding human decomposition when attacking a large complex task behavior, by drawing on the concepts fundamental or designing a large complex system. It is separation to computer science. Computational thinking of concerns. It is choosing an appropriate representa- includes a range of mental tools that reflect the tion for a problem or modeling the relevant aspects breadth of the field of computer science. of a problem to make it tractable. It is using invari- Having to solve a particular problem, we might ants to describe a system’s behavior succinctly and ask: How difficult is it to solve? and What’s the best declaratively. It is having the confidence we can LISA HANEY way to solve it? Computer science rests on solid the- safely use, modify, and influence a large complex oretical underpinnings to answer such questions pre- system without understanding its every detail. It is COMMUNICATIONS OF THE ACM March 2006/Vol. 49, No. 3 33 Viewpoint modularizing something in anticipation of multiple ulary; when nondeterminism and garbage collection users or prefetching and caching in anticipation of take on the meanings used by computer scientists; future use. and when trees are drawn upside down. Computational thinking is thinking in terms of We have witnessed the influence of computa- prevention, protection, and recovery from worst-case tional thinking on other disciplines. For example, scenarios through redundancy, damage containment, machine learning has transformed statistics. Statisti- and error correction. It is calling gridlock deadlock cal learning is being used for problems on a scale, in and contracts interfaces. It is learning to avoid race terms of both data size and dimension, unimagin- conditions when synchronizing meetings with one able only a few years ago. Statistics departments in another. all kinds of organizations are hiring computer scien- Computational thinking is using heuristic reason- tists. Schools of computer science are embracing ing to discover a solution. It is planning, learning, existing or starting up new statistics departments. and scheduling in the presence of uncertainty. It is Computer scientists’ recent interest in biology is search, search, and more search, resulting in a list of driven by their belief that biologists can benefit Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction. Web pages, a strategy for winning a game, or a coun- from computational thinking. Computer science’s terexample. Computational thinking is using massive contribution to biology goes beyond the ability to amounts of data to speed up computation. It is mak- search through vast amounts of sequence data look- ing trade-offs between time and space and between ing for patterns. The hope is that data structures processing power and storage capacity. and algorithms—our computational abstractions Consider these everyday examples: When your and methods—can represent the structure of pro- daughter goes to school in the morning, she puts in teins in ways that elucidate their function. Compu- her backpack the things she needs for the day; that’s tational biology is changing the way biologists prefetching and caching. When your son loses his think. Similarly, computational game theory is mittens, you suggest he retrace his steps; that’s back- changing the way economists think; nanocomput- tracking. At what point do you stop renting skis and ing, the way chemists think; and quantum comput- buy yourself a pair?; that’s online algorithms. Which ing, the way physicists think. line do you stand in at the supermarket?; that’s per- This kind of thinking will be part of the skill set formance modeling for multi-server systems. Why of not only other scientists but of everyone else. does your telephone still work during a power out- Ubiquitous computing is to today as computational age?; that’s independence of failure and redundancy thinking is to tomorrow. Ubiquitous computing was in design. How do Completely Automated Public yesterday’s dream that became today’s reality; com- Turing Test(s) to Tell Computers and Humans putational thinking is tomorrow’s reality. Apart, or CAPTCHAs, authenticate humans?; that’s exploiting the difficulty of solving hard AI problems WHAT IT IS, AND ISN’T to foil computing agents. Computer science is the study of computation— Computational thinking will have become what can be computed and how to compute it. ingrained in everyone’s lives when words like algo- Computational thinking thus has the following rithm and precondition are part of everyone’s vocab- characteristics: 34 March 2006/Vol. 49, No. 3 COMMUNICATIONS OF THE ACM Conceptualizing, not programming. Computer sci- Many people equate computer science with com- ence is not computer programming. Thinking puter programming. Some parents see only a narrow like a computer scientist means more than being range of job opportunities for their children who able to program a computer. It requires thinking major in computer science. Many people think the at multiple levels of abstraction; fundamental research in computer science is done Fundamental, not rote skill. A fundamental skill is and that only the engineering remains. Computa- something every human being must know to tional thinking is a grand vision to guide computer function in modern society. Rote means a science educators, researchers, and practitioners as we mechanical routine. Ironically, not until computer act to change society’s image of the field. We espe- science solves the AI Grand Challenge of making cially need to reach the pre-college audience, includ- computers think like humans will thinking be ing teachers, parents, and students, sending them rote; two main messages: A way that humans, not computers, think. Computa- tional thinking is a way humans solve problems; Intellectually challenging and engaging scientific prob- it is not trying to get humans to think like com- lems remain to be understood and solved. The prob- puters. Computers are dull and boring; humans lem domain and solution domain are limited only are clever and imaginative. We humans make by our own curiosity and creativity; and computers exciting. Equipped with computing One can major in computer science and do anything. devices, we use our cleverness to tackle problems One can major in English or mathematics and go we would not dare take on before the age of com- on to a multitude of different careers. Ditto com- puting and build systems with functionality lim- puter science. One can major in computer science ited only by our imaginations; and go on to a career in medicine, law, business, Complements and combines mathematical and engi- politics, any type of science or engineering, and neering thinking. Computer science inherently even the arts. draws on mathematical thinking, given that, like all sciences, its formal foundations rest on mathe- Professors of computer science should teach a matics. Computer science inherently draws on course called “Ways to Think Like a Computer Sci- engineering thinking, given that we build systems entist” to college freshmen, making it available to that interact with the real world. The constraints non-majors, not just to computer science majors. We of the underlying computing device force com- should expose pre-college students to computational puter scientists to think computationally, not just methods and models. Rather than bemoan the mathematically. Being free to build virtual worlds decline of interest in computer science or the decline enables us to engineer systems beyond the physi- in funding for research in computer science, we cal world; should look to inspire the public’s interest in the Ideas, not artifacts. It’s not just the software and intellectual adventure of the field. We’ll thus spread hardware artifacts we produce that will be physi- the joy, awe, and power of computer science, aiming cally present everywhere and touch our lives all to make computational thinking commonplace. c the time, it will be the computational concepts we use to approach and solve problems, manage Jeannette M. Wing ([email protected]) is the President’s our daily lives, and communicate and interact Professor of Computer Science in and head of the Computer Science with other people; and Department at Carnegie Mellon University, Pittsburgh, PA. For everyone, everywhere. Computational thinking will be a reality when it is so integral to human endeavors it disappears as an explicit philosophy. © 2006 ACM 0001-0782/06/0300 $5.00 COMMUNICATIONS OF THE ACM March 2006/Vol. 49, No. 3 35