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