The Book

An Introduction to Mathematical Computer Science


Author: Kasturi Viswanath

Price : INR.425.00 (About $10.00)

ISBN  978-81-7371-630-0

Page Extent : 304

Year : 2008

Binding : Paperback

Publisher :  Universities Press, Hyderabad, India

Copies may be ordered online from here: http://www.universitiespress.com/display.asp?categoryID=26&isbn=978-81-7371-630-0


The Book

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.

  Table of Contents:  

Foreword by Prof. Kesav Nori

 

Preface

 
Chapter 1:  Motivation and Notation
 
    1.1 What is a computation?
    1.2 Simple Examples
    1.3 Notational Conventions
    1.4 The Specification Map
    1.5 State Space and Program Map
    1.6 Input Map and Output Map
    1.7 Mapcode Computation
    1.8 Complementary Remarks
    1.9 Exercises

Chapter 2:  Discrete Flows

    21. The Limit Map
    2.2 Patches and Quilts
    2.3 New Maps from Old
    2.4 Knuth's Definition of an Algorithm
    2.5 Hoare Axiomatics
    2.6 Dijkstra's wp Formalism
    2.7 Undecidability
    2.8 Universality
    2.9 Exercises

Chapter 3:  Mapcode Machines

    3.1 Mapcode Machines
    3.2 Documentation
    3.3 Standard Programs and Mapcode Algorithms
    3.4 Proof Techniques
    3.5 Efficiency
    3.6 Complemantary Remarks
    3.7 Exercises

Chapter 4:  Finite Automata

    4.1 Definitions
    4.2 Examples
    4.3 Exercises

Chapter 5: Turing Machines

    5.1 Motivation
    5.2 Turing Maps
    5.3 Recognition and Acceptance of Languages
    5.4 Numerical Computations
    5.5 Exercises

Chapter 6: What is Programming?

    6.1 Formulation of the Problem
    6.2 The 10-Step Design Process
    6.3 The Dijkstra-Gries Methodology
    6.4 Method of Variation of Specificagtions
    6.5 Detecting Zero Strings
    6.6 Complementary Remarks
    6.7 Exercises

Chapter 7: Mapcode Theorems

    7.1 Maximum of Two Numbers
    7.2 Location and Value of Maximum
    7.3 Remainder and Quotient
    7.4 Integeral Part of a Square Root
    7.5 Integral Powers of Integers
    7.6 Dictionary Order of Permutations
    7.7 Greatest Common Divisor
    7.8 Egyptian Multiplication
    7.9 Radix Representation and Change of Base
    7.10 The Square Root Revisited
    7.11 Fibonacci Numbers
    7.12 Towers of Hanoi
    7.13 Exercises

Chapter 8: Recursion

    8.1 Introduction
    8.2 Recursive Computations
    8.3 Exercises

Chapter 9: Sorting Algorithms

    9.1 Bubblesort
    9.2 Subroutine for Bubblesort
    9.3 Insertion Sort
    9.4 Subroutine for Insertion Sort
    9.5 Quicksort
    9.6 Subroutine for Quicksort
    9.7 Exercises

Chapter 10: Data Types

    10.1 Representing Numbers in a Computer
    10.2 Preparation
    10.3 Unsigned Magnitude
    10.4 Addition of Bit Strings
    10.5 Addition of Non-Negative Integers
    10.6 Signed Magnitude
    10.7 Ones' Complements
    10.8 Two's Complements
    10.9 Addition of Integers
    10.10 Decimal Floating Point Representation
    10.11 Binary Floating Point Representation
    10.12 Exercises

Chapter 11: Boolean Spaces and Maps

    11.1 Boolean Algebras
    11.2 Boolean Algebras and Logic
    11.3 Boolean Polynomials
    11.4 Normal Forms
    11.5 Decoders and Multiplexers
    11.6 Exercises

Chapter 12: What is a Computer?

    12.1 A Model Computer
    12.2 Machine Language Programming
    12.3 Exercises

Chapter 13: Topological Computations

    13.1 Introduction
    13.2 Definitions and Examples
    13.3 The EDSAC Algorithms
    13.4 The Real Square Root Algorithm

Chapter 14: Neural Systems

    14.1 Learning
    14.2 Perceptrons
    14.3 Perceptron Convergence Theorems
    14.4 Hopfield Nets
    14.5 Associative Memories
    14.6 General Neural Systems
    14.7 Examples of Neural Maps
    14.8 Cybenko's Theorem
    14.9 The Central Problem
    14.10 Multilayer Perceptrons
    14.11 Hopfield Nets Revisited
    14.12 Exercises
   

Appendix A Number Representations

 

 Appendix B Arithmetic with Limited Storage

 

Bibliography/  Index

 

About the Author:

 

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.

     
Subpages (1): Quicksort Main