Fundamentals of the Theory of Computation


Book Description

This innovative textbook presents the key foundational concepts for a one-semester undergraduate course in the theory of computation. It offers the most accessible and motivational course material available for undergraduate computer theory classes. Directed at undergraduates who may have difficulty understanding the relevance of the course to their future careers, the text helps make them more comfortable with the techniques required for the deeper study of computer science. The text motivates students by clarifying complex theory with many examples, exercises and detailed proofs.




Cloud Computing


Book Description

Cloud Computing: Theory and Practice provides students and IT professionals with an in-depth analysis of the cloud from the ground up. Beginning with a discussion of parallel computing and architectures and distributed systems, the book turns to contemporary cloud infrastructures, how they are being deployed at leading companies such as Amazon, Google and Apple, and how they can be applied in fields such as healthcare, banking and science. The volume also examines how to successfully deploy a cloud application across the enterprise using virtualization, resource management and the right amount of networking support, including content delivery networks and storage area networks. Developers will find a complete introduction to application development provided on a variety of platforms. - Learn about recent trends in cloud computing in critical areas such as: resource management, security, energy consumption, ethics, and complex systems - Get a detailed hands-on set of practical recipes that help simplify the deployment of a cloud based system for practical use of computing clouds along with an in-depth discussion of several projects - Understand the evolution of cloud computing and why the cloud computing paradigm has a better chance to succeed than previous efforts in large-scale distributed computing




Statistical Optimization for Geometric Computation


Book Description

This text for graduate students discusses the mathematical foundations of statistical inference for building three-dimensional models from image and sensor data that contain noise--a task involving autonomous robots guided by video cameras and sensors. The text employs a theoretical accuracy for the optimization procedure, which maximizes the reliability of estimations based on noise data. The numerous mathematical prerequisites for developing the theories are explained systematically in separate chapters. These methods range from linear algebra, optimization, and geometry to a detailed statistical theory of geometric patterns, fitting estimates, and model selection. In addition, examples drawn from both synthetic and real data demonstrate the insufficiencies of conventional procedures and the improvements in accuracy that result from the use of optimal methods.




Reconfigurable Computing


Book Description

Reconfigurable Computing marks a revolutionary and hot topic that bridges the gap between the separate worlds of hardware and software design— the key feature of reconfigurable computing is its groundbreaking ability to perform computations in hardware to increase performance while retaining the flexibility of a software solution. Reconfigurable computers serve as affordable, fast, and accurate tools for developing designs ranging from single chip architectures to multi-chip and embedded systems. Scott Hauck and Andre DeHon have assembled a group of the key experts in the fields of both hardware and software computing to provide an introduction to the entire range of issues relating to reconfigurable computing. FPGAs (field programmable gate arrays) act as the "computing vehicles to implement this powerful technology. Readers will be guided into adopting a completely new way of handling existing design concerns and be able to make use of the vast opportunities possible with reconfigurable logic in this rapidly evolving field. - Designed for both hardware and software programmers - Views of reconfigurable programming beyond standard programming languages - Broad set of case studies demonstrating how to use FPGAs in novel and efficient ways




Fog Computing


Book Description

Summarizes the current state and upcoming trends within the area of fog computing Written by some of the leading experts in the field, Fog Computing: Theory and Practice focuses on the technological aspects of employing fog computing in various application domains, such as smart healthcare, industrial process control and improvement, smart cities, and virtual learning environments. In addition, the Machine-to-Machine (M2M) communication methods for fog computing environments are covered in depth. Presented in two parts—Fog Computing Systems and Architectures, and Fog Computing Techniques and Application—this book covers such important topics as energy efficiency and Quality of Service (QoS) issues, reliability and fault tolerance, load balancing, and scheduling in fog computing systems. It also devotes special attention to emerging trends and the industry needs associated with utilizing the mobile edge computing, Internet of Things (IoT), resource and pricing estimation, and virtualization in the fog environments. Includes chapters on deep learning, mobile edge computing, smart grid, and intelligent transportation systems beyond the theoretical and foundational concepts Explores real-time traffic surveillance from video streams and interoperability of fog computing architectures Presents the latest research on data quality in the IoT, privacy, security, and trust issues in fog computing Fog Computing: Theory and Practice provides a platform for researchers, practitioners, and graduate students from computer science, computer engineering, and various other disciplines to gain a deep understanding of fog computing.




Introduction to the Theory of Computation


Book Description

Now you can clearly present even the most complex computational theory topics to your students with Sipser’s distinct, market-leading INTRODUCTION TO THE THEORY OF COMPUTATION, 3E. The number one choice for today’s computational theory course, this highly anticipated revision retains the unmatched clarity and thorough coverage that make it a leading text for upper-level undergraduate and introductory graduate students. This edition continues author Michael Sipser’s well-known, approachable style with timely revisions, additional exercises, and more memorable examples in key areas. A new first-of-its-kind theoretical treatment of deterministic context-free languages is ideal for a better understanding of parsing and LR(k) grammars. This edition’s refined presentation ensures a trusted accuracy and clarity that make the challenging study of computational theory accessible and intuitive to students while maintaining the subject’s rigor and formalism. Readers gain a solid understanding of the fundamental mathematical properties of computer hardware, software, and applications with a blend of practical and philosophical coverage and mathematical treatments, including advanced theorems and proofs. INTRODUCTION TO THE THEORY OF COMPUTATION, 3E’s comprehensive coverage makes this an ideal ongoing reference tool for those studying theoretical computing. Important Notice: Media content referenced within the product description or the product text may not be available in the ebook version.




What Can Be Computed?


Book Description

An accessible and rigorous textbook for introducing undergraduates to computer science theory What Can Be Computed? is a uniquely accessible yet rigorous introduction to the most profound ideas at the heart of computer science. Crafted specifically for undergraduates who are studying the subject for the first time, and requiring minimal prerequisites, the book focuses on the essential fundamentals of computer science theory and features a practical approach that uses real computer programs (Python and Java) and encourages active experimentation. It is also ideal for self-study and reference. The book covers the standard topics in the theory of computation, including Turing machines and finite automata, universal computation, nondeterminism, Turing and Karp reductions, undecidability, time-complexity classes such as P and NP, and NP-completeness, including the Cook-Levin Theorem. But the book also provides a broader view of computer science and its historical development, with discussions of Turing's original 1936 computing machines, the connections between undecidability and Gödel's incompleteness theorem, and Karp's famous set of twenty-one NP-complete problems. Throughout, the book recasts traditional computer science concepts by considering how computer programs are used to solve real problems. Standard theorems are stated and proven with full mathematical rigor, but motivation and understanding are enhanced by considering concrete implementations. The book's examples and other content allow readers to view demonstrations of—and to experiment with—a wide selection of the topics it covers. The result is an ideal text for an introduction to the theory of computation. An accessible and rigorous introduction to the essential fundamentals of computer science theory, written specifically for undergraduates taking introduction to the theory of computation Features a practical, interactive approach using real computer programs (Python in the text, with forthcoming Java alternatives online) to enhance motivation and understanding Gives equal emphasis to computability and complexity Includes special topics that demonstrate the profound nature of key ideas in the theory of computation Lecture slides and Python programs are available at whatcanbecomputed.com




Introduction to Languages and the Theory of Computation


Book Description

Provides an introduction to the theory of computation that emphasizes formal languages, automata and abstract models of computation, and computability. This book also includes an introduction to computational complexity and NP-completeness.




Models of Computation


Book Description

This book presents in their basic form the most important models of computation, their basic programming paradigms, and their mathematical descriptions, both concrete and abstract. Each model is accompanied by relevant formal techniques for reasoning on it and for proving some properties. After preliminary chapters that introduce the notions of structure and meaning, semantic methods, inference rules, and logic programming, the authors arrange their chapters into parts on IMP, a simple imperative language; HOFL, a higher-order functional language; concurrent, nondeterministic and interactive models; and probabilistic/stochastic models. The authors have class-tested the book content over many years, and it will be valuable for graduate and advanced undergraduate students of theoretical computer science and distributed systems, and for researchers in this domain. Each chapter of the book concludes with a list of exercises addressing the key techniques introduced, solutions to selected exercises are offered at the end of the book.




Fundamentals of Quantum Computing


Book Description

This introductory book on quantum computing includes an emphasis on the development of algorithms. Appropriate for both university students as well as software developers interested in programming a quantum computer, this practical approach to modern quantum computing takes the reader through the required background and up to the latest developments. Beginning with introductory chapters on the required math and quantum mechanics, Fundamentals of Quantum Computing proceeds to describe four leading qubit modalities and explains the core principles of quantum computing in detail. Providing a step-by-step derivation of math and source code, some of the well-known quantum algorithms are explained in simple ways so the reader can try them either on IBM Q or Microsoft QDK. The book also includes a chapter on adiabatic quantum computing and modern concepts such as topological quantum computing and surface codes. Features: o Foundational chapters that build the necessary background on math and quantum mechanics. o Examples and illustrations throughout provide a practical approach to quantum programming with end-of-chapter exercises. o Detailed treatment on four leading qubit modalities -- trapped-ion, superconducting transmons, topological qubits, and quantum dots -- teaches how qubits work so that readers can understand how quantum computers work under the hood and devise efficient algorithms and error correction codes. Also introduces protected qubits - 0-π qubits, fluxon parity protected qubits, and charge-parity protected qubits. o Principles of quantum computing, such as quantum superposition principle, quantum entanglement, quantum teleportation, no-cloning theorem, quantum parallelism, and quantum interference are explained in detail. A dedicated chapter on quantum algorithm explores both oracle-based, and Quantum Fourier Transform-based algorithms in detail with step-by-step math and working code that runs on IBM QisKit and Microsoft QDK. Topics on EPR Paradox, Quantum Key Distribution protocols, Density Matrix formalism, and Stabilizer formalism are intriguing. While focusing on the universal gate model of quantum computing, this book also introduces adiabatic quantum computing and quantum annealing. This book includes a section on fault-tolerant quantum computing to make the discussions complete. The topics on Quantum Error Correction, Surface codes such as Toric code and Planar code, and protected qubits help explain how fault tolerance can be built at the system level.