CRC Press, 2025. — 228 c. — ISBN 978-1-032-46787-0.
Mathematical Foundations of Computer Science introduces students to the discrete mathematics needed later in their Computer Science coursework with theory of computation topics interleaved throughout. Students learn about mathematical concepts just in time to apply them to theory of computation ideas. For instance, sets motivate the study of finite automata, direct proof is practised using closure properties, induction is used to prove the language of an automaton, and contradiction is used to apply the pumping lemma. The main content of the book starts with primitive data types such as sets and strings and ends with showing the undecidability of the halting problem. There are also appendix chapters on combinatorics, probability, elementary number theory, asymptotic notation, graphs, loop invariants, and recurrences. The content is laid out concisely with a heavy reliance on worked examples, of which there are over 250 in the book. Each chapter has exercises, totalling 550. This class-tested textbook is targeted to intermediate Computer Science majors, and it is primarily intended for a discrete math/proofs course in a Computer Science major. It is also suitable for introductory theory of computation courses.
Preface
Mathematical Data Types
Deterministic Finite Automata
Logic
Nondeterministic Finite Automata
Regular Expressions
Equivalence of Regular Languages and Regular Expressions
Direct Proof and Closure Properties
Induction
Proving the Language of a DFA
Proof by Contradiction
Pumping Lemma for Regular Languages
Context-Free Grammars
Turing Machines
Computability
Appendix A Counting
Appendix B Probability
Appendix C Elementary Number Theory
Appendix D Asymptotic Notation
Appendix E Graphs
Appendix F Loop Invariants
Appendix G Recurrence Relations