Foundations of Computation


Book Description

Foundations of Computation is a free textbook for a one-semester course in theoretical computer science. It has been used for several years in a course at Hobart and William Smith Colleges. The course has no prerequisites other than introductory computer programming. The first half of the course covers material on logic, sets, and functions that would often be taught in a course in discrete mathematics. The second part covers material on automata, formal languages and grammar that would ordinarily be encountered in an upper level course in theoretical computer science.




Foundations of Computer Science


Book Description




Mathematical Foundations of Computer Science


Book Description

Please note: Taylor & Francis does not sell or distribute the Hardback in India, Pakistan, Nepal, Bhutan, Bangladesh and Sri Lanka




On the Foundations of Computing


Book Description

"On The Foundations of Computing is a technical, historical and conceptual investigation in the three main methodological approaches to the computational sciences: mathematical, engineering and experimental. The first part of the volume explores the background behind the formal understanding of computing, originating at the end of the XIX century, and it invesitagtes the formal origins and conceptual development of the notions of computation, algorithm and program. The second part of the volume overviews the construction of physical devices to perform automated tasks and it considers associated technical and conceptual issues. We start from the design and construction of the first generation of computing machines, explore their evolution and progress in engineering (for both hardware and software), and investigate their theoretical and conceptual problems. The third part of the volume analyses the methods and principles of experimental sciences founded on computational methods. We study the use of machines to perform scientific tasks, with particular reference to computer models and simulations. Each part aims at defining a notion of computational validity according to the corresponding methodological approach"--




Foundations of Computing


Book Description

Written for professionals learning the field of discrete mathematics, this book provides the necessary foundations of computer science without requiring excessive mathematical prerequisites. Using a balanced approach of theory and examples, software engineers will find it a refreshing treatment of applications in programming.




Foundations of Computational Mathematics


Book Description

Collection of papers by leading researchers in computational mathematics, suitable for graduate students and researchers.




Mathematical Foundations of Computer Science


Book Description

Mathematical Foundations of Computer Science, Volume I is the first of two volumes presenting topics from mathematics (mostly discrete mathematics) which have proven relevant and useful to computer science. This volume treats basic topics, mostly of a set-theoretical nature (sets, functions and relations, partially ordered sets, induction, enumerability, and diagonalization) and illustrates the usefulness of mathematical ideas by presenting applications to computer science. Readers will find useful applications in algorithms, databases, semantics of programming languages, formal languages, theory of computation, and program verification. The material is treated in a straightforward, systematic, and rigorous manner. The volume is organized by mathematical area, making the material easily accessible to the upper-undergraduate students in mathematics as well as in computer science and each chapter contains a large number of exercises. The volume can be used as a textbook, but it will also be useful to researchers and professionals who want a thorough presentation of the mathematical tools they need in a single source. In addition, the book can be used effectively as supplementary reading material in computer science courses, particularly those courses which involve the semantics of programming languages, formal languages and automata, and logic programming.




Foundations for Programming Languages


Book Description

"Programming languages embody the pragmatics of designing software systems, and also the mathematical concepts which underlie them. Anyone who wants to know how, for example, object-oriented programming rests upon a firm foundation in logic should read this book. It guides one surefootedly through the rich variety of basic programming concepts developed over the past forty years." -- Robin Milner, Professor of Computer Science, The Computer Laboratory, Cambridge University "Programming languages need not be designed in an intellectual vacuum; John Mitchell's book provides an extensive analysis of the fundamental notions underlying programming constructs. A basic grasp of this material is essential for the understanding, comparative analysis, and design of programming languages." -- Luca Cardelli, Digital Equipment Corporation Written for advanced undergraduate and beginning graduate students, "Foundations for Programming Languages" uses a series of typed lambda calculi to study the axiomatic, operational, and denotational semantics of sequential programming languages. Later chapters are devoted to progressively more sophisticated type systems.







Computability and Complexity


Book Description

Computability and complexity theory should be of central concern to practitioners as well as theorists. Unfortunately, however, the field is known for its impenetrability. Neil Jones's goal as an educator and author is to build a bridge between computability and complexity theory and other areas of computer science, especially programming. In a shift away from the Turing machine- and G�del number-oriented classical approaches, Jones uses concepts familiar from programming languages to make computability and complexity more accessible to computer scientists and more applicable to practical programming problems. According to Jones, the fields of computability and complexity theory, as well as programming languages and semantics, have a great deal to offer each other. Computability and complexity theory have a breadth, depth, and generality not often seen in programming languages. The programming language community, meanwhile, has a firm grasp of algorithm design, presentation, and implementation. In addition, programming languages sometimes provide computational models that are more realistic in certain crucial aspects than traditional models. New results in the book include a proof that constant time factors do matter for its programming-oriented model of computation. (In contrast, Turing machines have a counterintuitive "constant speedup" property: that almost any program can be made to run faster, by any amount. Its proof involves techniques irrelevant to practice.) Further results include simple characterizations in programming terms of the central complexity classes PTIME and LOGSPACE, and a new approach to complete problems for NLOGSPACE, PTIME, NPTIME, and PSPACE, uniformly based on Boolean programs. Foundations of Computing series