Understanding the Digital World

Book Description

The basics of how computer hardware, software, and systems work, and the risks they create for our privacy and security

Computers are everywhere. Some of them are highly visible, in laptops, tablets, cell phones, and smart watches. But most are invisible, like those in appliances, cars, medical equipment, transportation systems, power grids, and weapons. We never see the myriad computers that quietly collect, share, and sometimes leak vast amounts of personal data about us. Through computers, governments and companies increasingly monitor what we do. Social networks and advertisers know far more about us than we should be comfortable with, using information we freely give them. Criminals have all-too-easy access to our data. Do we truly understand the power of computers in our world?

Understanding the Digital World explains how computer hardware, software, networks, and systems work. Topics include how computers are built and how they compute; what programming is and why it is difficult; how the Internet and the web operate; and how all of these affect our security, privacy, property, and other important social, political, and economic issues. This book also touches on fundamental ideas from computer science and some of the inherent limitations of computers. It includes numerous color illustrations, notes on sources for further exploration, and a glossary to explain technical terms and buzzwords.

Understanding the Digital World is a must-read for all who want to know more about computers and communications. It explains, precisely and carefully, not only how they operate but also how they influence our daily lives, in terms anyone can understand, no matter what their experience and knowledge of technology.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication Page
  5. Contents
  6. Preface
  7. Introduction
  8. Part I: Hardware
    1. 1. What’s in a Computer?
      1. 1.1 Logical Construction
        1. 1.1.1 CPU
        2. 1.1.2 RAM
        3. 1.1.3 Disks and other secondary storage
        4. 1.1.4 Et cetera
      2. 1.2 Physical Construction
      3. 1.3 Moore’s Law
      4. 1.4 Summary
    2. 2. Bits, Bytes, and Representation of Information
      1. 2.1 Analog versus Digital
      2. 2.2 Analog-Digital Conversion
      3. 2.3 Bits, Bytes, and Binary
        1. 2.3.1 Bits
        2. 2.3.2 Powers of two and powers of ten
        3. 2.3.3 Binary numbers
        4. 2.3.4 Bytes
      4. 2.4 Summary
    3. 3. Inside the CPU
      1. 3.1 The Toy Computer
        1. 3.1.1 The first Toy program
        2. 3.1.2 The second Toy program
        3. 3.1.3 Branch instructions
        4. 3.1.4 Representation in RAM
      2. 3.2 Real CPUs
      3. 3.3 Caching
      4. 3.4 Other Kinds of Computers
      5. 3.5 Summary
      6. Wrapup on Hardware
  9. Part II: Software
    1. 4. Algorithms
      1. 4.1 Linear Algorithms
      2. 4.2 Binary Search
      3. 4.3 Sorting
      4. 4.4 Hard Problems and Complexity
      5. 4.5 Summary
    2. 5. Programming and Programming Languages
      1. 5.1 Assembly Language
      2. 5.2 High-Level Languages
      3. 5.3 Software Development
        1. 5.3.1 Libraries, interfaces, and development kits
        2. 5.3.2 Bugs
      4. 5.4 Intellectual Property
        1. 5.4.1 Trade secret
        2. 5.4.2 Copyright
        3. 5.4.3 Patents
        4. 5.4.4 Licenses
      5. 5.5 Standards
      6. 5.6 Open Source
      7. 5.7 Summary
    3. 6. Software Systems
      1. 6.1 Operating Systems
      2. 6.2 How an Operating System Works
        1. 6.2.1 System calls
        2. 6.2.2 Device drivers
      3. 6.3 Other Operating Systems
      4. 6.4 File Systems
        1. 6.4.1 Disk file systems
        2. 6.4.2 Removing files
        3. 6.4.3 Other file systems
      5. 6.5 Applications
      6. 6.6 Layers of Software
      7. 6.7 Summary
    4. 7. Learning to Program
      1. 7.1 Programming Language Concepts
      2. 7.2 A First JavaScript Example
      3. 7.3 A Second JavaScript Example
      4. 7.4 Loops
      5. 7.5 Conditionals
      6. 7.6 Libraries and Interfaces
      7. 7.7 How JavaScript Works
      8. 7.8 Summary
      9. Wrapup on Software
  10. Part III: Communications
    1. 8. Networks
      1. 8.1 Telephones and Modems
      2. 8.2 Cable and DSL
      3. 8.3 Local Area Networks and Ethernet
      4. 8.4 Wireless
      5. 8.5 Cell Phones
      6. 8.6 Bandwidth
      7. 8.7 Compression
      8. 8.8 Error Detection and Correction
      9. 8.9 Summary
    2. 9. The Internet
      1. 9.1 An Internet Overview
      2. 9.2 Domain Names and Addresses
        1. 9.2.1 Domain Name System
        2. 9.2.2 IP addresses
        3. 9.2.3 Root servers
        4. 9.2.4 Registering your own domain
      3. 9.3 Routing
      4. 9.4 TCP/IP Protocols
        1. 9.4.1 IP, the Internet Protocol
        2. 9.4.2 TCP, the Transmission Control Protocol
      5. 9.5 Higher-Level Protocols
        1. 9.5.1 Telnet and SSH: remote login
        2. 9.5.2 SMTP: Simple Mail Transfer Protocol
        3. 9.5.3 File sharing and peer-to-peer protocols
      6. 9.6 Copyright on the Internet
      7. 9.7 The Internet of Things
      8. 9.8 Summary
    3. 10. The World Wide Web
      1. 10.1 How the Web Works
      2. 10.2 HTML
      3. 10.3 Cookies
      4. 10.4 Active Content in Web Pages
      5. 10.5 Active Content Elsewhere
      6. 10.6 Viruses, Worms and Trojan Horses
      7. 10.7 Web Security
        1. 10.7.1 Attacks on clients
        2. 10.7.2 Attacks on servers
        3. 10.7.3 Attacks on information in transit
      8. 10.8 Defending Yourself
      9. 10.9 Summary
    4. 11. Data and Information
      1. 11.1 Search
      2. 11.2 Tracking
      3. 11.3 Social Networks
      4. 11.4 Data Mining and Aggregation
      5. 11.5 Cloud Computing
      6. 11.6 Summary
    5. 12. Privacy and Security
      1. 12.1 Cryptography
        1. 12.1.1 Secret-key cryptography
        2. 12.1.2 Public-key cryptography
      2. 12.2 Anonymity
        1. 12.2.1 Tor and the Tor Browser
        2. 12.2.2 Bitcoin
      3. 12.3 Summary
    6. 13. Wrapping Up
  11. Notes
  12. Glossary
  13. Index

Product Information

  • Title: Understanding the Digital World
  • Author(s): Brian Kernighan
  • Release date: January 2017
  • Publisher(s): Princeton University Press
  • ISBN: 9781400884803