Example: tourism industry

Carnegie Mellon School of Computer Science

COMMUNICATIONS OF THE ACMM arch 2006/Vol. 49, No. 333 Computational thinkingbuilds on the power andlimits of computingprocesses, whether they are exe-cuted by a human or by amachine. Computationalmethods and models give usthe courage to solve prob-lems and design systems that no one of us wouldbe capable of tackling alone. Computational think-ing confronts the riddle of machine intelligence:What can humans do better than computers? andWhat can computers do better than humans? Mostfundamentally it addresses the question: What iscomputable? Today, we know only parts of theanswers to such questions. Computational thinking is a fundamental skill foreveryone, not just for Computer scientists.

Created Date: 2/23/2006 11:52:46 AM

Tags:

  Computer, Sciences, Computer science

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Carnegie Mellon School of Computer Science

1 COMMUNICATIONS OF THE ACMM arch 2006/Vol. 49, No. 333 Computational thinkingbuilds on the power andlimits of computingprocesses, whether they are exe-cuted by a human or by amachine. Computationalmethods and models give usthe courage to solve prob-lems and design systems that no one of us wouldbe capable of tackling alone. Computational think-ing confronts the riddle of machine intelligence:What can humans do better than computers? andWhat can computers do better than humans? Mostfundamentally it addresses the question: What iscomputable? Today, we know only parts of theanswers to such questions. Computational thinking is a fundamental skill foreveryone, not just for Computer scientists.

2 To read-ing, writing, and arithmetic, we should add compu-tational thinking to every child s analytical as the printing press facilitated the spread of thethree Rs, what is appropriately incestuous about thisvision is that computing and computers facilitate thespread of computational thinking. Computational thinking involves solving prob-lems, designing systems, and understanding humanbehavior, by drawing on the concepts fundamentalto Computer Science . Computational thinkingincludes a range of mental tools that reflect thebreadth of the field of Computer Science . Having to solve a particular problem, we mightask: How difficult is it to solve?

3 And What s the bestway to solve it? Computer Science rests on solid the-oretical underpinnings to answer such questions pre-cisely. Stating the difficulty of a problem accountsfor the underlying power of the machine the com-puting device that will run the solution. We mustconsider the machine s instruction set, its resourceconstraints, and its operating environment. In solving a problem efficiently,,we might furtherask whether an approximate solution is goodenough, whether we can use randomization to ouradvantage, and whether false positives or false nega-tives are allowed. Computational thinking is refor-mulating a seemingly difficultproblem into one weknow how to solve, perhaps by reduction, embed-ding, transformation, or simulation.

4 Computational thinking is thinking recursively. Itis parallel processing. It is interpreting code as dataand data as code. It is type checking as the general-ization of dimensional analysis. It is recognizingboth the virtues and the dangers of aliasing, or giv-ing someone or something more than one name. Itis recognizing both the cost and power of indirectaddressing and procedure call. It is judging a pro-gram not just for correctness and efficiency but foraesthetics, and a system s design for simplicity andelegance. Computational thinking is using abstraction anddecomposition when attacking a large complex taskor designing a large complex system.

5 It is separationof concerns. It is choosing an appropriate representa-tion for a problem or modeling the relevant aspectsof a problem to make it tractable. It is using invari-ants to describe a system s behavior succinctly anddeclaratively. It is having the confidence we cansafely use, modify, and influence a large complexsystem without understanding its every detail. It isLISA HANEYV iewpointJeannette M. WingComputational ThinkingIt represents a universally applicable attitude and skill set everyone, not justcomputer scientists, would be eager to learn and use. 34 March 2006/Vol. 49, No. 3 COMMUNICATIONS OF THE ACMmodularizing something in anticipation of multipleusers or prefetching and caching in anticipation offuture use.

6 Computational thinking is thinking in terms ofprevention, protection, and recovery from worst-casescenarios through redundancy, damage containment,and error correction. It is calling gridlock deadlockand contracts interfaces. It is learning to avoid raceconditions when synchronizing meetings with oneanother. Computational thinking is using heuristic reason-ing to discover a solution. It is planning, learning,and scheduling in the presence of uncertainty. It issearch, search, and more search, resulting in a list ofWeb pages, a strategy for winning a game, or a coun-terexample. Computational thinking is using massiveamounts of data to speed up computation.

7 It is mak-ing trade-offs between time and space and betweenprocessing power and storage capacity. Consider these everyday examples: When yourdaughter goes to School in the morning, she puts inher backpack the things she needs for the day; that sprefetching and caching. When your son loses hismittens, you suggest he retrace his steps; that s back-tracking. At what point do you stop renting skis andbuy yourself a pair?; that s online algorithms. Whichline do you stand in at the supermarket?; that s per-formance modeling for multi-server systems. Whydoes your telephone still work during a power out-age?; that s independence of failure and redundancyin design.

8 How do Completely Automated PublicTuring Test(s) to Tell Computers and HumansApart, or CAPTCHAs, authenticate humans?; that sexploiting the difficulty of solving hard AI problemsto foil computing agents. Computational thinking will have becomeingrained in everyone s lives when words like algo-rithm and precondition are part of everyone s vocab-ulary; when nondeterminism and garbage collectiontake on the meanings used by Computer scientists;and when trees are drawn upside down. We have witnessed the influence of computa-tional thinking on other disciplines. For example,machine learning has transformed statistics. Statisti-cal learning is being used for problems on a scale, interms of both data size and dimension, unimagin-able only a few years ago.

9 Statistics departments inall kinds of organizations are hiring Computer scien-tists. Schools of Computer Science are embracingexisting or starting up new statistics departments. Computer scientists recent interest in biology isdriven by their belief that biologists can benefitfrom computational thinking. Computer Science scontribution to biology goes beyond the ability tosearch through vast amounts of sequence data look-ing for patterns. The hope is that data structuresand algorithms our computational abstractionsand methods can represent the structure of pro-teins in ways that elucidate their function. Compu-tational biology is changing the way biologiststhink.

10 Similarly, computational game theory ischanging the way economists think; nanocomput-ing, the way chemists think; and quantum comput-ing, the way physicists think. This kind of thinking will be part of the skill setof not onlyother scientists but of everyone computing is to today as computationalthinking is to tomorrow. Ubiquitous computing wasyesterday s dream that became today s reality; com-putational thinking is tomorrow s reality. WHATITIS, ANDISN TComputer Science is the study of computation what can be computed and how to compute thinking thus has the followingcharacteristics:ViewpointThinki ng like a Computer scientist means more than being able toprogram a Computer .


Related search queries