Chapter 0 Introduction 0.1 The Study of Algorithms 0.2 The Origins of Computing Machines 0.3 The Evolution of Computer Science 0.4 The Role of Abstraction 0.5 Ethical/Social/Legal Repercussions Social Issues Additional Reading PART ONE:MACHINE ARCHITECTURE Chapter 1 Data Storage 1.1 Storage of Bits 1.2 Main Memory 1.3 Mass Storage 1.4 Representing Information as Bit Patterns 1.5 The Binary System 1.6 Storing Integers 1.7 Storing Fractions 1.8 Data Compression 1.9 Communication Errors Chapter Review Problems Social Issues Additional Reading Chapter 2 Data Manipulation 2.1 The Central Processing Unit 2.2 The Stored-Program Concept 2.3 Program Execution 2.4 Arithmetic/Logic Instructions 2.5 Communicating with Other Devices 2.6 Other Architectures Chapter Review Problems Social Issues Additional Reading PART TWO:SOFTWARE Chapter 3 Operating Systems and Networks 3.1 The Evolution of Operating Systems 3.2 Operating System Architecture 3.3 Coordinating the Machine's Activities 3.4 Handling Competition Among Processes 3.5 Networks 3.6 Network Protocols 3.7 Security Chapter Review Problems Social Issues Additional Reading Chapter 4 Algorithms 4.1 The Concept of an Algorithm 4.2 Algorithm Representation 4.3 Algorithm Discovery 4.4 Iterative Structures 4.5 Recursive Structures 4.6 Efficiency and Correctness Chapter Review Problems Social Issues Additional Reading Chapter 5 Programming Languages 5.1 Historical Perspective 5.2 Traditional Programming Concepts 5.3 Procedural Units 5.4 Language Implementation 5.5 Object-Oriented Programming 5.6 Programming Concurrent Activities 5.7 Declarative Programming Chapter Review Problems Social Issues Additional Reading Chapter 6 Software Engineering 6.1 The Software Engineering Discipline 6.2 The Software Life Cycle 6.3 Modularity 6.4 Design Methodologies 6.5 Testing 6.6 Documentation 6.7 Software Ownership and Liability Chapter Review Problems Social Issues Additional Reading PART THREE:DATA ORGANIZATION Chapter 7 Data Structures 7.1 Arrays 7.2 Lists 7.3 Stacks 7.4 Queues 7.5 Trees 7.6 Customized Data Types 7.7 Pointers in Machine Language Chapter Review Problems Social Issues Additional Reading Chapter 8 File Structures 8.1 The Role of the Operating System 8.2 Sequential Files 8.3 Text Files 8.4 Indexing 8.5 Hashing Chapter Review Problems Social Issues Additional Reading Chapter 9 Database Structures 9.1 General Issues 9.2 The Layered Approach to Database Implementation 9.3 The Relational Model 9.4 Object-Oriented Databases 9.5 Maintaining Database Integrity 9.6 Social Impact of Database Technology Chapter Review Problems Social Issues Additional Reading PART FOUR:THE POTENTIAL OF ALGORITHMIC MACHINES Chapter 10 Artificial Intelligence 10.1 Intelligence and Machines 10.2 Understanding Images 10.3 Reasoning 10.4 Artificial Neural Networks 10.5 Genetic Algorithms 10.6 Applications of Artificial Intelligence 10.7 Considering the Consequences Chapter Review Problems Social Issues Additional Reading Chapter 11 Theory of Computation 11.1 A Bare Bones Programming Language 11.2 Turing Machines 11.3 Computable Functions 11.4 A Noncomputable Function 11.5 Complexity of Problems 11.6 Public Key Cryptography Chapter Review Problems Social Issues Additional Reading Appendixes A ASCII B Circuits to Manipulate Two's Complement Representations C A Typical Machine Language D Program Examples E The Equivalence of Iterative and Recursive Structures F Answers to Questions/Exercises Index