As a programmer, mathematics is important basic knowledge to study some topics, especially Algorithms. Many websites, and my fellows suggest me to study Discrete Mathematics before going to Algorithms, so I want to know which Discrete Mathematics book is suitable for my needs?
11 Answers
Concrete Mathematics: A Foundation for Computer Science, By Donald Knuth himself!

- 155

- 13,573
-
8This is one of the most entertaining books I read in high school, with all its margin graffiti and chatting... it actually makes you eager to do the exercises! – ShreevatsaR Aug 04 '10 at 17:12
-
I just finished reading it for the nth time; it's a really fun way to do mathematics. – J. M. ain't a mathematician Aug 05 '10 at 01:49
-
12This book requires an existing knowledge of discrete mathematics that is well beyond what a programmer needs to know. In fact, I believe this book is geared toward computer scientists in the upper levels of an undergraduate program or even beginning a graduate program. – Thomas Owens Aug 12 '10 at 23:47
-
3@Thomas Owens: Actually, it was an attempt to take a program like you describe that already existed at Stanford and make it more accessible. So says the preface of the second edition. – Larry Wang Aug 13 '10 at 00:16
-
I'm not saying it's not a good book. But it's not appropriate for someone with limited discrete math background. I own it and I've read it and worked through some of the problems. But if you have no background in discrete mathematics and calculus, it's going to go right over your head - both are required to fully grasp the contents of the book. – Thomas Owens Aug 13 '10 at 00:21
-
3Different books require different prerequisites and appeal to different people. There is no book to rule them all. You might have to study some topics from one book and some from others. There is NO 'ONE' book. There can't be. – Pratik Deoghare Aug 13 '10 at 05:58
-
11That's true. But I still stand by my assertion that you can not learn discrete mathematics from this book since a prerequisite to this book is a background in the basic concepts of discrete math. This book answers the title question, but does not take into account the body of the question where the asker is looking for a book to develop the basic knowledge of discrete mathematics that might be required to have a deeper understanding of algorithms – Thomas Owens Aug 13 '10 at 10:08
-
3Although voted "Best" and certainly its a true GEM, but I would not recommend to any beginner, not even to someone who knows basics. You need to be pretty good at math to digest what the book has to say. I am a normal (below average in math) software developer, and I struggled with this book a lot. I switched to Rosen's book instead and decided to pick this later. I am still confused as to what real value these all will bring to my career(I find it intersting but not easy). If you start this book, please start a group or something that people can join, I know another who wants to attempt – Gollum Aug 14 '10 at 03:39
-
Does anyone have a book suggestion if you someone who opened this book and on the first page new it was well over their head? Where should one start? – Tyler Egeto Nov 10 '10 at 17:00
-
2@ThomasOwens: I read this book in high school (class 11), with no prior background in discrete mathematics. It just requires some time and patience and motivation; everything needed is already in the book. There are parts of the book that are advanced (and which I skipped at the time), but those are usually towards the end of each chapter, and helpfully marked out by the margin comments. Also, the first chapter is more of a teaser, so it's ok if you don't follow everything there, and start with the second chapter. – ShreevatsaR Nov 16 '12 at 04:37
-
Is this book good for Beginners (for computer science student's?) – Chinmaya B Aug 08 '14 at 13:46
-
@Creator Yes it is. – Pratik Deoghare Aug 08 '14 at 16:22
-
@PratikDeoghare- This is not at all according to the syllabus, there is good explanation to advance topics (only some are available) and there is no room for basic topics.. – Chinmaya B Aug 08 '14 at 16:32
-
Which syllabus? – Pratik Deoghare Aug 08 '14 at 20:36
-
9The preface to this book explicitly states that it is not a stand-in for a discrete math textbook. It is a terrible answer to this question. – Nate C-K May 12 '15 at 21:24
-
I worked through some of this book after taking a discrete math course and still found it challenging. It is definitely not a good book for beginners. – Joseph Garvin Jun 28 '17 at 05:20
Discrete Math knowledge is needed to become adept in proving the correctness and deriving the complexity of algorithms and data structures. You will be taught those in Algo/DS books, but you can only get the mathematical proficiency by practicing just discrete math.
Knuth book is very good for that. But IMHO, you will only need it if you for doing advanced proofs in DS/Algorithms.
For a beginner, it would be great to go over "Grimaldi" http://www.amazon.com/Discrete-Combinatorial-Mathematics-Applied-Introduction/dp/0201199122 and then quickly move to Algorithms.
Otherwise, you will continue going deep in Discrete Math and never get to Algorithms/DS.
Remember, Discrete Math does not teach you how to design algorithms or Data structures. That will come only by practicing Algorithm problems @ topcoder, acm icpc , spoj etc and reading books on Algos/DS or courses on those.
My 2 cents.

- 461
A very good textbook for discrete mathematics at an undergraduate level is the Kenneth Rosen book titled Discrete Mathematics and Its Applications.
The book provides solutions to half of the problems. You can also buy the Student's Solutions Guide. I don't own it, but I would suspect that it either provides the answers to the other half of the questions or provides a step-by-step guide to solving the problems (the book only provides final answers with minimal explanations of those answers).
It's used for the two-quarter sequence in Discrete Mathematics that is taken by computer science and software engineering majors, as well as a number of mathematics programs at my university. I kept this book around even after I took the course, and I'm currently using it to brush up on my discrete math skills for my Certified Software Development Associate exam.

- 97,892

- 363
-
Looking at the Rosen book you linked to a lot of the reviewers there are complaining that it's the paperback version and that that version is actually a completely different text from the hardback used in most courses. Did you mean to endorse the paperback or the hardback? – Joseph Garvin Jun 28 '17 at 05:23
-
I am starting to read this book and really love the beginning part. It seems that it will be a very good book according to my first impression.
Discrete Mathematics and Its Applications, 8th Edition (Kindle and Hardcover)
Student's Solutions Guide for Discrete Mathematics and Its Applications, 8th Edition (Paperback)
Maybe, after finishing this book, I could try if I can follow Concrete Mathematics by Knuth.
– Xuan Jul 13 '23 at 08:02 -
There's a problem with the 8th edition (2019): I don't see errata report in its companion website. I can only find errata page for 7th edition. – Xuan Jul 13 '23 at 18:37
-
-
Warning: reading this 1000+ page book is a very slow progress. Each section requires a lot of thinking and pauses to prove, understand and practice before continuing. Therefore, I think you need a good plan and consistently following your plan daily/weekly to be able to finish it. The book suggests about 2 semesters to finish it. – Xuan Jul 14 '23 at 09:58
Theres many different areas to discrete math, and many good books.
theres Graph Theory by Diestel, which has a free pdf version available at
theres generatingfunctionology by wilf, free pdf version at
math.upenn.edu/~wilf/DownldGF.html
Other books that are good include Enumerative combinatorics 1 and 2 by Richard P Stanley (a book which is sufficiently dense that having at least 1 analysis and algebra course each will help).
that being said, for more introductory expositions in terms of expected mathematical maturity, I'd suggest googling around and looking at various lecture notes of the "intro to combinatorics" or "mathematics for computer scientists" sorts. I found that MIT OCW's "mathematics for Computer Scientists" notes were quite nice when I looked at them several years ago.
ocw.mit.edu/courses/electrical-engineering-and-computer-science...
has a link to the lecture notes. There are some really funny asides in it. One of my favorites "... anyone who says that is wrong, and you should make fun of them until they cry".
Also, If you want to dig even deeper into discrete math/ combinatorics, the value of building up a wee bit of mathematical basics in other areas of math. Complex Analysis, real analysis (at the level of at least baby rudin, and perhaps even up to functional analysis), maybe some probability up to its measure theory formulation level, and at least a smidge of abstract algebra. Then you can do stuff like look at the combinatorics of random processes (great for analyzing randomized algorithms) and look at cool problems like percolation.
theres probably other things I should suggest, but the point is discrete math is accessible without that much of a background, but is also rewards you for enriching that mathematics background with some amazingly beautiful stuff thats 1) awesome and fun 2) useful.

- 633
I very much like Norman Biggs' Discrete Mathematics. I would not recommend the second edition. Rather, get the first edition (the "revised" first edition if you can). The text claims to be self-contained (seems so to me).
Since there is not much info on this edition of the text online (the preview on Amazon is the second edition), here is an outline:
Part 1: Numbers and Counting
- Integers (ordering, recursion, induction, divisibility, gcd, factorization)
- Function and counting (surjections, injections, bijections, pigeonhole principle, finite vs infinite)
- Principles of counting (Euler's function, addition principle, words, permutations)
- Subsets and designs (binomial theorem, sieve principle, designs, $t$-designs)
- Partition (equivalence relations,distributions, multinomial numbers, classification of permutations)
- Modular arithmetic (congruences, $\mathbb{Z}_m$, cyclic constructions, Latin squares)
Part 2: Graphs and Algorithms:
- Algorithms and efficiency (proving correctness, $O$ notation, comparison, sorting)
- Graphs (isomorphism of graphs, valency, paths, cycles, trees, coloring, greedy algorithm)
- Trees, sorting, searching (counting leaves, sorting algorithms, spanning trees, MST problem, depth-first, breadth-first, shortest path problem)
- Bipartite graphs (relations, edge colorings, matchings, maximum matchings, transversals)
- Digraphs, networks, flows (critical paths, flows and cuts, max-flow min-cut theorem, labelling algorithm)
- Recursive techniques (linear recursion,recursive bisection, recursive optimization, dynamic programming)
Part 3: Algebraic Methods:
- Groups (axioms, isomorphisms,cyclic groups, subgroups, cosets)
- Groups of permutations (definitions, orbits, stabilizers, size/number of orbits, representation of groups by permutations)
- Rings, fields, polynomials (division algorithm, Euclidean algorithm, factorization)
- Finite fields (order, construction, primitive element theorem, finite geometry, projective planes, existence)
- Error correction (words, codes, errors, linear codes, cyclic codes)
- Generating functions (power series, partial fractions, binomial theorem, linear recursion)
- Partitions of a positive integer (conjugate partitions, generating functions, mysterious identity)
- Symmetry and counting (cyclic and dihedral symmetry,3D symmetry, inequivalent colorings, colorings and generating functions, Polya's theorem)
Mathematical Thinking: Problem-Solving and Proofs.
John P. D'Angelo, Douglas B. West.
Available at Amazon.
This is supposed to be an introduction to mathematical proofs. As such it is not restricted to discrete mathematics. But it does a very good job for discrete mathematics. You would also see some proof in real analysis; but you can focus only on the discrete part ignoring this.
I found the book Elements of Discrete Mathematics by C. L. Liu extremely helpful.
It is at a very basic level and is great if you are looking for an introduction into discrete mathematics.

- 111
The best book as far as i know are these two:
Discrete Mathematics By Norman L.Biggs
or
Discrete Mathematics and Its Applications by Kenneth H. Rosen
The best book to study Discrete mathematics is " Discrete mathematics and Structures" by Satinder Bal Gupta". It is published by University Science Press. The language of the book is very simple. It contained hundreds of solved and unsolved problems with hints.
Fundamentals of Discrete mathematical structures, 3rd Edition. It is written as per ACM-Curriculum, comprises lot of GATE level questions, and written by a Computer science Professor.
-
10"written by a Computer science Professor." - it would behoove you to reveal that it is a book that you yourself have written. – J. M. ain't a mathematician Dec 30 '16 at 09:45