Chapter0 Introduction 0.1 The Role of Algorithms 0.2 The Origins of Computing Machines 0.3 The Science of Algorithms 0.4 Abstraction 0.5 An Outline of Our Study 0.6 Social Repercussions Chapter1 Data Storage 1.1 Bits and Their Storage 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 Chapter2 Data Manipulation 2.1 Computer Architecture 2.2 Machine Language 2.3 Program Execution 2.4 Arithmetic/Logic Instructions 2.5 Communicating with Other Devices 2.6 Other Architectures Chapter3 Operating Systems 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 Scurity Chapter4 Networking and the Internet 4.1 Network Fundamentals 4.2 The Internet 4.3 The World Wide Web 4.4 Network Protocols 4.5 Security Chapter5 Algorithms 5.1 The Concept of an Algorithm 5.2 Algorithm Representation 5.3 Algorithm Discovery 5.4 Iterative Structures 5.5 Recursive Structures 5.6 Efficiency and Correctness Chapter6 Programming Languages 6.1 Historical Perspective 6.2 Traditional Programming Concepts 6.3 Procedural Units 6.4 Language Implementation 6.5 Object-Oriented Programming 6.6 Programming Concurrent Activities 6.7 Declarative Programming Chapter7 Software Engineering 7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 7.3 Modularity 7.4 Design Methodologies 7.5 Tools of the Trade 7.6 Testing 7.7 Documentation 7.8 Software Ownership and Liability Chapter8 Data Abstractions 8.1 Data Structure Fundamentals 8.2 Implementing Data Structures 8.3 A Short Case Study 8.4 Customized Data Types 8.5 Classes and Objects 8.6 Pointers in Machine Language Chapter9 Database Systems 9.1 Database Fundamentals 9.2 The Relational Model 9.3 Object-Oriented Databases 9.4 Maintaining Database Integrity 9.5 Traditional File Structures 9.6 Data Mining 9.7 Social Impact of Database Technology Chapter10 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 Other Areas of Research 10.7 Considering the Consequences Chapter11 Theory of Computation 11.1 Functions and Their Computation 11.2 Turing Machines 11.3 Universal Programming Languages 11.4 A Noncomputable Function 11.5 Complexity of Problems 11.6 Public Key Cryptography Appendixes Index