1. SETS, PROOF TEMPLATES, AND INDUCTION. Basic Definitions. Exercises. Operations on Sets. Exercises. The Principle of Inclusion-Exclusion. Exercises. Mathematical Induction. Program Correctness. Exercises. Strong Form of Mathematical Induction. Exercises. Chapter Review. 2. FORMAL LOGIC. Introduction to Propositional Logic. Exercises. Truth and Logical Truth. Exercises. Normal Forms. Exercises. Predicates and Quantification. Exercises. Chapter Review. 3. RELATIONS. Binary Relations. Operations on Binary Relations. Exercises. Special Types of Relations. Exercises. Equivalence Relations. Exercises. Ordering Relations. Exercises. Relational Databases: An Introduction. Exercises. Chapter Review. 4. FUNCTIONS. Basic Definitions. Exercises. Operations on Functions. Sequences and Subsequences. Exercises. The Pigeon-Hole Principle. Exercises. Countable and Uncountable Sets. Exercises. Chapter Review. 5. ANALYSIS OF ALGORITHMS. Comparing Growth Rates of Functions. Exercises. Complexity of Programs. Exercises. Uncomputability. Chapter Review. 6. GRAPH THEORY. Introduction to Graph Theory. The Handshaking Problem. Paths and Cycles. Graph Isomorphism. Representation of Graphs. Exercises. Connected Graphs. The Konigsberg Bridge Problem. Exercises. Trees. Spanning Trees. Rooted Trees. Exercises. Directed Graphs. Applications: Scheduling a Meeting Facility. Finding a Cycle in a Directed Graph. Priority in Scheduling. Connectivity in Directed Graphs. Eulerian Circuits in Directed Graphs. Exercises. Chapter Review. 7. COUNTING AND COMBINATORICS. Traveling Salesperson. Counting Principles. Set Decomposition Principle. Exercises. Permutations and Combinations. Constructing the kth Permutation. Exercises. Counting with Repeated Objects. Combinatorial Identities. Pascal?s Triangle. Exercises. Chapter Review. 8. DISCRETE PROBABILITY. Ideas of Chance in Computer Science. Exercises. Cross Product Sample Spaces. Exercises. Independent Events and Conditional Probability. Exercises. Discrete Random Variables. Exercises. Variance, Standard Deviation, and the Law of Averages. Exercises. Chapter Review. 9. RECURRENCE RELATIONS. The Tower of Hanoi Problem. Solving First-Order Recurrence Relations. Exercises. Second-Order Recurrence Relations. Exercises. Divide-and-Conquer Paradigm. Binary Search. Merge Sort. Multiplication of n-Bit Numbers. Divide-and-Conquer Recurrence Relations. Exercises. Chapter Review.
About the Author
Gary Haggard is Professor of Computer Science at Bucknell University. His research in data structures focuses on the implementation of effective algorithms for computing invariants for large combinatorial structures such as graphs. Dr. Haggard¿s current work is directed towards finding chromatic polynomials of large graphs.
John Schlipf is a Professor of Computer Science in the Department of Electrical and Computer Engineering and Computer Science at the University of Cincinnati. His research interests include logic programming and deductive databases, algorithms for satisfiability, computability and complexity, formal verification, and model theory.
Sue Whitesides is Professor of Computer Science at McGill University. She holds a Ph.D. from University of Wisconsin and a Masters from Stanford University. Her research interests lie within combinatorial mathematics and theoretical computer science.