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.
Why Does the Chicken Cross the Road?
The Computer
Turing Machine
A Brief History of Computers
Software
Programming
Syntax and Semantics
Flowcharts
Algorithms
Pseudo Code
The Euclidean GCD Algorithm
Goals and How to Get There
Road Crossing
Bits, Bytes, and Words
Digital Computers
Binary Numbers
Positive and Negative Integers
Modular Arithmetic
Base Conversion
Characters
Editing Text
Data Output
True or False
Digital Electronic Circuits
Boolean Algebra
Decision Making
Logic Applied to Bits
Logic and Iteration
Who Is the Master?
What Is an Operating System?
Operating System Kernel
Open Source Software
Graphical User Interface
Desktop Overview
Are You Talking to Me?
Command-Line Interface
Files
Processes
Managing Tasks
Up and Running
Hello There!
What Is a Network?
The Internet
Local and Wide Area Networks
Internet Architecture
Wireless Networking
Networking Protocols
IP Addresses
Domain Names
Client and Server
Peer to Peer
DNS Service
DNS Servers and Resolvers
Domain Registration
Packet Switching
Cloud Computing
Home Sweet Homepage
What Is a Web Server?
Web Browsers
A Brief History of the Web
URLs
HTML and HTML5
Webpage Styling
Web Hosting
Dynamic Generation of Webpages
Client-Side Scripting
Hypertext Transfer Protocol
Website Development
Web Search Engines
Web Services
Standard Web Technologies
Keeping It Safe
Login
HTTPS and SSL/TLS
What is a Digital Certificate?
Cryptography
Public-Key Cryptography
RSA Public-Key Algorithm
Digital Signature
Message Digests
Secure Email
Security Attacks and Defenses
Solve That Problem
Solving Puzzles
Sorting
Recursion
Recursive Solution Formula
Tower of Hanoi
Eight Queens
General Backtracking
Tree Traversals
Complexity
Heuristics
Data Everywhere
Digital Images
Raster Image Encoding
Audio and Video
Digital Video
Format of Data and Files
Data Sharing
Document Markup
Data Compression
Data Structures
What Is a Database?
Protecting Personal Data
Get That App
Key Programs
Knowing Your Apps
Program Configuration and Customization
Process Cooperation
Machine Language Programs
Assembly Language Programs
High-Level Programs
Compilers
Software Development
Object-Oriented Programming
Object-Oriented Design
Biography
Paul S. Wang, PhD, is professor of computer science at Kent State University, Ohio. He received his PhD from MIT. He has published 10 computer science textbooks, all of which have been well-received in the US and worldwide. Several have been translated into other languages.