Synopses & Reviews
Introduction to Computing and Algorithms prepares students for the world of computing by giving them a solid foundation in the study of computer science--algorithms. By taking an algorithm-based approach to the subject, this new introductory text helps students grasp overall concepts, rather than getting them bogged down with specific syntax details of a programming language that can become obsolete. Students work with algorithms from the start and apply these ideas to real problems that computers can help solve. The benefit of this approach is that students will understand the power of computers as problem-solving tools, learn to think like programmers and gain an appreication of the computer science discipline. Features
- Introduces basic computing ideas, including essential algorithm constructs, software engineering, and certain foundational aspects of theory, tailored to students at a beginning level.
- Using a "Java-like" pseudo-code, this text prepares students for learning how to program with an object-oriented language.
- Provides a comprehensive lab manaual that introduces students to various software applications that they will use throughout their careers.
- Reinforces key concepts with pedagogical features like "Food for Thought" sections and boxed definitions.
0201314517B04062001
Synopsis
Introduction to Computing and Algorithms prepares students for the world of computing by giving them a solid foundation in the study of computer science--algorithms. By taking an algorithm-based approach to the subject, this new introductory text helps students grasp overall concepts, rather than getting them bogged down with specific syntax details of a programming language that can become obsolete. Students work with algorithms from the start and apply these ideas to real problems that computers can help solve. The benefit of this approach is that students will understand the power of computers as problem-solving tools, learn to think like programmers and gain an appreication of the computer science discipline. Features
- Introduces basic computing ideas, including essential algorithm constructs, software engineering, and certain foundational aspects of theory, tailored to students at a beginning level.
- Using a "Java-like" pseudo-code, this text prepares students for learning how to program with an object-oriented language.
- Provides a comprehensive lab manaual that introduces students to various software applications that they will use throughout their careers.
- Reinforces key concepts with pedagogical features like "Food for Thought" sections and boxed definitions.
0201314517B04062001
About the Author
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
Table of Contents
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