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

Computer Science Illuminated, 6th Edition

Book Description

Each new print copy includes Navigate 2 Advantage Access that unlocks a comprehensive and interactive eBook, student practice activities and assessments, a full suite of instructor resources, and learning analytics reporting tools. Fully revised and updated, the Sixth Edition of the best-selling text Computer Science Illuminated retains the accessibility and in-depth coverage of previous editions, while incorporating all-new material on cutting-edge issues in computer science. Authored by the award-winning Nell Dale and John Lewis, Computer Science Illuminated’s unique and innovative layered approach moves through the levels of computing from an organized, language-neutral perspective. Designed for the introductory computing and computer science course, this student-friendly Sixth Edition provides students with a solid foundation for further study, and offers non-majors a complete introduction to computing. Key Features of the Sixth Edition include: Access to Navigate 2 online learning materials including a comprehensive and interactive eBook, student practice activities and assessments, learning analytics reporting tools, and more Completely revised sections on HTML and CSS Updates regarding Top Level Domains, Social Networks, and Google Analytics All-new section on Internet management, including ICANN control and net neutrality New design, including fully revised figures and tables New and updated Did You Know callouts are included in the chapter margins New and revised Ethical Issues and Biographies throughout emphasize the history and breadth of computing Available in our customizable PUBLISH platform A collection of programming language chapters are available as low-cost bundling options. Available chapters include: Java, C++, Python, Alice, SQL, VB.NET, RUBY, Perl, Pascal, and JavaScript. With Navigate 2, technology and content combine to expand the reach of your classroom. Whether you teach an online, hybrid, or traditional classroom-based course, Navigate 2 delivers unbeatable value. Experience Navigate 2 today at www.jblnavigate.com/2

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright
  4. Dedication
  5. Breif Contents
  6. Contents
  7. Preface
  8. Acknowledgments
  9. Special Features
  10. 1 Laying the Groundwork
    1. Chapter 1 The Big Picture
      1. 1.1 Computing Systems
        1. Layers of a Computing System
        2. Abstraction
      2. 1.2 The History of Computing
        1. A Brief History of Computing Hardware
        2. A Brief History of Computing Software
        3. Predictions
      3. 1.3 Computing as a Tool and a Discipline
        1. Summary
        2. Ethical Issues: Digital Divide
        3. Key Terms
        4. Exercises
        5. Thought Questions
  11. 2 The Information Layer
    1. Chapter 2 Binary Values and Number Systems
      1. 2.1 Numbers and Computing
      2. 2.2 Positional Notation
        1. Binary, Octal, and Hexadecimal
        2. Arithmetic in Other Bases
        3. Power-of-2 Number Systems
        4. Converting from Base 10 to Other Bases
        5. Binary Values and Computers
        6. Summary
        7. Ethical Issues: The FISA Court
        8. Key Terms
        9. Exercises
        10. Thought Questions
    2. Chapter 3 Data Representation
      1. 3.1 Data and Computers
        1. Analog and Digital Data
        2. Binary Representations
      2. 3.2 Representing Numeric Data
        1. Representing Negative Values
        2. Representing Real Numbers
      3. 3.3 Representing Text
        1. The ASCII Character Set
        2. The Unicode Character Set
        3. Text Compression
      4. 3.4 Representing Audio Data
        1. Audio Formats
        2. The MP3 Audio Format
      5. 3.5 Representing Images and Graphics
        1. Representing Color
        2. Digitized Images and Graphics
        3. Vector Representation of Graphics
      6. 3.6 Representing Video
        1. Video Codecs
        2. Summary
        3. Ethical Issues: The Fallout from Snowden’s Revelations
        4. Key Terms
        5. Exercises
        6. Thought Questions
  12. 3 The Hardware Layer
    1. Chapter 4 Gates and Circuits
      1. 4.1 Computers and Electricity
      2. 4.2 Gates
        1. NOT Gate
        2. AND Gate
        3. OR Gate
        4. XOR Gate
        5. NAND and NOR Gates
        6. Review of Gate Processing
        7. Gates with More Inputs
      3. 4.3 Constructing Gates
        1. Transistors
      4. 4.4 Circuits
        1. Combinational Circuits
        2. Adders
        3. Multiplexers
      5. 4.5 Circuits as Memory
      6. 4.6 Integrated Circuits
      7. 4.7 CPU Chips
        1. Summary
        2. Ethical Issues: Codes of Ethics
        3. Key Terms
        4. Exercises
        5. Thought Questions
    2. Chapter 5 Computing Components
      1. 5.1 Individual Computer Components
      2. 5.2 The Stored-Program Concept
        1. von Neumann Architecture
        2. The Fetch–Execute Cycle
        3. RAM and ROM
        4. Secondary Storage Devices
        5. Touch Screens
      3. 5.3 Embedded Systems
      4. 5.4 Parallel Architectures
        1. Parallel Computing
        2. Classes of Parallel Hardware
        3. Summary
        4. Ethical Issues: Is Privacy a Thing of the Past?
        5. Key Terms
        6. Exercises
        7. Thought Questions
  13. 4 The Programming Layer
    1. Chapter 6 Low-Level Programming Languages and Pseudocode
      1. 6.1 Computer Operations
      2. 6.2 Machine Language
        1. Pep/8: A Virtual Computer
      3. 6.3 A Program Example
        1. Hand Simulation
        2. Pep/8 Simulator
      4. 6.4 Assembly Language
        1. Pep/8 Assembly Language
        2. Assembler Directives
        3. Assembly-Language Version of Program Hello
        4. A New Program
        5. A Program with Branching
        6. A Program with a Loop
      5. 6.5 Expressing Algorithms
        1. Pseudocode Functionality
        2. Following a Pseudocode Algorithm
        3. Writing a Pseudocode Algorithm
        4. Translating a Pseudocode Algorithm
      6. 6.6 Testing
        1. Summary
        2. Ethical Issues: Software Piracy
        3. Key Terms
        4. Exercises
        5. Thought Questions
    2. Chapter 7 Problem Solving and Algorithms
      1. 7.1 How to Solve Problems
        1. Ask Questions
        2. Look for Familiar Things
        3. Divide and Conquer
        4. Algorithms
        5. Computer Problem-Solving Process
        6. Summary of Methodology
        7. Testing the Algorithm
      2. 7.2 Algorithms with Simple Variables
        1. An Algorithm with Selection
        2. Algorithms with Repetition
      3. 7.3 Composite Variables
        1. Arrays
        2. Records
      4. 7.4 Searching Algorithms
        1. Sequential Search
        2. Sequential Search in a Sorted Array
        3. Binary Search
      5. 7.5 Sorting
        1. Selection Sort
        2. Bubble Sort
        3. Insertion Sort
      6. 7.6 Recursive Algorithms
        1. Subprogram Statements
        2. Recursive Factorial
        3. Recursive Binary Search
        4. Quicksort
      7. 7.7 Important Threads
        1. Information Hiding
        2. Abstraction
        3. Naming Things
        4. Testing
        5. Summary
        6. Ethical Issues: Open-Source Software
        7. Key Terms
        8. Exercises
        9. Thought Questions
    3. Chapter 8 Abstract Data Types and Subprograms
      1. 8.1 What Is an Abstract Data Type?
      2. 8.2 Stacks
      3. 8.3 Queues
      4. 8.4 Lists
      5. 8.5 Trees
        1. Binary Trees
        2. Binary Search Trees
        3. Other Operations
      6. 8.6 Graphs
        1. Creating a Graph
        2. Graph Algorithms
      7. 8.7 Subprograms
        1. Parameter Passing
        2. Value and Reference Parameters
        3. Summary
        4. Ethical Issues: Workplace Monitoring
        5. Key Terms
        6. Exercises
        7. Thought Questions
    4. Chapter 9 Object-Oriented Design and High-Level Programming Languages
      1. 9.1 Object-Oriented Methodology
        1. Object Orientation
        2. Design Methodology
        3. Example
      2. 9.2 Translation Process
        1. Compilers
        2. Interpreters
      3. 9.3 Programming Language Paradigms
        1. Imperative Paradigm
        2. Declarative Paradigm
      4. 9.4 Functionality in High-Level Languages
        1. Boolean Expressions
        2. Data Typing
        3. Input/Output Structures
        4. Control Structures
      5. 9.5 Functionality of Object-Oriented Languages
        1. Encapsulation
        2. Classes
        3. Inheritance
        4. Polymorphism
      6. 9.6 Comparison of Procedural and Object-Oriented Designs
        1. Summary
        2. Ethical Issues: Hoaxes and Scams
        3. Key Terms
        4. Exercises
        5. Thought Questions
  14. 5 The Operating Systems Layer
    1. Chapter 10 Operating Systems
      1. 10.1 Roles of an Operating System
        1. Memory, Process, and CPU Management
        2. Batch Processing
        3. Timesharing
        4. Other OS Factors
      2. 10.2 Memory Management
        1. Single Contiguous Memory Management
        2. partition Memory Management
        3. Paged Memory Management
      3. 10.3 Process Management
        1. The Process States
        2. The Process Control Block
      4. 10.4 CPU Scheduling
        1. First Come, First Served
        2. Shortest Job Next
        3. Round Robin
        4. Summary
        5. Ethical Issues: Medical Privacy: HIPAA
        6. Key Terms
        7. Exercises
        8. Thought Questions
    2. Chapter 11 File Systems and Directories
      1. 11.1 File Systems
        1. Text and Binary Files
        2. File Types
        3. File Operations
        4. File Access
        5. File Protection
      2. 11.2 Directories
        1. Directory Trees
        2. Path Names
      3. 11.3 Disk Scheduling
        1. First-Come, First-Served Disk Scheduling
        2. Shortest-Seek-Time-First Disk Scheduling
        3. SCAN Disk Scheduling
        4. Summary
        5. Ethical Issues: Privacy: Opt-In or Opt-Out?
        6. Key Terms
        7. Exercises
        8. Thought Questions
  15. 6 The Applications Layer
    1. Chapter 12 Information Systems
      1. 12.1 Managing Information
      2. 12.2 Spreadsheets
        1. Spreadsheet Formulas
        2. Circular References
        3. Spreadsheet Analysis
      3. 12.3 Database Management Systems
        1. The Relational Model
        2. Relationships
        3. Structured Query Language
        4. Database Design
      4. 12.4 E-Commerce
        1. Summary
        2. Ethical Issues: Politics and the Internet: The Candidate’s View
        3. Key Terms
        4. Exercises
        5. Thought Questions
    2. Chapter 13 Artificial Intelligence
      1. 13.1 Thinking Machines
        1. The Turing Test
        2. Aspects of AI
      2. 13.2 Knowledge Representation
        1. Semantic Networks
        2. Search Trees
      3. 13.3 Expert Systems
      4. 13.4 Neural Networks
        1. Biological Neural Networks
        2. Artificial Neural Networks
      5. 13.5 Natural Language Processing
        1. Voice Synthesis
        2. Voice Recognition
        3. Natural Language Comprehension
      6. 13.6 Robotics
        1. The Sense–Plan–Act Paradigm
        2. Subsumption Architecture
        3. Physical Components
        4. Summary
        5. Ethical Issues: Initial Public Offerings
        6. Key Terms
        7. Exercises
        8. Thought Questions
    3. Chapter 14 Simulation, Graphics, Gaming, and Other Applications
      1. 14.1 What Is Simulation?
        1. Complex Systems
        2. Models
        3. Constructing Models
      2. 14.2 Specific Models
        1. Queuing Systems
        2. Meteorological Models
        3. Computational Biology
        4. Other Models
        5. Computing Power Necessary
      3. 14.3 Computer Graphics
        1. How Light Works
        2. Object Shape Matters
        3. Simulating Light
        4. Modeling Complex Objects
        5. Getting Things to Move
      4. 14.4 Gaming
        1. History of Gaming
        2. Creating the Virtual World
        3. Game Design and Development
        4. Game Programming
        5. Summary
        6. Ethical Issues: Gaming as an Addiction
        7. Key Terms
        8. Exercises
        9. Thought Questions
  16. 7 The Communications Layer
    1. Chapter 15 Networks
      1. 15.1 Networking
        1. Types of Networks
        2. Internet Connections
        3. Packet Switching
      2. 15.2 Open Systems and Protocols
        1. Open Systems
        2. Network Protocols
        3. TCP/IP
        4. High-Level Protocols
        5. MIME Types
        6. Firewalls
      3. 15.3 Network Addresses
        1. Domain Name System
        2. Who Controls the Internet?
      4. 15.4 Cloud Computing
        1. Summary
        2. Ethical Issues: The Effects of Social Networking
        3. Key Terms
        4. Exercises
        5. Thought Questions
    2. Chapter 16 The World Wide Web
      1. 16.1 Spinning the Web
        1. Search Engines
        2. Instant Messaging
        3. Weblogs
        4. Cookies
        5. Web Analytics
      2. 16.2 HTML and CSS
        1. Basic HTML Elements
        2. Tag Attributes
        3. More About CSS
        4. More HTML5 Elements
      3. 16.3 Interactive Web Pages
        1. Java Applets
        2. Java Server Pages
      4. 16.4 XML
      5. 16.5 Social Networks
        1. Summary
        2. Ethical Issues: Gambling and the Internet
        3. Key Terms
        4. Exercises
        5. Thought Questions
    3. Chapter 17 Computer Security
      1. 17.1 Security at All Levels
        1. Information Security
      2. 17.2 Preventing Unauthorized Access
        1. Passwords
        2. CAPTCHA
        3. Fingerprint Analysis
      3. 17.3 Malicious Code
        1. Antivirus Software
        2. Security Attacks
      4. 17.4 Cryptography
      5. 17.5 Protecting Your Information Online
        1. Security and Portable Devices
        2. WikiLeaks
        3. Summary
        4. Ethical Issues: Blogging
        5. Key Terms
        6. Exercises
        7. Thought Questions
  17. 8 In Conclusion
    1. Chapter 18 Limitations of Computing
      1. 18.1 Hardware
        1. Limits on Arithmetic
        2. Limits on Components
        3. Limits on Communications
      2. 18.2 Software
        1. Complexity of Software
        2. Current Approaches to Software Quality
        3. Notorious Software Errors
      3. 18.3 Problems
        1. Comparing Algorithms
        2. Turing Machines
        3. Halting Problem
        4. Classification of Algorithms
        5. Summary
        6. Ethical Issues: Therac-25: Anatomy of a Disaster
        7. Key Terms
        8. Exercises
        9. Thought Questions
  18. Glossary
  19. Endnotes
  20. Index