This book prepares students for the world of computing by giving them a solid foundation in the "science" of computer science - algorithms. By taking an algorithm-based approach to the subject, this new book helps readers grasp overall concepts, rather than getting them bogged down with specific syntax details of a programming language that can become obsolete quickly. By working with algorithms from the start and applying the concepts to the real world, students will understand the power of computers as problem solving tools and learn to think like programmers.
Sprache
Verlagsort
Verlagsgruppe
Zielgruppe
Für höhere Schule und Studium
Maße
Höhe: 229 mm
Breite: 188 mm
Dicke: 24 mm
Gewicht
ISBN-13
978-0-201-31451-9 (9780201314519)
Schweitzer Klassifikation
Russell Shackelford is currently the Director of Lower Division Studies in The College of Computing at Georgia Tech. He holds various degrees in Computer Science, Education, and Psychology. His work is aimed at integrating research and practice concerning computing education, and at the development of computing tools and associated human methods for supporting education. Besides having a well-rounded education, Dr. Shackelford also loves baseball and occasionally can be found walking on the beach somewhere in Alabama.
0201314517AB04062001
I. THE COMPUTING PERSPECTIVE.
Technology, Science and Culture.
What is Technology.
Technology and Human Evolution.
Paradigmatic Change.
The Age of Tribal Consciousness.
Abstract Media Technology.
The Age of Absolute Abstraction.
Mechanical Media Technology.
The Age of Mechanistic Thinking.
Electronic Media Technology.
Hallmarks of a Paradigm Shift.
Essential Features of the Emerging Paradigm.
The Central Theme of the New Paradigm.
The Algorithmic Model.
Introduction.
Flow Charts.
Properties of Algorithms.
Algorithms.
Components.
Seeing Things from the Computing Perspective.
Summary.
II. THE ALGORITHM TOOLKIT.
Basic Data, Operations, and Decisions.
Atomic Data.
Operators.
Data Types and Declarations.
Conditions and Decisions.
Summary.
Tools for "Procedural Abstraction."
Why modularity?
Two Kinds of Modules.
The Scope of Data.
Parameters.
The Importance of Procedural Abstraction.
Documenting Modules.
Recursive Control.
Using a stack to Trace Recursion.
Summary.
Tools for "Data Abstraction."
Records.
The Difference Between Types and Variables.
Anonymous Data Types.
Dynamic Data Structures.
Linked Lists.
The Scope of Linked Data.
Binary Trees.
Graphs.
Iterative Control.
Iteration vs. Recursion.
Arrays.
The Abstraction Power of Constants.
The "Data Abstraction" Power of Creating New Data Types.
Summary.
Graphical Data Notation.
Algorithmic Methods.
Searches and Traversals.
Divide and Conquer.
Optimization Algorithms.
Summary.
Tools for Estimating Cost and Complexity.
Measures of Performance.
Analysis of work done.
Performance and Data Structures.
Reasonable vs. Unreasonable Algorithms.
Summary.
Tools for Verifying Correctness.
Bugs and Debugging.
Ambiguity.
Language errors.
Logic errors.
Proving correctness.
Verification.
Summary.
Tools for "Behavioral Abstraction."
The "Object-Oriented" Paradigm.
The Benefits of the OO Approach.
Achieving Superior Encapsulation.
Achieving Superior Reusability.
Achieving Superior Adaptability.
Achieving Polymorphism.
Everything is an Object.
Summary.
III. THE LIMITS OF COMPUTING.
Concurrency and Parallelism.
Overview: Concurrency vs. Parallelism.
Concurrency.
Issues in Concurrency.
Parallelism.
Summary.
Hierarchies of Complexity.
The Complexity of Problems.
Tractable vs. Intractable Problems.
"NP-Complete" Problems.
Oracles and Determinism.
NP-Complete vs. Intractable Problems.
Undecidability.
Summary. 0201314517T04062001