Computer Science: An Overview truly lives up to its title, providing an introduction to the entire computer science discipline. This broad coverage, combined with clear explanations, has made it the leading textbook for the beadth-first/CS0 course. The text is unique in that it avoids presenting topics from the perspective of any particular programming language. Moreover, the text communicates the dynamics of computer science by presenting topics in a historical perspective in which past developments, the current state of the art, and directions of research are discussed. The result is a balanced, realistic picture of computer science, including such topics as programming languages, operating systems, algorithms, software engineering, networking, database design, artificial intelligence, and machine architecture. This seventh edition has been thoroughly updated to discuss important trends in such areas as networking and the Internet, software engineering, and artificial intelligence. Topics added include open-source development, associative memory, XML, and C#.
Thought-provoking discussions of ethical and legal issues revolving around computing are integrated into each chapter rather than being presented as separate, isolated topics.
Introduction. The Study of Algorithms. The Development of Algorithmic Machines. The Evolution of Computer Science. The Role of Abstraction. Ethical/Social/Legal Issues. I. MACHINE ARCHITECTURE. 1. Data Storage. Storage of Bits. Main Memory. Mass Storage. Coding Information for Storage. The Binary System. Storing Integers. Storing Fractions. Data Compression. Communication Errors. 2. Data Manipulation. The Central Processing Unit. The Stored-Program Concept. Program Execution. Other Architectures. Arithmetic/Logic Instructions. Communicating with Other Devices. II. SOFTWARE. 3. Operating Systems and Networks. The Evolution of Operating Systems. Operating System Architecture. Coordinating the Machine's Activities. Handling Competition Among Processes. Networks. Network Protocols. 4. Algorithms. The Concept of an Algorithm. Algorithm Representation. Algorithm Discovery. Iterative Structures. Recursive Structures. Efficiency and Correctness. 5. Programming Languages. Historical Perspective. Traditional Programming Concepts. Program Units. Language Implementation. Object-Oriented Programming. Parallel Computing. Declarative Programming. 6. Software Engineering. The Software Engineering Discipline. The Software Life Cycle. Modularity. Design Patterns. Development Tools and Techniques. Documentation. Software Ownership and Liability. III. DATA ORGANIZATION. 7. Data Structures. Arrays. Lists. Stacks. Queues. Trees. Customized Data Types. Pointers in Machine Language. 8. File Structures. Sequential Files. Text Files. Indexed Files. Hashed Files. The Role of the Operating System. 9. Database Structures. General Issues. The Layered Approach to Database Implementation. The Relational Model. Object-Oriented Databases. Maintaining Database Integrity. Social Impact of Database Technology. IV. THE POTENTIAL OF ALGORITHMIC MACHINES. 10. Artificial Intelligence. Intelligence and Machines. Understanding Images. Reasoning. Control System Activities. Using Heuristics. Artificial Neural Networks. Genetic Algorithms. Applications of Artificial Intelligence. Considering the Consequences. 11. Theory of Computation. A Bare Bones Programming Language. Turing Machines. Computable Functions. A Noncomputable Function. Complexity of Problems. Public Key Cryptography. APPENDICES. ASCII. Circuits to Manipulate Two's Complement Representations. A Simple Machine Language. Program Examples. The Equivalence of Iterative and Recursive Structures. Answers to Questions/Exercises.