The book, dedicated to undergraduate students just starting their studies, promises a basic grounding in mathematics to be used in computer science (CS) and the related scientific subjects.
It contains 25 chapters, starting with chapter 0. Each chapter succinctly covers fundamental mathematical and CS concepts and methods, and the basics of subdisciplines. In chapter 0, Antonsen mentions Pólya’s seminal book about problem-solving methods in mathematics ; this book tries to follow the ideas and principles presented in Pólya’s book. Antonsen provides a compact description of the mathematical fields that are relevant to undergraduate CS students as an introductory step, and includes a set of exercises at the end of each chapter.
Chapters 1 through 4 contain an elementary introduction to set theory and propositional logic. The text and exercises yield good information that can be applied to programming languages and program design. Chapters 6 and 7 discuss relations and functions. Both concepts are very useful in database theories and programming, not only in mathematics. Chapters 8 and 9 enhance the basics of set theory, which are useful for formal and programming languages. Recursive function concepts are covered from both mathematics and CS points of view. Chapters 11 and 12 deal with the powerful proof method of induction and demonstrate its power on data structures, namely, strings, lists, and binary trees.
Chapters 13 through 17 provide a more in-depth look at logics. These chapters cover first-order languages, basic concepts of model theory in logics and reasoning, and equivalence relations. All of them are very useful in various areas of informatics. Chapters 18, 19, 21, and 22 are gentle introductions to combinatorics and discrete mathematics, including graph theories. Chapter 20 contains some elementary parts of abstract algebra. Chapter 23 looks at formal languages, especially regular languages and automata, a part of the Chomsky hierarchy as a first acquaintance. Chapter 24 considers the foundations of logical calculus and natural deduction. It showcases the formal description and syntax of the deduction rules. The chapter analyzes the notions of syntax and semantics, and in this context the soundness and completeness of a logical calculus. Understanding these concepts in the application of CS is crucially important.
From personal teaching experience, knowledge of these
mathematical areas is necessary for disparate fields of CS and informatics. These foundations are needed for many fields, from database theory to various domains of information systems applications. The book’s presentation of topics and incentives for problem-solving, along with its exercises, is very useful for university-level instructors and students. The compact chapters contain clear explanations, diagrams, and brief descriptions of interesting facts.