You may have to Search all our reviewed books and magazines, click the sign up button below to create a free account.
"Ever notice how people sometimes use math words inaccurately? Or how sometimes you instinctively know a math statement is false (or not known)? Each chapter of this book makes a point like those above and then illustrates the point by doing some real mathematics through step-by-step mathematical techniques. This book gives readers valuable information about how mathematics and theoretical computer science work, while teaching them some actual mathematics and computer science through examples and exercises. Much of the mathematics could be understood by a bright high school student. The points made can be understood by anyone with an interest in math, from the bright high school student to a Field's medal winner."--
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 finit...
This book provides an exciting history of the discovery of Ramsey Theory, and contains new research along with rare photographs of the mathematicians who developed this theory, including Paul Erdös, B.L. van der Waerden, and Henry Baudet.
This book takes the reader on a journey through Ramsey theory, from graph theory and combinatorics to set theory to logic and metamathematics. Written in an informal style with few requisites, it develops two basic principles of Ramsey theory: many combinatorial properties persist under partitions, but to witness this persistence, one has to start with very large objects. The interplay between those two principles not only produces beautiful theorems but also touches the very foundations of mathematics. In the course of this book, the reader will learn about both aspects. Among the topics explored are Ramsey's theorem for graphs and hypergraphs, van der Waerden's theorem on arithmetic progre...
Discrete mathematics is the basis of much of computer science, from algorithms and automata theory to combinatorics and graph theory. Essential Discrete Mathematics for Computer Science aims to teach mathematical reasoning as well as concepts and skills by stressing the art of proof. It is fully illustrated in color, and each chapter includes a concise summary as well as a set of exercises.
Boolean circuit complexity is the combinatorics of computer science and involves many intriguing problems that are easy to state and explain, even for the layman. This book is a comprehensive description of basic lower bound arguments, covering many of the gems of this “complexity Waterloo” that have been discovered over the past several decades, right up to results from the last year or two. Many open problems, marked as Research Problems, are mentioned along the way. The problems are mainly of combinatorial flavor but their solutions could have great consequences in circuit complexity and computer science. The book will be of interest to graduate students and researchers in the fields of computer science and discrete mathematics.
With approximately 600 problems and 35 worked examples, this supplement provides a collection of practical problems on the design, analysis and verification of algorithms. The book focuses on the important areas of algorithm design and analysis: background material; algorithm design techniques; advanced data structures and NP-completeness; and miscellaneous problems. Algorithms are expressed in Pascal-like pseudocode supported by figures, diagrams, hints, solutions, and comments.
Algorithmic puzzles are puzzles involving well-defined procedures for solving problems. This book will provide an enjoyable and accessible introduction to algorithmic puzzles that will develop the reader's algorithmic thinking. The first part of this book is a tutorial on algorithm design strategies and analysis techniques. Algorithm design strategies — exhaustive search, backtracking, divide-and-conquer and a few others — are general approaches to designing step-by-step instructions for solving problems. Analysis techniques are methods for investigating such procedures to answer questions about the ultimate result of the procedure or how many steps are executed before the procedure stop...
The computer science problem whose solution could transform life as we know it The P-NP problem is the most important open problem in computer science, if not all of mathematics. Simply stated, it asks whether every problem whose solution can be quickly checked by computer can also be quickly solved by computer. The Golden Ticket provides a nontechnical introduction to P-NP, its rich history, and its algorithmic implications for everything we do with computers and beyond. Lance Fortnow traces the history and development of P-NP, giving examples from a variety of disciplines, including economics, physics, and biology. He explores problems that capture the full difficulty of the P-NP dilemma, from discovering the shortest route through all the rides at Disney World to finding large groups of friends on Facebook. The Golden Ticket explores what we truly can and cannot achieve computationally, describing the benefits and unexpected challenges of this compelling problem.
One of the major concerns of theoretical computer science is the classifi cation of problems in terms of how hard they are. The natural measure of difficulty of a function is the amount of time needed to compute it (as a function of the length of the input). Other resources, such as space, have also been considered. In recursion theory, by contrast, a function is considered to be easy to compute if there exists some algorithm that computes it. We wish to classify functions that are hard, i.e., not computable, in a quantitative way. We cannot use time or space, since the functions are not even computable. We cannot use Turing degree, since this notion is not quantitative. Hence we need a new notion of complexity-much like time or spac~that is quantitative and yet in some way captures the level of difficulty (such as the Turing degree) of a function.