Facebook Pixel
Searching...
English
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Computational Thinking (The MIT Press Essential Knowledge series)

Computational Thinking (The MIT Press Essential Knowledge series)

by Peter J. Denning 2019 264 pages
3.7
100+ ratings
Listen

Key Takeaways

1. Computational thinking (CT) has ancient roots and evolves with technology

Computing is an ancient human practice.

Ancient origins: CT traces back over 4,500 years to early mathematical and engineering practices. Babylonians and Egyptians developed procedures for solving mathematical problems and building structures. Over centuries, mathematicians refined methods for increasingly complex calculations.

Evolution with technology: CT has continuously evolved alongside technological advancements. Key milestones include:

  • Development of arithmetic and algebraic methods
  • Invention of logarithms and slide rules
  • Creation of mechanical calculators
  • Design of early computers like Babbage's Analytical Engine
  • Emergence of electronic computers and programming languages

As computing technology progressed, CT expanded to encompass new concepts like algorithms, data structures, and software design. Today, CT continues to adapt to emerging technologies like quantum computing and artificial intelligence.

2. CT is about designing computations and interpreting the world as information processes

Computational thinking is the mental skills and practices for designing computations that get computers to do jobs for us, and explaining and interpreting the world as a complex of information processes.

Dual nature of CT: This definition captures the two key aspects of computational thinking:

  1. Design: Creating computations to solve problems and perform tasks
  2. Interpretation: Understanding phenomena through an information processing lens

Practical applications: CT enables us to:

  • Develop algorithms and software to automate tasks
  • Model complex systems as information processes
  • Analyze data to gain insights
  • Design user interfaces and experiences
  • Optimize processes in various fields

Broad impact: CT has transformed how we approach problems in science, engineering, business, and everyday life. It provides a powerful framework for understanding and manipulating the increasingly digital world around us.

3. The quest for computing machines drove CT development

The long quest for computing machines throughout the ages was driven not only by the need to speed up computation, but also to eliminate human errors, which were common when easily bored or distracted humans performed many repetitive calculations.

Motivations for automation: The development of computing machines was driven by two main factors:

  1. Speed: Performing calculations much faster than humans
  2. Accuracy: Eliminating errors caused by human limitations

Key developments:

  • Mechanical calculators (e.g., Pascal's calculator)
  • Punch card systems (e.g., Jacquard loom, Hollerith's census machine)
  • Early computers (e.g., ENIAC, Mark I)
  • Stored-program computers

Impact on CT: The quest for better computing machines led to:

  • Development of formal algorithms and programming languages
  • Creation of new abstractions and data structures
  • Emergence of software engineering practices
  • Expansion of CT beyond mathematics into diverse fields

These advancements shaped the core principles of modern computational thinking, emphasizing precision, efficiency, and scalability in problem-solving.

4. Computer science formalized CT as an academic discipline

Computer science departments are found in schools of science, engineering, and even business. Why so many homes? The answer echoes those early political fights: the new departments were established in the schools that were most welcoming.

Emergence of computer science: As computing became more prevalent, the need for a dedicated academic discipline emerged. Key milestones include:

  • First CS department at Purdue University in 1962
  • Formation of professional societies (ACM, IEEE-CS)
  • Development of standardized curricula

Challenges and debates:

  • Resistance from established disciplines
  • Questions about the academic legitimacy of CS
  • Debates over the nature of computing (science vs. engineering)

Evolution of CT in academia:

  • Initial focus on algorithms and programming
  • Expansion to include systems, theory, and applications
  • Integration of software engineering principles
  • Incorporation of human-computer interaction and design thinking

The academic formalization of computer science helped solidify CT as a distinct way of thinking, providing a framework for teaching and advancing computational concepts across various disciplines.

5. Software engineering expanded CT to large-scale systems

Software developers realized that the era's computational thinking was not capable of delivering reliable and dependable software. Most CT was about thinking in the small—practices and thinking tools for single programmers. There was nothing in CT for thinking in the large—practices and thinking tools for teams of programmers developing large-scale production systems with long life spans and large user bases.

Shift to large-scale systems: As software projects grew in size and complexity, new challenges emerged:

  • Managing large teams of programmers
  • Ensuring reliability and maintainability
  • Dealing with long-term evolution of systems

Key software engineering contributions to CT:

  • Design patterns and architectural principles
  • Project management and development methodologies
  • Version control and collaboration tools
  • Testing and quality assurance practices

DRUSS objectives: Software engineering emphasized designing for:

  • Dependability
  • Reliability
  • Usability
  • Safety
  • Security

This expansion of CT to "thinking in the large" was crucial for developing the complex software systems that power modern technology and businesses.

6. Design thinking broadened CT beyond algorithms to human concerns

Design CT guides us to ways of building computing systems whose behaviors are useful and meaningful in their user communities.

Human-centered approach: Design thinking expanded CT to consider:

  • User needs and experiences
  • Social and cultural contexts
  • Ethical implications of technology
  • Iterative prototyping and feedback

Levels of software quality:

  1. No trust
  2. Cynical satisfaction
  3. Fulfills basic promises
  4. Fits environment
  5. Produces no negative consequences
  6. Delights users

Impact on CT practices:

  • Emphasis on user research and empathy
  • Integration of diverse perspectives in design
  • Focus on creating meaningful and valuable experiences
  • Consideration of long-term consequences and adaptability

This broadening of CT has led to more holistic approaches in technology development, balancing technical capabilities with human and societal needs.

7. CT revolutionized scientific methods across disciplines

For centuries, theory and experiment were the two modes of doing science. Supercomputers changed this, opening a new approach to doing science based on computational exploration and modeling. It was the most significant scientific paradigm shift since quantum mechanics.

Computational science emergence: CT enabled a new paradigm in scientific research:

  • Simulation of complex systems
  • Analysis of massive datasets
  • Modeling of phenomena as information processes

Impact across disciplines:

  • Physics: Particle interactions, cosmology
  • Biology: Genomics, protein folding
  • Chemistry: Molecular modeling
  • Climate science: Global climate models
  • Social sciences: Network analysis, agent-based modeling

New scientific methods:

  • In silico experiments
  • Data-driven discovery
  • Multiscale modeling
  • Predictive simulations

This integration of CT into various scientific fields has accelerated discovery, enabled new types of research questions, and blurred the lines between traditional disciplinary boundaries.

8. Teaching CT requires balancing beginner and professional perspectives

Educators in K–12 schools have developed an impressive "CT for beginners"—insights and methods for teaching computing to newcomers. Professional software systems designers and scientists have developed an impressive "CT for professionals"—advanced methods for designing and building complex software that works reliably and safely, and for conducting scientific investigations.

CT for beginners:

  • Focus on basic programming concepts
  • Use of visual programming languages (e.g., Scratch)
  • Emphasis on creative problem-solving
  • Introduction to algorithmic thinking

CT for professionals:

  • Advanced software engineering practices
  • System design and architecture
  • Optimization and performance analysis
  • Domain-specific computational methods

Bridging the gap:

  • Progressive skill development
  • Real-world project experiences
  • Interdisciplinary applications
  • Emphasis on design thinking and ethics

Effective CT education requires a balance between accessible entry points for beginners and pathways to advanced professional skills, ensuring students can both grasp fundamental concepts and apply them to complex real-world challenges.

9. CT continues to evolve with new computational models and societal challenges

We write this book at the 50th anniversary of the first recommendations for developing a computing curriculum made by the ACM (Association for Computing Machinery), a society of computing professionals that we both belong to.

Emerging computational models:

  • Quantum computing
  • Neural networks and deep learning
  • DNA computing
  • Edge computing and Internet of Things

Societal challenges:

  • Automation and job displacement
  • Privacy and data security
  • Ethical AI and algorithmic bias
  • Digital divide and technology access

Future directions for CT:

  • Integration of human-computer teaming
  • Addressing global challenges (climate, health, education)
  • Balancing innovation with ethical considerations
  • Adapting to rapidly changing technological landscapes

As technology continues to advance and reshape society, CT must evolve to address new computational paradigms and their societal implications. This ongoing evolution highlights the need for lifelong learning and adaptability in the field of computational thinking.

Last updated:

Review Summary

3.7 out of 5
Average of 100+ ratings from Goodreads and Amazon.

Computational Thinking receives mixed reviews, with an average rating of 3.7/5. Readers appreciate its comprehensive overview of computational thinking's history and applications across various fields. Many find it informative and thought-provoking, especially for those new to the subject. However, some critics note its lack of depth in ethical concerns and practical examples. The book's strength lies in its broad coverage of computational thinking's evolution and impact on different domains, though some readers found it dry or too basic for experienced professionals.

Your rating:

About the Author

Peter J. Denning is a Distinguished Professor of Computer Science at the Naval Postgraduate School in Monterey, California. He has authored multiple books on computing and innovation, including "The Innovator's Way: Essential Practices for Successful Innovation" and "Great Principles of Computing," both published by MIT Press. Denning's expertise in computer science and innovation has contributed to his reputation as a respected author in the field. His work often explores the intersection of technology, education, and problem-solving, reflecting his extensive experience and knowledge in computational thinking and related disciplines.

Download PDF

To save this Computational Thinking (The MIT Press Essential Knowledge series) summary for later, download the free PDF. You can print it out, or read offline at your convenience.
Download PDF
File size: 0.25 MB     Pages: 14

Download EPUB

To read this Computational Thinking (The MIT Press Essential Knowledge series) summary on your e-reader device or app, download the free EPUB. The .epub digital book format is ideal for reading ebooks on phones, tablets, and e-readers.
Download EPUB
File size: 2.94 MB     Pages: 10
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Nov 21,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance