An Introduction to Mathematical Computer Science explores an alternative approach to teaching of computer science, an approach that is independent of technology, using a methodology that simultaneously deals with both theory and practice. The ‘mapcode’ formalism introduced here is based on classical ideas, but this book is the first to explore the possibilities of the formalism extensively to evolve the subject as an area of mathematics. Using only the algebra of sets and maps and no advanced mathematics or formal logic, the book suggests a unified point of view for understanding the structure of finite automata, Turing machines, von Neumann machines, and neural systems. It also introduces a 10-step design process for devising algorithms and verifying their termination and correctness. Recursion and sorting algorithms are examined. Data types and Boolean function theory are explained from a novel point of view. A chapter on topological algorithms relates the mapcode formalism to some tools of analysis and numerical analysis. The book, with its several illustrative diagrams and exercises, will serve as textbook for mathematics and computer science students at both undergraduate and graduate levels.
Kasturi Viswanath received his PhD degree from the Indian Statistical Institute, Kolkata. He worked at the University of Illinois at Urbana-Champaign and the Madurai Kamaraj University before joining the University of Hyderabad in 1978. His interest is in the theory of dynamical systems with special reference to applications in computer science.
Foreword / Preface / Motivation and Notation / Discrete Flows / Mapcode Machines / Finite Automata / Turing Machines / What is Programming? / Mapcode Theorems / Recursion / Sorting Algorithms / Data Types / Boolean Spaces and Maps / What is a Computer? / Topological Computations / Neural Systems / Appendix A Number Representations / Appendix B Arithmetic with Limited Storage / Bibliography / Index