More About
This Textbook

Overview

This best-selling book provides an accessible introduction to discrete mathematics through an algorithmic approach that focuses on problem- solving techniques. This edition has the techniques of proofs woven into the text as a running theme and each chapter has the problem-solving corner. The text provides complete coverage of: Logic and Proofs; Algorithms; Counting Methods and the Pigeonhole Principle; Recurrence Relations; Graph Theory; Trees; Network Models; Boolean Algebra and Combinatorial Circuits; Automata, Grammars, and Languages; Computational Geometry. For individuals interested in mastering introductory discrete mathematics.

Editorial Reviews

Booknews

New edition of a time-tested text first published in 1984 in response to a need for a course that extended students' mathematical maturity and ability to deal with abstraction and included useful topics such as combinatorics, algorithms, and graphs. Intended for a one-or two- term introductory course, the text does not require knowledge of calculus, and there are no computer science prerequisites. Annotation c. by Book News, Inc., Portland, Or.

Related Subjects

Meet the Author

Richard Johnsonbaugh is Professor Emeritus of Computer Science, Telecommunications and Information Systems, DePaul University, Chicago. Prior to his 20-year service at DePaul University, he was a member and sometime chair of the mathematics departments at Morehouse College and Chicago State University. He has a B.A. degree in mathematics from Yale University, M.A. and Ph.D. degrees in mathematics from the University of Oregon, and an M.S. degree in computer science from the University of Illinois, Chicago. His most recent research interests are in pattern recognition, programming languages, algorithms, and discrete mathematics. He is the author or co-author of numerous books and articles in these areas. Several of his books have been translated into various languages. He is a member of the Mathematical Association of America.

Read an Excerpt

PREFACE:

PREFACE

This book is intended for a one- or two-term introductory course in discrete mathematics, based on my experience in teaching this course over a 20-year period. Formal mathematics prerequisites are minimal; calculus is not required. There are no computer science prerequisites. The book includes examples, exercises, figures, tables, sections on problem-solving, section reviews, notes, chapter reviews, self-tests, and computer exercises to help the reader master introductory discrete mathematics. In addition, an Instructor's Guide and World Wide Web site are available.

The main changes in this edition (discussed in more detail later) are an expanded discussion of logic and proofs, the addition of two sections on discrete probability, a new appendix that reviews basic algebra, many new examples and exercises, section reviews, and computer exercises.

OVERVIEW

In the early 1980s there were almost no books appropriate for an introductory course in discrete mathematics. At the same time, there was a need for a course that extended students' mathematical maturity and ability to deal with abstraction and also included useful topics such as combinatorics, algorithms, and graphs. The original edition of this book (1984) addressed this need. Subsequently, discrete mathematics courses were endorsed by many groups for several different audiences, including mathematics and computer science majors. A panel of the Mathematical Association of America (MAA) endorsed a year-long course in discrete mathematics. The Educational Activities Board of the Institute of Electrical and Electronics Engineers (IEEE) recommended a freshmandiscrete mathematics course. The Association for Computing Machinery (ACM) and IEEE accreditation guidelines mandated a discrete mathematics course. This edition, like its predecessors, includes topics such as algorithms, combinatorics, sets, functions, and mathematical induction endorsed by these groups. It also addresses understanding and doing proofs and, generally, expanding mathematical maturity.

ABOUT THIS BOOK

Sets, sequences, strings, sum and product notations, number systems, relations, and functions, including motivating examples such as an application of partial orders to task scheduling (Section 2.4), relational databases (Section 2.7), and an introduction to hash functions and pseudorandom number generators (Section 2.8).

A thorough discussion of algorithms, recursive algorithms, and the analysis of algorithms (Chapter 3). In addition, an algorithmic approach is taken throughout this book. The algorithms are written in a flexible form of pseudocode. (The book does not assume any computer science prerequisites; the description of the pseudocode used is self-contained.) Among the algorithms presented are the Euclidean algorithm for finding the greatest common divisor (Section 3.3), tiling (Section 3.4), the RSA public-key encryption algorithm (Section 3.7), generating combinations and permutations (Section 4.3), merge sort (Section 5.3), Dijkstra's shortest-path algorithm (Section 6.4), backtracking algorithms (Section 7.3), breadth-first and depth-first search (Section 7.3), tree traversals (Section 7.6), evaluating a game tree (Section 7.9), finding a maximal flow in a network (Section 8.2), finding a closest pair of points (Section 11.1), and computing the convex hull (Section 11.3).

A full discussion of the "big oh," omega, and theta notations for the growth of functions (Section 3.5)., Having all of these notations available makes it possible to make precise statements about the growth of functions and the complexity of algorithms.

A treatment of Boolean algebras that emphasizes the relation of Boolean algebras to combinatorial circuits (Chapter 9).

An approach to automata emphasizing modeling and applications (Chapter 10). The SR flip-flop circuit is discussed in Example 10.1.11. Fractals, including the von Koch snowflake, are described by special kinds of grammars (Example 10.3.19).

An introduction to computational geometry (Chapter 11).

An appendix on matrices, and another that reviews basic algebra.

A strong emphasis on the interplay among the various topics. As examples, mathematical induction is closely tied to recursive algorithms (Section 3.4); the Fibonacci sequence is used in the analysis of the Euclidean algorithm (Section 3.6); many exercises throughout the book require mathematical induction; we show how to characterize the components of a graph by defining an equivalence relation on the set of vertices (see the discussion following Example 6.2.13); and we count the number of n-vertex binary trees (Theorem 7.8.12).

A strong emphasis on reading and doing proofs. Most proofs of theorems are illustrated with annotated figures. Ends of proofs are marked with a square symbol. Separate sections (Problem-Solving Corners) show students how to attack and solve problems and how to do proofs.

Numerous worked examples throughout the book. (There are over 500 worked examples.)

A large number of applications, especially applications to computer science.

Over 3500 exercises, with answers to about one-third of them in the back of the book. (Exercises with numbers in color have an answer in the back of the book.)

Figures and tables to illustrate concepts, to show how algorithms work, to elucidate proofs, and to motivate the material. Several figures illustrate proofs of theorems. The captions of these figures provide additional explanation and insight into the proofs. Section reviews. Notes sections with suggestions for further reading.

Front and back endpapers that summarize the mathematical and algorithm notation used in the book.

CHANGES FROM THE FOURTH EDITION

The first chapter on logic and proofs is considerably enhanced. Several new motivating examples have been added. A logic game, which offers an alternative way to determine whether a quantified propositional function is true or false, is discussed in Example 1.3.17. Section 1.4 now includes rules of inference for both propositions and quantified statements. The number of exercises in this chapter has been increased from 232 to 391.

Arrow diagrams have been added to give a pictorial view of the definition of a function, one-to-one functions, onto functions, inverse functions, and the composition of functions (see Section 2.8).

Graphs of functions have been added to give yet another view of functions (see Section 2.8).

Two optional sections (Sections 4.4 and 4.5) have been added on discrete probability. We discuss the fundamental terminology (e.g., experiment, event), the use of counting techniques to compute probabilities, basic formulas, mutually exclusive events, conditional probability, independent events, and Bayes' Theorem and its use in pattern recognition.

The setting for the Problem-Solving Corner in Chapter 5 has been changed to a more inviting and contemporary setting: sorting in a spreadsheet.

The fourth edition's Section 8.5 on Petri nets has been moved to the Web site that accompanies this book.

The new section reviews, which precede the exercises in every section, consist of exercises with answers in the back of the book. These exercises review the key concepts, definitions, theorems, techniques, and so on, of the section. Although intended for reviews of the sections, section reviews can also be used for placement and pretesting.

Computer exercises have been added to the end of every chapter. Although there is no programming prerequisite for this book and no programming is introduced in the book, these exercises are provided for those readers who want to explore discrete mathematics concepts with a computer.

The definition of "bipartite graph" (Definition 6.1.11) has been corrected. (To see what the problem is, use an old definition to check whether a onevertex graph is bipartite.) This book is now probably the only one in which this definition is correct!

A "Web Help" icon, which occurs throughout the book, indicates that more explanation, examples, and so on about a particular topic are available at the Web site that accompanies this book.

A "Web Link" icon, which also occurs throughout the book, signals that a link posted at the Web site that accompanies this book points to another Web site that contains additional information about a particular topic.

A number of recent books and articles have been added to the list of references. Several book references have been updated to current editions.

The number of worked examples has been increased to over 500. (There were approximately 430 in the fourth edition.)

The number of exercises has been increased to over 3500. (There were approximately 2400 in the fourth edition.)

The World Wide Web site has been greatly enhanced to provide additional support for the book.

Section reviews consist of exercises, with answers in the back of the book, that review the key concepts of the section. Notes contain suggestions for further reading. Chapter reviews provide reference lists of the key concepts of the chapters. Chapter self-tests contain four exercises per section, with answers in the back of the book. Computer exercises request implementation of some of the algorithms, projects, and other programming related activities. In addition, most chapters have Problem-Solving Corners.

Exercises

The book contains over 3500 exercises, 135 of which are computer exercises. Exercises felt to be more challenging than average are indicated with a star. Exercise numbers in color (approximately one-third of the exercises) indicate that the exercise has a hint or solution in the back of the book. The solutions to the remaining exercises may be found in the Instructor's Guide. A handful of exercises are clearly identified as requiring calculus. No calculus concepts are used in the main body of the book and, except for these marked exercises, no calculus is needed to solve the exercises.

EXAMPLES

The book contains over 500 worked examples. These examples show students how to tackle problems in discrete mathematics, demonstrate applications of the theory, clarify proofs, and help motivate the material. Ends of examples are marked with a square symbol.

PROBLEM-SOLVING CORNERS

The Problem-Solving Corner sections help students attack and solve problems and show them how to do proofs. Written in an informal style, each is a self-contained section following the discussion of the subject of the problem. Rather than simply presenting a proof or a solution to a problem, in these sections the intent is to show alternative ways of attacking a problem, to discuss what to look for in trying to obtain a solution to a problem, and to present problem-solving and proof techniques.

Each Problem-Solving Corner begins with a statement of a problem. After stating the problem, ways to attack the problem are discussed. This discussion is followed by techniques for finding a solution. After a solution is found, a formal solution is given to show how to correctly write up a formal solution. Finally, the problem-solving techniques used in the section are summarized. In addition, some of these sections include a Comments subsection, which discusses connections with other topics in mathematics and computer science, provides motivation for the problem, and lists references for further reading about the problem. Exercises conclude some Problem-Solving Corners.

INSTRUCTOR SUPPLEMENT

An Instructor's Guide is available at no cost from the publisher to instructors who adopt or sample this book. The Instructor's Guide contains solutions to the exercises not included in the book, tips for teaching the course, and transparency masters.

Special thanks for this edition go to my colleague Andre Berthiaume for suggesting the logic game, for developing the PowerPoint slides, and, with Sigrid (Anne) Settle, for the pine cone used in Figure 3.4.1. I appreciate Example 4.5.22, suggested by my colleague Steve Jost, and Exercise 24, Section 9.3, suggested by Reino Hakala, Governors State University. Credit goes to my students Jenni Piane and Nick Meshes for C++ code to implement the tromino tiling algorithm (Algorithm 3.4.4). I am grateful to Herbert Enderton, UCLA, for pointing out the problem with the fourth edition's definition of "bipartite graph." My colleague Gary Andrus, made several suggestions that improved Chapters 9 and 10. Thanks also to all of the users of my book for their helpful letters and e-mail. Finally, for reviewing the manuscript for this edition, thanks go to Kendall Atkinson, University of Iowa; Mansur Samadzadeh, Oklahoma State University; and Chaim Goodman Strauss, University of Arkansas.

I am indebted to Helmut Epp, Dean of the School of Computer Science, Telecommunications and Information Systems at DePaul University, for providing time and encouragement for the development of this edition and its predecessors.

I have received consistent support from the staff at Prentice Hall. Special thanks for their help go to George Lobell, executive editor; Gale Epps, editorial assistant; and Judith L. Winthrop, production editor.

Preface

PREFACE:

PREFACE

This book is intended for a one- or two-term introductory course in discrete mathematics, based on my experience in teaching this course over a 20-year period. Formal mathematics prerequisites are minimal; calculus is not required. There are no computer science prerequisites. The book includes examples, exercises, figures, tables, sections on problem-solving, section reviews, notes, chapter reviews, self-tests, and computer exercises to help the reader master introductory discrete mathematics. In addition, an Instructor's Guide and World Wide Web site are available.

The main changes in this edition (discussed in more detail later) are an expanded discussion of logic and proofs, the addition of two sections on discrete probability, a new appendix that reviews basic algebra, many new examples and exercises, section reviews, and computer exercises.

OVERVIEW

In the early 1980s there were almost no books appropriate for an introductory course in discrete mathematics. At the same time, there was a need for a course that extended students' mathematical maturity and ability to deal with abstraction and also included useful topics such as combinatorics, algorithms, and graphs. The original edition of this book (1984) addressed this need. Subsequently, discrete mathematics courses were endorsed by many groups for several different audiences, including mathematics and computer science majors. A panel of the Mathematical Association of America (MAA) endorsed a year-long course in discrete mathematics. The Educational Activities Board of the Institute of Electrical and Electronics Engineers (IEEE) recommended afreshmandiscrete mathematics course. The Association for Computing Machinery (ACM) and IEEE accreditation guidelines mandated a discrete mathematics course. This edition, like its predecessors, includes topics such as algorithms, combinatorics, sets, functions, and mathematical induction endorsed by these groups. It also addresses understanding and doing proofs and, generally, expanding mathematical maturity.

ABOUT THIS BOOK

Sets, sequences, strings, sum and product notations, number systems, relations, and functions, including motivating examples such as an application of partial orders to task scheduling (Section 2.4), relational databases (Section 2.7), and an introduction to hash functions and pseudorandom number generators (Section 2.8).

A thorough discussion of algorithms, recursive algorithms, and the analysis of algorithms (Chapter 3). In addition, an algorithmic approach is taken throughout this book. The algorithms are written in a flexible form of pseudocode. (The book does not assume any computer science prerequisites; the description of the pseudocode used is self-contained.) Among the algorithms presented are the Euclidean algorithm for finding the greatest common divisor (Section 3.3), tiling (Section 3.4), the RSA public-key encryption algorithm (Section 3.7), generating combinations and permutations (Section 4.3), merge sort (Section 5.3), Dijkstra's shortest-path algorithm (Section 6.4), backtracking algorithms (Section 7.3), breadth-first and depth-first search (Section 7.3), tree traversals (Section 7.6), evaluating a game tree (Section 7.9), finding a maximal flow in a network (Section 8.2), finding a closest pair of points (Section 11.1), and computing the convex hull (Section 11.3).

A full discussion of the "big oh," omega, and theta notations for the growth of functions (Section 3.5)., Having all of these notations available makes it possible to make precise statements about the growth of functions and the complexity of algorithms.

A treatment of Boolean algebras that emphasizes the relation of Boolean algebras to combinatorial circuits (Chapter 9).

An approach to automata emphasizing modeling and applications (Chapter 10). The SR flip-flop circuit is discussed in Example 10.1.11. Fractals, including the von Koch snowflake, are described by special kinds of grammars (Example 10.3.19).

An introduction to computational geometry (Chapter 11).

An appendix on matrices, and another that reviews basic algebra.

A strong emphasis on the interplay among the various topics. As examples, mathematical induction is closely tied to recursive algorithms (Section 3.4); the Fibonacci sequence is used in the analysis of the Euclidean algorithm (Section 3.6); many exercises throughout the book require mathematical induction; we show how to characterize the components of a graph by defining an equivalence relation on the set of vertices (see the discussion following Example 6.2.13); and we count the number of n-vertex binary trees (Theorem 7.8.12).

A strong emphasis on reading and doing proofs. Most proofs of theorems are illustrated with annotated figures. Ends of proofs are marked with a square symbol. Separate sections (Problem-Solving Corners) show students how to attack and solve problems and how to do proofs.

Numerous worked examples throughout the book. (There are over 500 worked examples.)

A large number of applications, especially applications to computer science.

Over 3500 exercises, with answers to about one-third of them in the back of the book. (Exercises with numbers in color have an answer in the back of the book.)

Figures and tables to illustrate concepts, to show how algorithms work, to elucidate proofs, and to motivate the material. Several figures illustrate proofs of theorems. The captions of these figures provide additional explanation and insight into the proofs. Section reviews. Notes sections with suggestions for further reading.

Front and back endpapers that summarize the mathematical and algorithm notation used in the book.

CHANGES FROM THE FOURTH EDITION

The first chapter on logic and proofs is considerably enhanced. Several new motivating examples have been added. A logic game, which offers an alternative way to determine whether a quantified propositional function is true or false, is discussed in Example 1.3.17. Section 1.4 now includes rules of inference for both propositions and quantified statements. The number of exercises in this chapter has been increased from 232 to 391.

Arrow diagrams have been added to give a pictorial view of the definition of a function, one-to-one functions, onto functions, inverse functions, and the composition of functions (see Section 2.8).

Graphs of functions have been added to give yet another view of functions (see Section 2.8).

Two optional sections (Sections 4.4 and 4.5) have been added on discrete probability. We discuss the fundamental terminology (e.g., experiment, event), the use of counting techniques to compute probabilities, basic formulas, mutually exclusive events, conditional probability, independent events, and Bayes' Theorem and its use in pattern recognition.

The setting for the Problem-Solving Corner in Chapter 5 has been changed to a more inviting and contemporary setting: sorting in a spreadsheet.

The fourth edition's Section 8.5 on Petri nets has been moved to the Web site that accompanies this book.

The new section reviews, which precede the exercises in every section, consist of exercises with answers in the back of the book. These exercises review the key concepts, definitions, theorems, techniques, and so on, of the section. Although intended for reviews of the sections, section reviews can also be used for placement and pretesting.

Computer exercises have been added to the end of every chapter. Although there is no programming prerequisite for this book and no programming is introduced in the book, these exercises are provided for those readers who want to explore discrete mathematics concepts with a computer.

The definition of "bipartite graph" (Definition 6.1.11) has been corrected. (To see what the problem is, use an old definition to check whether a onevertex graph is bipartite.) This book is now probably the only one in which this definition is correct!

A "Web Help" icon, which occurs throughout the book, indicates that more explanation, examples, and so on about a particular topic are available at the Web site that accompanies this book.

A "Web Link" icon, which also occurs throughout the book, signals that a link posted at the Web site that accompanies this book points to another Web site that contains additional information about a particular topic.

A number of recent books and articles have been added to the list of references. Several book references have been updated to current editions.

The number of worked examples has been increased to over 500. (There were approximately 430 in the fourth edition.)

The number of exercises has been increased to over 3500. (There were approximately 2400 in the fourth edition.)

The World Wide Web site has been greatly enhanced to provide additional support for the book.

Section reviews consist of exercises, with answers in the back of the book, that review the key concepts of the section. Notes contain suggestions for further reading. Chapter reviews provide reference lists of the key concepts of the chapters. Chapter self-tests contain four exercises per section, with answers in the back of the book. Computer exercises request implementation of some of the algorithms, projects, and other programming related activities. In addition, most chapters have Problem-Solving Corners.

Exercises

The book contains over 3500 exercises, 135 of which are computer exercises. Exercises felt to be more challenging than average are indicated with a star. Exercise numbers in color (approximately one-third of the exercises) indicate that the exercise has a hint or solution in the back of the book. The solutions to the remaining exercises may be found in the Instructor's Guide. A handful of exercises are clearly identified as requiring calculus. No calculus concepts are used in the main body of the book and, except for these marked exercises, no calculus is needed to solve the exercises.

EXAMPLES

The book contains over 500 worked examples. These examples show students how to tackle problems in discrete mathematics, demonstrate applications of the theory, clarify proofs, and help motivate the material. Ends of examples are marked with a square symbol.

PROBLEM-SOLVING CORNERS

The Problem-Solving Corner sections help students attack and solve problems and show them how to do proofs. Written in an informal style, each is a self-contained section following the discussion of the subject of the problem. Rather than simply presenting a proof or a solution to a problem, in these sections the intent is to show alternative ways of attacking a problem, to discuss what to look for in trying to obtain a solution to a problem, and to present problem-solving and proof techniques.

Each Problem-Solving Corner begins with a statement of a problem. After stating the problem, ways to attack the problem are discussed. This discussion is followed by techniques for finding a solution. After a solution is found, a formal solution is given to show how to correctly write up a formal solution. Finally, the problem-solving techniques used in the section are summarized. In addition, some of these sections include a Comments subsection, which discusses connections with other topics in mathematics and computer science, provides motivation for the problem, and lists references for further reading about the problem. Exercises conclude some Problem-Solving Corners.

INSTRUCTOR SUPPLEMENT

An Instructor's Guide is available at no cost from the publisher to instructors who adopt or sample this book. The Instructor's Guide contains solutions to the exercises not included in the book, tips for teaching the course, and transparency masters.

Special thanks for this edition go to my colleague Andre Berthiaume for suggesting the logic game, for developing the PowerPoint slides, and, with Sigrid (Anne) Settle, for the pine cone used in Figure 3.4.1. I appreciate Example 4.5.22, suggested by my colleague Steve Jost, and Exercise 24, Section 9.3, suggested by Reino Hakala, Governors State University. Credit goes to my students Jenni Piane and Nick Meshes for C++ code to implement the tromino tiling algorithm (Algorithm 3.4.4). I am grateful to Herbert Enderton, UCLA, for pointing out the problem with the fourth edition's definition of "bipartite graph." My colleague Gary Andrus, made several suggestions that improved Chapters 9 and 10. Thanks also to all of the users of my book for their helpful letters and e-mail. Finally, for reviewing the manuscript for this edition, thanks go to Kendall Atkinson, University of Iowa; Mansur Samadzadeh, Oklahoma State University; and Chaim Goodman Strauss, University of Arkansas.

I am indebted to Helmut Epp, Dean of the School of Computer Science, Telecommunications and Information Systems at DePaul University, for providing time and encouragement for the development of this edition and its predecessors.

I have received consistent support from the staff at Prentice Hall. Special thanks for their help go to George Lobell, executive editor; Gale Epps, editorial assistant; and Judith L. Winthrop, production editor.

Your Rating:

Your Recommendations:

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked,
or didn't, with others. By submitting an online review, you are representing to
Barnes & Noble.com that all information contained in your review is original
and accurate in all respects, and that the submission of such content by you
and the posting of such content by Barnes & Noble.com does not and will not
violate the rights of any third party. Please follow the rules below to help
ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer.
However, we cannot allow persons under the age of 13 to have accounts at BN.com or
to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the
information on the product page, please send us an email.

Reminder:

- By submitting a review, you grant to Barnes & Noble.com and its
sublicensees the royalty-free, perpetual, irrevocable right and license to use the
review in accordance with the Barnes & Noble.com Terms of Use.

- Barnes & Noble.com reserves the right not to post any review -- particularly
those that do not follow the terms and conditions of these Rules. Barnes & Noble.com
also reserves the right to remove any review at any time without notice.

This is the worse textbook I have encountered

I agree with the others that this book needs to be burned. I have taken Discrete Mathematics one using this textbook and I also tried looking at the authors earlier edition, but it was a worthless attempt. I have to resort to using other resources such as the internet, other text, and individuals who have a firm undersatnding of the subject. The same individuals who are Computer Science or Math majors all agree that this book is trash. The author is probably a very intelligent individual but he does not explain much of anything in great detail. That is something that a novice needs to grasp a full understanding of the concepts. Without concepts the foundation is weak and clarity is non-existent. To whom it may concern choose another text book.

Was this review helpful? YesNoThank you for your feedback.Report this reviewThank you, this review has been flagged.

Anonymous

Posted July 28, 2001

I don't know what the rest of you are talking about.

I am a Comp Sci student from WCU in Pa., this is a required reading for a 100 level math course (MAT151 to be exact). I found this book to be extremely informative and helpful, especially chapter 5 on Recurrence Relations. Perhaps the people who didn't do so well were either not ready for the course material or not devoted to their studying. Either way, good or bad, go to the B.N. store and read some of the book before you buy to see if you like it or not.

Was this review helpful? YesNoThank you for your feedback.Report this reviewThank you, this review has been flagged.