From the reviews:
"A collection of articles covering most major facets of the computer science curriculum. ... its contents will be appreciated mostly by knowledgeable computer scientists ... . the volume provides a valuable perspective on all topics addressed and can help computer scientists appreciate the beauty of the theories that founded and continue to develop this exciting science. Summing Up: Highly recommended. Upper-division undergraduates and above." (D. Papamichail, Choice, Vol. 49 (10), June, 2012)
"Producing a single volume that introduces all, or even a significant part, of computer science is a difficult task by any measure. Yet, that is what the editors and contributors (some of whom are well known) have attempted in this anthology. ... the book is, on the whole, a commendable effort. It could introduce beginners to certain important aspects of the fast-growing discipline of computer science." (Shrisha Rao, ACM Computing Reviews, November, 2012)
Introduction.- Computation: A Brief History Prior to 1900.- The Heart of Computer Science.- The Software of Computer Science, Computer Programming from Fortran to C++.- The Hardware of Computer Science.- Operating Systems.- Computer Networks.- High Performance Computing and Communication (HPCC).- Programming for Distributed Computing.- Databases.- Computer Security: Cryptographic Methods, Public Key Cryptography, RSA, ECC.- Complexity Theory.- Multi-variate (Parameterized) Complexity.- Quantum Computing.- Numerical Thinking in Algorithm Design and Analysis.- Fuzzy Logic and Computer Science.- Statistics of the Field.
Computer Science: The Hardware, Software and Heart of It focuses on the deeper aspects of the two recognized subdivisions of Computer Science, Software and Hardware. These subdivisions are shown to be closely interrelated as a result of the stored-program concept. Computer Science: The Hardware, Software and Heart of It includes certain classical theoretical computer science topics such as Unsolvability (e.g. the halting problem) and Undecidability (e.g. Godel's incompleteness theorem) that treat problems that exist under the Church-Turing thesis of computation. These problem topics explain inherent limits lying at the heart of software, and in effect define boundaries beyond which computer science professionals cannot go beyond. Newer topics such as Cloud Computing are also covered in this book. After a survey of traditional programming languages (e.g. Fortran and C++), a new kind of computer Programming for parallel/distributed computing is presented using the message-passing paradigm which is at the heart of large clusters of computers. This leads to descriptions of current hardware platforms for large-scale computing, such as clusters of as many as one thousand which are the new generation of supercomputers. This also leads to a consideration of future quantum computers and a possible escape from the Church-Turing thesis to a new computation paradigm.
The book's historical context is especially helpful during this, the centenary of Turing's birth. Alan Turing is widely regarded as the father of Computer Science, since many concepts in both the hardware and software of Computer Science can be traced to his pioneering research. Turing was a multi-faceted mathematician-engineer and was able to work on both concrete and abstract levels. This book shows how these two seemingly disparate aspects of Computer Science are intimately related. Further, the book treats the theoretical side of Computer Science as well, which also derives from Turing's research.
Computer Science: The Hardware, Software and Heart of It is designed as a professional book for practitioners and researchers working in the related fields of Quantum Computing, Cloud Computing, Computer Networking, as well as non-scientist readers. Advanced-level and undergraduate students concentrating on computer science, engineering and mathematics will also find this book useful.
Includes a survey and technical critique of computer science with non-mathematical explanations and suffient technical explanations to satisfy computer scientists and engineers
Covers a new kind of computer programming for parallel/distributed computing using the message-passing paradigm which is at the heart of large clusters of computers
Treats the dual character of computer science as both a hardware and software discipline by providing several examples