Discrete Mathematics for Computer Science
An Example-Based Introduction
- Available for pre-order. Item will ship after December 14, 2020
Discrete Mathematics for Computer Science: An Example-Based Introduction is intended for a first or second-year discrete mathematics course for computer science majors. It covers many important mathematical topics essential for future computer science majors, such as algorithms, number representations, logic, set theory, Boolean algebra, functions, combinatorics, algorithmic complexity, graphs, and trees.
- Designed to be especially useful for courses at the community college level
- Ideal as a first or second-year textbook for computer science majors, or as a general introduction to discrete mathematics
- Written to be accessible to those with a limited mathematics background and to aid with the transition to abstract thinking
- Filled with over 200 worked examples, boxed for easy reference, and over 200 practice problems with answers
- Contains approximately 40 simple algorithms to aid students in becoming proficient with algorithm control structures and pseudocode
An appendix on basic circuit design provides a real-world motivational example for computer science majors by drawing on multiple topics covered in the book to design a circuit that adds two eight-digit binary numbers
Table of Contents
1. Introduction to Algorithms. 1.1. What are Algorithms? 1.2. Control Structures. 1.3. Tracing an Algorithm. 1.4. Algorithm Examples. 1.5. Problems. 2. Number Representations. 2.1. Whole Numbers. 2.2. Fractional Numbers. 2.3. The Relationship Between Binary, Octal, and Hexadecimal Numbers. 2.4. Converting from Decimal Numbers. 2.5. Problems. 3. Logic. 3.1. Propositions and Connectives. 3.2. Connective Truth Tables. 3.3. Truth Value of Compound Statements. 3.4. Tautologies and Contradictions. 3.5. Logical Equivalence and The Laws of Logic. 3.6 Problems. 4. Set Theory. 4.1. Set Notation. 4.2. Set Operations. 4.3. Venn Diagrams. 4.4. The Laws of Set Theory. 4.5. Binary Relations on Sets. 4.6. Problems. 5. Boolean Algebra. 5.1. Definition of Boolean Algebra. 5.2. Logic and Set Theory as Boolean Algebras. 5.3. Digital Circuits. 5.4. Sums-of-Products and Products-of-Sums. 5.5. Problems. 6. Functions. 6.1. Introduction to Functions. 6.2. Real-valued Functions. 6.3. Function Composition and Inverses. 6.4. Problems. 7. Counting and Combinatorics. 7.1. Addition and Multiplication Principles. 7.2. Counting Algorithm Loops. 7.3. Permutations and Arrangements. 7.4. Combinations and Subsets. 7.5. Permutation and Combination Examples. 7.6. Problems. 8. Algorithmic Complexity. 8.1. Overview of Algorithmic Complexity. 8.2. Time-Complexity Functions. 8.3. Finding Time-Complexity Functions. 8.4. Big-O Notation. 8.5. Ranking Algorithms. 8.6. Problems. 9. Graph Theory. 9.1. Basic Definitions. 9.2. Eulerian and Semi-Eulerian Graphs. 9.3. Matrix representation of Graphs. 9.4. Reachability for Directed Graphs. 9.5. Problems. 10. Trees. 10.1 Basic Definitions. 10.2. Minimal Spanning Trees of Weighted Graphs. 10.3. Minimal Distance Paths. 10.4. Problems. Appendix A: Basic Circuit Design. Appendix B: Answers to Problems.
Jon Pierre Fortney graduated from the University of Pennsylvania in 1996 with a B.A. in Mathematics and Actuarial Science and a B.S.E. in Chemical Engineering. Prior to returning to graduate school he worked as both an environmental engineer and as an actuarial analyst. He graduated from Arizona State University in 2008 with a Ph.D. in Mathematics, specializing in Geometric Mechanics. Since 2012 he has worked at Zayed University in Dubai. This is his second mathematics textbook.