Introduction to Computer Theory


Book Description

This text strikes a good balance between rigor and an intuitive approach to computer theory. Covers all the topics needed by computer scientists with a sometimes humorous approach that reviewers found "refreshing". It is easy to read and the coverage of mathematics is fairly simple so readers do not have to worry about proving theorems.




Ideas That Created the Future


Book Description

Classic papers by thinkers ranging from from Aristotle and Leibniz to Norbert Wiener and Gordon Moore that chart the evolution of computer science. Ideas That Created the Future collects forty-six classic papers in computer science that map the evolution of the field. It covers all aspects of computer science: theory and practice, architectures and algorithms, and logic and software systems, with an emphasis on the period of 1936-1980 but also including important early work. Offering papers by thinkers ranging from Aristotle and Leibniz to Alan Turing and Nobert Wiener, the book documents the discoveries and inventions that created today's digital world. Each paper is accompanied by a brief essay by Harry Lewis, the volume's editor, offering historical and intellectual context.




Basic Category Theory for Computer Scientists


Book Description

Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Four case studies illustrate applications of category theory to programming language design, semantics, and the solution of recursive domain equations. A brief literature survey offers suggestions for further study in more advanced texts. Contents Tutorial • Applications • Further Reading




The Energetics of Computing in Life and Machines


Book Description

Why do computers use so much energy? What are the fundamental physical laws governing the relationship between the precise computation run by a system, whether artificial or natural, and how much energy that computation requires? This volume integrates concepts from diverse fields, cultivating a modern, nonequilibrium thermodynamics of computation.




Role Of Theory In Computer Science, The: Essays Dedicated To Janusz Brzozowski


Book Description

This volume brings together the work of several prominent researchers who have collaborated with Janusz Brzozowski, or worked in topics he developed, in the areas of regular languages, syntactic semigroups of formal languages, the dot-depth hierarchy, and formal modeling of circuit testing and software specification using automata theory.




Number Theory for Computing


Book Description

This book provides a good introduction to the classical elementary number theory and the modern algorithmic number theory, and their applications in computing and information technology, including computer systems design, cryptography and network security. In this second edition proofs of many theorems have been provided, further additions and corrections were made.




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




John von Neumann and the Origins of Modern Computing


Book Description

William Aspray provides the first broad and detailed account of von Neumann's many different contributions to computing. John von Neumann (1903-1957) was unquestionably one of the most brilliant scientists of the twentieth century. He made major contributions to quantum mechanics and mathematical physics and in 1943 began a new and all-too-short career in computer science. William Aspray provides the first broad and detailed account of von Neumann's many different contributions to computing. These, Aspray reveals, extended far beyond his well-known work in the design and construction of computer systems to include important scientific applications, the revival of numerical analysis, and the creation of a theory of computing.Aspray points out that from the beginning von Neumann took a wider and more theoretical view than other computer pioneers. In the now famous EDVAC report of 1945, von Neumann clearly stated the idea of a stored program that resides in the computer's memory along with the data it was to operate on. This stored program computer was described in terms of idealized neurons, highlighting the analogy between the digital computer and the human brain. Aspray describes von Neumann's development during the next decade, and almost entirely alone, of a theory of complicated information processing systems, or automata, and the introduction of themes such as learning, reliability of systems with unreliable components, self-replication, and the importance of memory and storage capacity in biological nervous systems; many of these themes remain at the heart of current investigations in parallel or neurocomputing.Aspray allows the record to speak for itself. He unravels an intricate sequence of stories generated by von Neumann's work and brings into focus the interplay of personalities centered about von Neumann. He documents the complex interactions of science, the military, and business and shows how progress in applied mathematics was intertwined with that in computers. William Aspray is Director of the Center for the History of Electrical Engineering at The Institute of Electrical and Electronics Engineers.




Theory of Computer Science


Book Description

This Third Edition, in response to the enthusiastic reception given by academia and students to the previous edition, offers a cohesive presentation of all aspects of theoretical computer science, namely automata, formal languages, computability, and complexity. Besides, it includes coverage of mathematical preliminaries. NEW TO THIS EDITION • Expanded sections on pigeonhole principle and the principle of induction (both in Chapter 2) • A rigorous proof of Kleene’s theorem (Chapter 5) • Major changes in the chapter on Turing machines (TMs) – A new section on high-level description of TMs – Techniques for the construction of TMs – Multitape TM and nondeterministic TM • A new chapter (Chapter 10) on decidability and recursively enumerable languages • A new chapter (Chapter 12) on complexity theory and NP-complete problems • A section on quantum computation in Chapter 12. • KEY FEATURES • Objective-type questions in each chapter—with answers provided at the end of the book. • Eighty-three additional solved examples—added as Supplementary Examples in each chapter. • Detailed solutions at the end of the book to chapter-end exercises. The book is designed to meet the needs of the undergraduate and postgraduate students of computer science and engineering as well as those of the students offering courses in computer applications.