Structures of Computing explains the behavioral meaning of fundamental concepts of computing from a practical viewpoint and in generic terms, unrestricted by specific computing devices or programming languages. To compute is understood as processing structures by a set of cooperating agents each of which executes an algorithm assigned to it and interacts with the other agents.
Part I of the book defines the conceptual constituents of interactive processes: (i) data, i.e. structured objects with associated properties, relations and functions the algorithmic processes operate upon, (ii) basic operations that affect the data in single execution steps, and (iii) control mechanisms that determine the combination of single steps in multi-agent computations where the interaction happens via communication or other forms of data sharing.
Part II analyses these constituents concerning (i) methods to achieve process correctness (inspection, experimental validation, reasoning), (ii) principal computational paradigms (architectures, programming styles, communication structures, control patterns from sequential and reflective to concurrent, mixed synchronous/asynchronous and data flow control), and (iii) complexity (power and limits of computing structures).
The book is mainly addressed to students and professionals who want to understand the conceptual foundation of computing. It does not assume any specific programming experience but only a basic understanding of what are mechanically executable processes and their descriptions. Any unnecessary formalism is thus avoided, and definitions are formulated as much as possible in natural language, using common mathematical notation only where needed to prevent ambiguities. Numerous examples and exercises serve as comprehension checkpoints.