This book covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.
This illuminating textbook provides a concise review of the core concepts in mathematics essential to computer scientists. Emphasis is placed on the practical computing applications enabled by seemingly abstract mathematical ideas, presented within their historical context. The text spans a broad selection of key topics, ranging from the use of finite field theory to correct code and the role of number theory in cryptography, to the value of graph theory when modelling networks and the importance of formal methods for safety critical systems. This fully updated new edition has been expanded with a more comprehensive treatment of algorithms, logic, automata theory, model checking, software reliability and dependability, algebra, sequences and series, and mathematical induction. Topics and features: includes numerous pedagogical features, such as chapter-opening key topics, chapter introductions and summaries, review questions, and a glossary; describes the historical contributions of such prominent figures as Leibniz, Babbage, Boole, and von Neumann; introduces the fundamental mathematical concepts of sets, relations and functions, along with the basics of number theory, algebra, algorithms, and matrices; explores arithmetic and geometric sequences and series, mathematical induction and recursion, graph theory, computability and decidability, and automata theory; reviews the core issues of coding theory, language theory, software engineering, and software reliability, as well as formal methods and model checking; covers key topics on logic, from ancient Greek contributions to modern applications in AI, and discusses the nature of mathematical proof and theorem proving; presents a short introduction to probability and statistics, complex numbers and quaternions, and calculus. This engaging and easy-to-understand book will appeal to students of computer science wishing for an overview of the mathematics used in computing, and to mathematicians curious about how their subject is applied in the field of computer science. The book will also capture the interest of the motivated general reader.
This textbook presents the elementary aspects of quantum computing in a mathematical form. It is intended as core or supplementary reading for physicists, mathematicians, and computer scientists taking a first course on quantum computing. It starts by introducing the basic mathematics required for quantum mechanics, and then goes on to present, in detail, the notions of quantum mechanics, entanglement, quantum gates, and quantum algorithms, of which Shor's factorisation and Grover's search algorithm are discussed extensively. In addition, the algorithms for the Abelian Hidden Subgroup and Discrete Logarithm problems are presented and the latter is used to show how the Bitcoin digital signature may be compromised. It also addresses the problem of error correction as well as giving a detailed exposition of adiabatic quantum computing. The book contains around 140 exercises for the student, covering all of the topics treated, together with an appendix of solutions.
This title explores concepts of games and strategies to provide a paradigm for understanding the nature of computation and provides an elementary introduction to the mathematics and modelling of computing systems through exercises and examples, giving readers the opportunities to test their understanding and broaden their knowledge.
This easy-to-follow textbook introduces the mathematical language, knowledge and problem-solving skills that undergraduates need to study computing. The language is in part qualitative, with concepts such as set, relation, function and recursion/induction; but it is also partly quantitative, with principles of counting and finite probability. Entwined with both are the fundamental notions of logic and their use for representation and proof. Features: teaches finite math as a language for thinking, as much as knowledge and skills to be acquired; uses an intuitive approach with a focus on examples for all general concepts; brings out the interplay between the qualitative and the quantitative in all areas covered, particularly in the treatment of recursion and induction; balances carefully the abstract and concrete, principles and proofs, specific facts and general perspectives; includes highlight boxes that raise common queries and clear confusions; provides numerous exercises, with selected solutions.
This unique book provides a comprehensive introduction to computational mathematics, which forms an essential part of contemporary numerical algorithms, scientific computing and optimization. It uses a theorem-free approach with just the right balance between mathematics and numerical algorithms. This edition covers all major topics in computational mathematics with a wide range of carefully selected numerical algorithms, ranging from the root-finding algorithm, numerical integration, numerical methods of partial differential equations, finite element methods, optimization algorithms, stochastic models, nonlinear curve-fitting to data modelling, bio-inspired algorithms and swarm intelligence. This book is especially suitable for both undergraduates and graduates in computational mathematics, numerical algorithms, scientific computing, mathematical programming, artificial intelligence and engineering optimization. Thus, it can be used as a textbook and/or reference book.
Thirty years ago mathematical, as opposed to applied numerical, computation was difficult to perform and so relatively little used. Three threads changed that: the emergence of the personal computer; the discovery of fiber-optics and the consequent development of the modern internet; and the building of the Three “M’s” Maple, Mathematica and Matlab. We intend to persuade that Mathematica and other similar tools are worth knowing, assuming only that one wishes to be a mathematician, a mathematics educator, a computer scientist, an engineer or scientist, or anyone else who wishes/needs to use mathematics better. We also hope to explain how to become an "experimental mathematician" while learning to be better at proving things. To accomplish this our material is divided into three main chapters followed by a postscript. These cover elementary number theory, calculus of one and several variables, introductory linear algebra, and visualization and interactive geometric computation.
This volume traces back the history of interaction between the “computational” or “algorithmic” aspects of elementary mathematics and mathematics education throughout ages. More specifically, the examples of mathematical practices analyzed by the historians of mathematics and mathematics education who authored the chapters in the present collection show that the development (and, in some cases, decline) of counting devices and related computational practices needs to be considered within a particular context to which they arguably belonged, namely, the context of mathematics instruction; in their contributions the authors also explore the role that the instruments played in formation of didactical approaches in various mathematical traditions, stretching from Ancient Mesopotamia to the 20th century Europe and North America.
This book introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills - the skills needed to solve complex problems, to evaluate horrendous sums, and to discover subtle patterns in data. It is an indispensable text and reference not only for computer scientists - the authors themselves rely heavily on it! - but for serious users of mathematics in virtually every discipline. Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics. "More concretely," the authors explain, "it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems." The subject matter is primarily an expansion of the Mathematical Preliminaries section in Knuth's classic Art of Computer Programming, but the style of presentation is more leisurely, and individual topics are covered more deeply. Several new topics have been added, and the most significant ideas have been traced to their historical roots. The book includes more than 500 exercises, divided into six categories. Complete answers are provided for all exercises, except research problems, making the book particularly valuable for self-study. Major topics include: Sums Recurrences Integer functions Elementary number theory Binomial coefficients Generating functions Discrete probability Asymptotic methods This second edition includes important new material about mechanical summation. In response to the widespread use of the first edition as a reference book, the bibliography and index have also been expanded, and additional nontrivial improvements can be found on almost every page. Readers will appreciate the informal style of Concrete Mathematics. Particularly enjoyable are the marginal graffiti contributed by students who have taken courses based on this material. The authors want to convey not only the importance of the techniques presented, but some of the fun in learning and using them.