New Full Version With Online Assessment Now Available!
Undergraduate computer science students need to learn and use the mathematical method of abstraction, definition, and proof, perhaps even earlier than do mathematics students. They deal constantly with formally defined systems beyond those studied in mathematics courses, and must be able reason about them formally in order to write and understand programs.
A Mathematical Foundation for Computer Science introduces the mathematical method using examples from computer science, often illustrated by Java-like code. It begins with propositional and predicate logic, introduces number theory, and deals thoroughly with mathematical induction as it relates to recursive definition and recursive algorithms. Later chapters cover combinatorics, probability, graphs and searching, finite-state machines, and a brief introduction to formal language theory.
Each chapter is divided into narrative sections, each with Exercises and Problems, and Excursion sections suitable for active learning exercises.
This revised preliminary edition contains the eight chapters that are used as the textbook for a UMass course, COMPSCI 250.
Chapter 1: Sets, Propositions and Predicates
Chapter 2: Quantifiers and Predicate Calculus
Chapter 3: Number Theory
Chapter 4: Recursion and Proof By Induction
Chapter 5: Regular Expressions and Other Recursive Systems
Chapter 6: Fundamental Counting Problems
Chapter 7: Further Topics in Combinatorics
Chapter 8: Graphs
Chapter 9: Trees and Searching
Chapter 10: Discrete Probability
Chapter 11: Reasoning About Uncertainty
Chapter 12: Markov Processes and Classical Games
Chapter 13: Information Theory
Chapter 14: Finite-State Machines
Chapter 15: A Brief Tour of Formal Language Theory