Synopses & Reviews
Now updated to include the most recent developments in Web and network technology, this best-selling introduction to computer science provides a breadth-first overview of the full range of topics in this dynamic discipline: algorithms, hardware design, computer organization, system software, language models, programming, compilation, theory of computation, applications, networks, artificial intelligence, and the impact of computers on society. The authors present these topics in the context of a big picture, - six-layer hierarchy of abstractions - starting with the algorithmic foundations of computer science, and working upward from low-level hardware concepts through virtual machine environments, languages, software, and applications programs to the social issues raised by computer technology. Each layer in the hierarchy builds on ideas and concepts presented earlier. An accompanying lab manual provides exploratory lab experiences tied to the text material. The Second Edition features the use of C++ for teaching the basics of programming, with a C++ compiler provided with the accompanying lab manual. This compiler includes a graphics library that students use to create shapes and images as part of a new section in Chapter 7 on "Graphical Programming."
Review
"The structure of this book is excellent; the technique of building on each week's material is excellent. This [text] really has ideal breadth and organization."
Review
"I particularly like the examples and figures throughout the book."
Synopsis
In this best-selling text, Mike Schneider and Judy Gersting unify and lend relevance to the topics of computer science within their proven framework of a six-layer hierarchy of abstractions. The authors begin by showing that computer science is the study of algorithms, which is the central theme of the book, then move up the next five levels of the hierarchy: hardware, virtual machine, software, applications, and ethics. Each layer in the hierarchy builds upon the ideas and concepts presented in earlier chapters. In addition to some motivational applications such as Web page design and interactive graphics, the book covers the fundamental issues of algorithms, hardware design, computer organization, system software, language models, theory of computation, and social and ethical issues of computing. Exposure to these deeper and more complex core ideas introduces students to the richness and beauty of the field and helps them appreciate the principles behind their creation and implementation. While feeling the excitement of computer science, students receive a solid grounding in the central concepts as well as in important uses of computing and information technology.
About the Author
G. Michael Schneider is Professor of Mathematics and Computer Science at Macalester College in St. Paul, Minnesota and a Visiting Professor of Computer Science at Columbia University in New York. His interests include parallel processing, computer networks, and computer science education. He has written textbooks on software development, data structures, computer organization, and a breadth-first overview of computer science and was a member of the committee that authored the ACM/IEEE Computing Curriculum 2001. He has received Fulbright Grants to teach and do computer science curriculum development in Mauritius, Malaysia, Nepal, and Mongolia.Judith Gersting is a Professor of Computer Science at the University of Hawaii, Hilo. She is also the department chair and has written a number of college textbooks. Her areas of specialization include theoretical computer science and computer science education.
Table of Contents
1. An Introduction to Computer Science. Introduction. The Definition of Computer Science. Algorithms. Organization of the Text. Laboratory Experience 1. Exercises. Challenge Work. For Further Reading. Level 1: THE ALGORITHMIC FOUNDATIONS TO COMPUTER SCIENCE. 2. Algorithm Discovery and Design. Introduction. Representing Algorithms. Examples of Algorithmic Problem Solving. Laboratory Experience 2. Laboratory Experience 3. Conclusion. Exercises. Challenge Work. For Further Reading. 3. The Efficiency of Algorithms. Introduction. Attributes of Algorithms. A Choice of Algorithms. Laboratory Experience 4. Measuring Efficiency. Analysis of Algorithms. Laboratory Experience 5. When Things Get Out of Hand. Laboratory Experience 6. Exercises. Challenge Work. For Further Reading. Summary of Level 1. Level 2: THE HARDWARE WORLD. 4. The Building Blocks: Binary Numbers, Boolean Logic, and Gates. Introduction. The Binary Number System. Boolean Logic and Gates. Building Computer Circuits. Laboratory Experience 7. Laboratory Experience 8. Control Circuits. Conclusion. Exercises. Challenge Work. For Further Reading. 5. Computer Systems Organization. Introduction. The Von Neumann Architecture. The Arithmetic/Logic unit. The Control Unit. Putting All the Pieces Together. Laboratory Experience 9. Historical Overview of Computer Systems Development. Exercises. Challenge Work. For Further Reading. Summary of Level 2. Level 3: THE VIRTUAL MACHINE. 6. An Introduction to System Software and Virtual Machines. Introduction. System Software. Assemblers and Assembly Language. Laboratory Experience 10. Operating Systems. Historical Overview of Operating Systems Development. The Future. Exercises. Challenge Work. For Further Reading. Summary of Level 3. Level 4: THE SOFTWARE WORLD. 7. Introduction to High-Level Language Programming. Where Do We Stand?. High-Level Languages. A Skeleton C++ Program. Virtual Data Storage. Statement Types. Putting the Pieces Together. Laboratory Experience 11. Keeping the Pieces Apart. Laboratory Experience 12. Graphical Programming. Laboratory Experience 13. The Big Picture. Conclusion. Exercises. Challenge Work. For Further Reading. 8. The Tower of Babel. Why Babel?. Procedural Languages. Object-Oriented Programming. Special-Purposes Languages. Alternative Programming Paradigms. Laboratory Experience 14. Conclusion. Exercises. Challenge Work. For Further Reading. 9. Compilers and Language Translation. Introduction. The Compilation Process. Laboratory Experience 15. Conclusion. Exercises. Challenge Work. For Further Reading. 10. Models of Computation. Introduction. What Is a Model. A Model of a Computing Agent. A Model of an Algorithm. Turing Machine Examples. Laboratory Experience 16. The Church-Turing Thesis. Unsolvable Problems. Laboratory Experience 17. Conclusion. Exercises. Challenge Work. For Further Reading. Summary of Level 4. Level 5: APPLICATIONS. 11. Using and Managing Data: A Case Study in Three Scenes. Introduction. Spreadsheets. Laboratory Experience 18. File Management and Databases. Numeric and Symbolic Computation. Laboratory Experience 19. Conclusion. Exercises. Challenge Work. For Further Reading. 12. Computer Networks. Introduction. Basic Concepts in Computer Networking. Network Services. A Brief History of the Internet and the World Wide Web. Laboratory Experience 20. Conclusion. Exercises. Challenge Work. For Further Reading. 13. Artificial Intelligence. Introduction. A Division of Labor. Knowledge Representation. Recognition Tasks. Laboratory Experience 21. Reasoning Tasks. Conclusion. Exercises. Challenge Work. For Further Reading. Summary of Level 5. Level 6: SOCIAL ISSUES. 14. Social and Legal Issues. A Gift of Fire. Here, There, Everywhere. Privacy. The Computer Said So. Computer Crime. Constitutional Civil Liberties Issues. Communications Issues: Encryption and Wiretapping. Exercises. For Further Reading. Summary of Level 6. Answers to Practice Problems. Index.