O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

From Computing to Computational Thinking

Book Description

Computational Thinking (CT) involves fundamental concepts and reasoning, distilled from computer science and other computational sciences, which become powerful general mental tools for solving problems, increasing efficiency, reducing complexity, designing procedures, or interacting with humans and machines. An easy-to-understand guidebook, From Computing to Computational Thinking gives you the tools for understanding and using CT. It does not assume experience or knowledge of programming or of a programming language, but explains concepts and methods for CT with clarity and depth.

Successful applications in diverse disciplines have shown the power of CT in problem solving. The book uses puzzles, games, and everyday examples as starting points for discussion and for connecting abstract thinking patterns to real-life situations. It provides an interesting and thought-provoking way to gain general knowledge about modern computing and the concepts and thinking processes underlying modern digital technologies.

Table of Contents

  1. Cover
  2. Halftitle
  3. Title
  4. Copyright
  5. Table of Contents
    1. Preface
    2. Introduction
    3. 1. Why Did the Chicken Cross the Road?
      1. 1.1 The Computer
      2. 1.2 Turing Machine
        1. CT: Abstract Away
      3. 1.3 A Brief History of Computers
      4. 1.4 Software
      5. 1.5 Programming
      6. 1.6 Syntax and Semantics
        1. CT: Beware of Semantics
      7. 1.7 Flowcharts
        1. CT: Ready for All Contingencies
        2. CT: First Things First
        3. CT: Check Before Proceeding
      8. 1.8 Algorithms
        1. CT: Make It an Algorithm
        2. CT: Consider Extreme Cases
      9. 1.9 Pseudo Code
        1. CT: Step by Step
      10. 1.10 The Euclidean GCD Algorithm
        1. CT: Apply Domain Knowledge
      11. 1.11 Goals and How to Get There
        1. CT: Break It Down
      12. 1.12 Road Crossing
        1. Exercises
    4. 2. Bits, Bytes, and Words
      1. 2.1 Digital Computers
      2. 2.2 Binary Numbers
        1. CT: Meaning Of Symbols
          1. 2.2.1 Numbers in Other Bases
        2. CT: Evaluate Different Options
      3. 2.3 Positive and Negative Integers
      4. 2.4 Modular Arithmetic
        1. CT: Mind Resource Limitations
        2. CT: Symbols Can Be Deceiving
      5. 2.5 Base Conversion
        1. CT: Start from the End
      6. 2.6 Characters
        1. 2.6.1 US-ASCII
        2. 2.6.2 Unicode
      7. CT: Data Context
      8. 2.7 Editing Text
      9. 2.8 Data Output
        1. CT: Deliver the Message
        2. Exercises
    5. 3. True or False
      1. 3.1 Digital Electronic Circuits
        1. CT: Notice the Logic
        2. CT: Bottom Up
        3. CT: Create a Virtuous Cycle
      2. 3.2 Boolean Algebra
        1. 3.2.1 Expressions and Laws
        2. 3.2.2 Universal Gates
      3. 3.3 Decision Making
        1. CT: Logic Checks
          1. 3.3.1 Conditions and Implications
        2. CT: Follow The Logic
      4. 3.4 Logic Applied to Bits
        1. CT: Combine Basic Components
      5. 3.5 Logic and Iteration
        1. 3.5.1 The while Loop
        2. 3.5.2 The for Loop
      6. CT: Perform Everyday Programming
      7. Exercises
    6. 4. Who Is the Master?
      1. 4.1 What Is an Operating System?
      2. 4.2 Operating System Kernel
        1. 4.2.1 System Programs
      3. 4.3 Open Source Software
        1. CT: Promote Free And Open
      4. 4.4 Graphical User Interface
      5. 4.5 Desktop Overview
        1. 4.5.1 Desktop Components
      6. CT: Know Your Arena
      7. 4.6 Are You Talking to Me?
        1. 4.6.1 Input Focus
        2. CT: Pay Attention To Details
        3. 4.6.2 Event Handling
      8. 4.7 Command-Line Interface
        1. CT: Mind The Trade-Off
      9. 4.8 Files
        1. 4.8.1 File Content Types
        2. 4.8.2 File Tree
        3. CT: Learn From Trees
        4. 4.8.3 File Management and Access Control
      10. 4.9 Processes
        1. CT: Keep It In Context
        2. CT: Capture The State
        3. 4.9.1 Process Lifecycle
        4. 4.9.2 Process Address Space
        5. 4.9.3 Virtual Address Space Layout
        6. 4.9.4 Address Mapping
      11. CT: Timesharing
      12. 4.10 Managing Tasks
      13. 4.11 Up and Running
        1. CT: Better Control Better System
        2. Exercises
    7. 5. Hello There!
      1. 5.1 What Is a Network?
      2. 5.2 The Internet
      3. 5.3 Local and Wide Area Networks
      4. 5.4 Internet Architecture
        1. CT: Redundancy For Safety
        2. CT: One And All
      5. 5.5 Wireless Networking
      6. 5.6 Networking Protocols
        1. CT: Follow Protocol
      7. 5.7 IP Addresses
      8. 5.8 Domain Names
      9. 5.9 Client and Server
        1. CT: Interoperate
      10. 5.10 Peer to Peer
      11. 5.11 DNS Service
        1. CT: Indirection Adds Flexibility
      12. 5.12 DNS Servers and Resolvers
        1. CT: Decentralize
      13. 5.13 Domain Registration
        1. 5.13.1 Accessing Domain Registration Data
      14. 5.14 Packet Switching
      15. 5.15 Cloud Computing
        1. CT: Backup In The Cloud
        2. Exercises
    8. 6. Home Sweet Homepage :-)
      1. 6.1 What Is a Web Server?
      2. 6.2 Web Browsers
      3. 6.3 A Brief History of the Web
      4. 6.4 URLs
        1. CT: Be Aware Of The Implicit Context
        2. 6.4.1 URL Encoding
      5. CT: Wear Different Hats
      6. 6.5 HTML and HTML5
        1. CT: Mark It Up
      7. 6.6 Webpage Styling
      8. 6.7 Web Hosting
        1. CT: Really Use Your Website
        2. CT: Be Careful With Online Information
      9. 6.8 Dynamic Generation of Webpages
        1. 6.8.1 Active Server Pages
        2. 6.8.2 Database Access
      10. 6.9 Client-Side Scripting
      11. 6.10 Hypertext Transfer Protocol
        1. 6.10.1 HTTP Caching
      12. CT: Cache For Speed
      13. 6.11 Website Development
        1. CT: Develop For Users
      14. 6.12 Web Search Engines
        1. CT: Google It
        2. CT: Believe It Or Not
      15. 6.13 Web Services
      16. 6.14 Standard Web Technologies
        1. Exercises
    9. 7. Keeping It Safe
      1. 7.1 Login
        1. 7.1.1 Website Login
        2. CT: Safeguard Security Realms
        3. CT: Prevent Illicit Login
      2. 7.2 HTTPS and SSL/TLS
      3. 7.3 What Is a Digital Certificate?
      4. 7.4 Cryptography
        1. 7.4.1 Symmetric Cryptosystems
        2. CT: Secure Sensitive Files
        3. CT: Add Security Layers
      5. 7.5 Public-Key Cryptography
        1. CT: Breakthrough
        2. CT: Beware Of Bugs
      6. 7.6 RSA Public-Key Algorithm
      7. 7.7 Digital Signature
        1. CT: Sign Digitally
      8. 7.8 Message Digests
      9. 7.9 Secure Email
        1. 7.9.1 Secure Email with Thunderbird
        2. CT: Free From Surveillance
      10. 7.10 Security Attacks and Defenses
        1. CT: All For One And One For All
        2. Exercises
    10. 8. Solve That Problem
      1. 8.1 Solving Puzzles
        1. 8.1.1 Egg Frying
        2. 8.1.2 Liquid Measuring
        3. 8.1.3 A Magic Tray
      2. 8.2 Sorting
        1. 8.2.1 Bubble Sort
        2. 8.2.2 Improved Bubble Sort
        3. CT: Cut It Down
        4. CT: Build It Up
        5. CT: Stepwise Refinement
        6. CT: Version 2.O
      3. 8.3 Recursion
        1. CT: Remember Recursion
        2. 8.3.1 Quicksort
      4. 8.4 Recursive Solution Formula
        1. CT: Apply the Recursion Magic
      5. 8.5 Tower of Hanoi
      6. 8.6 Eight Queens
      7. 8.7 General Backtracking
      8. 8.8 Tree Traversals
        1. CT: Form Tree Structures
      9. 8.9 Complexity
        1. CT: Weigh Speed vs. Complexity
      10. 8.10 Heuristics
        1. CT: Devise Heuristics
        2. Exercises
    11. 9. Data everywhere
      1. CT: Garbage In, Garbage Out
      2. 9.1 Digital Images
        1. 9.1.1 Representing Color
      3. 9.2 Raster Image Encoding
        1. 9.2.1 Raster Image Formats
        2. CT: Small Is Beautiful
        3. 9.2.2 Vector Graphics
        4. 9.2.3 Scalable Vector Graphics
      4. 9.3 Audio and Video
        1. 9.3.1 Digital Audio
        2. 9.3.2 Audio Encoding Formats
      5. 9.4 Digital Video
        1. 9.4.1 Video Containers
        2. 9.4.2 Video Codecs
      6. 9.5 Format of Data and Files
        1. CT: Interpreting Data
        2. CT: Data Is Application Dependent
        3. CT: Save Trees With Pdf
      7. 9.6 Data Sharing
      8. 9.7 Document Markup
        1. 9.7.1 What Is XML?
        2. 9.7.2 XML Document Format
        3. 9.7.3 XML for News Syndication
      9. CT: Markup For Interoperability
      10. 9.8 Data Compression
        1. CT: Compression Is Not Encryption
        2. 9.8.1 LZ Deflation
        3. 9.8.2 Huffman Code
        4. CT: Customize For Efficiency
      11. 9.9 Data Structures
      12. CT: Synthesize And Simplify
      13. 9.10 What Is a Database?
        1. 9.10.1 Relational Databases
        2. 9.10.2 SQL: Structured Query Language
        3. CT: Combine Web And Database
        4. 9.10.3 Big Data
        5. CT: Data To Insight
      14. 9.11 Protecting Personal Data
        1. CT: Guard Personal Data
        2. Exercises
    12. 10. Get That App
      1. 10.1 Key Programs
        1. CT: Remind Yourself
        2. CT: Install That App
      2. 10.2 Knowing Your Apps
        1. CT: Learn That App
        2. CT: No App, No Way
      3. 10.3 Program Configuration and Customization
        1. CT: Configure And Enjoy
      4. 10.4 Process Cooperation
        1. CT: Coordinate Or Else
      5. 10.5 Machine Language Programs
      6. 10.6 Assembly Language Programs
      7. 10.7 High-Level Programs
      8. 10.8 Compilers
        1. CT: Bootstrapping
      9. 10.9 Software Development
      10. 10.10 Object-Oriented Programming
        1. CT: Compartmentalize
        2. 10.10.1 OOP Advantages
        3. 10.10.2 OOP Concepts
      11. CT: Expose Only The Interface
      12. 10.11 Object-Oriented Design
        1. Exercises
    13. Epilogue
      1. CT: Reprogram Your Brain
    14. Website and Online Examples
    15. Bibliography
    16. Index