Discrete Math Textbook Recommendations?
JonnyRo88 asks: "I am an undergraduate CS major at the University of Central Florida. I took a Discrete Math course this past semester and had a VERY difficult time with the text book the class used: 'Discrete and Combinatorial Mathematics' by R. Grimaldi. I do not attribute my difficulties to the book itself, rather I just feel that my learning style is incompatible with the way this book is laid out. I'm sure that others have had similar experiences where they could just not -click- with a book. Like many people I know I tend to learn almost all of the class material from the book. I learn really well from books that focus heavily on examples and explanations on how those examples work. I would love to hear what Slashdot readers consider their most useful Discrete Math textbook. Most interesting are books that have very good discussions on the basic strategies of proofs. I am currently preparing to take an exam that the department requires all CS majors take before they can move to higher level classes, it will test me on my knowledge of discrete math, specifically proofs (by induction, disproof by contradiction, direct proof, recursive definitions, etc)."
the following are very good books on proof and discrete math. Some of the titles are whimsical, but they are not toy books, they are very valuable.
"How To Prove It", "How To Solve It", "Induction and Analogy in Mathematics", and "Patterns of Plausible Inference".
However, it seems you are looking for a book to cram for a test in discrete math. Good luck, not going to find one. More so than any of the lower mathematics, discrete is the beginnings of higher logical analyisys, and you can not really 'cram' it. You have to really read the work, and really work the problems. It has to become part of you.
There seems to be this trend to blame difficulty in learning a subject on the books or the teachers. There are many, many things in the world that you are not smart enough to do; you need to accept this, and figure out what problems you can deal with.
I am not batman, I am not Johan Sebastian Bach, and I am not Richard Feynman, I have accepted this; perhaps you are not capable of Discrete Mathematics. If not, you need to leave CS, and go get in MIS or something, you will be happier.
-- Crutcher --
#include <disclaimer.h>
Johnsonbaugh R 2001, Discrete Mathematics, 5th Ed, Prentice Hall
We used this at my uni course, sometimes it lacks a bit of detail, but overall its quite a good book, it especially helped me with induction proof.
What the hell are you doing? Shush! It's not just a clever name, you know!
I did a lot of math tutoring in college, and I noticed that all of the discrete books were absolutely god-awful basically just TeX documents with covers, with the exception of one: Kenneth Rosen's "Discrete Mathematics and its Applications". Best. Discrete Book. Ever.
That book is actually much better than the purple and white book they sometimes use for 4210... I think of it as a reference, though. Perhaps you should take a look at the books the math department uses for Logic and Proof, or the one for Combinatorics and Graph Theory? An introductory text on number theory should also have good examples of proof by induction.
Java: the COBOL of the new millenium.
As far as I know, this is the standard text at many colleges. Rosen's approach is mathematically rigorous yet practical at the same time. .
This was also the book from which I first discovered Fermat's Last Theorem, so it is not the typical dry textbook that we all know about.
Walmart sells it for less than Amazon
Rosen's Discrete Mathematics and its Applications is best hands down. Used it in couple of courses here at SFU (sfu.ca), i just love it.
Jumped in to it while taking college trig. Definately doable, but also takes you to the edge, after 10 weeks we were at the level were new research could be done.
-- The morphemes of your disquisition are ascertainable, but they have eschewed an ambit of transpicuous exposition.
I have to second the recommendation of "How to Solve It".
The professor of my first discrete math class recommended it to me, and it was very helpful.
Discrete mathematics. Makes me want to paraphrase Lazarus Long...
"Math is not necessarily something to be ashamed of--but do it in private and wash your hands afterwards."
"A mathematician who calculates in public may have other nasty habits."
and my personal addition, a variation on Clarke's Law, "Any sufficiently advanced mathematics is indistinguishable from surrealism"
This sig intentionally left justified.
I've had the exact same experience with that book. It's packed full of useful information, but worded in such a way that I have a very difficult time parsing what it says. Unfortunately, it's a virtual standard at my university, and many of the comp sci courses expect you to have it. I would really love a better book myself!
He who laughs last is stuck in a time dilation bubble.
I didn't go to class much, so I had to learn out of the textbook. I still ended up with decent marks. This book was a lot easier to handle than the professors.
Graham, Knuth, and Patashnik _Concrete Mathematics_ is good as an introduction, as is Rosen's _Discrete Mathematics_. Stanley's _Enumerative Combinatorics I_ and II, and Lovasz _Problems in Combinatorics_ are both very good as well(however, both are more advanced). For graph theory Diestel's _Graph Theory_ is quite good along with Bollobás _Modern Graph Theory_ . I think Diestel's book is available on line as well. Knuth's _The Art of Computer Science_ volume I has coverage of discrete mathematics as well in the "mathematical preliminaries" section. That section also contains some nice problems, if I remember correctly. Note that you may want to wait until you have a solid understanding of proof techniques, and basic mathematics before you try to work through most of these besides Graham, Knuth, and Patashnik and Rosen. To gain that understanding you should look at the books listed above in the post by crutcher, especially Polya's works.
I see about 20 replies so far, and at least a dozen unique books. Most of the suggestions have been along the lines of "This is a good book. We used it in a course and although it was X or Y, I recommend it." Others were just name dropping of 3 or 4 books at once.
From that, and knowing that your local bookstore isn't going to stock all of these, and knowing that 12 textbooks will cost you close to $1200, how are YOU going to decide what to buy? Are you going to go on amazon and read reviews from here?
As I'll be graduating from UCF this fall with a CS degree, I suppose I'm qualified to answer... On with it then... First of all, if you're really having trouble with the class, it's probably best to seek help that's actually breathing, as a book often fails to give that last bit of insight that's keeping you from understanding the methods. Second, don't worry about the foundation exam, if you know the basics, and can do common proofs from discrete, it's actually quite easy. As for the book, I took Intro to Discrete in 1999, and the book we used then was excellent, James Hein's "Discrete Structures, Logic, and Computability". If automata and languages are the ones giving you trouble after reading that book, check out the upper level (COT4210) book, Sudkamp's "Languages & Machines". The first book should give you plenty for that class, though... Oh, and one more free tip: when you take 4210, don't take Torosolu's class, try for (Drs.) Llewellyn, Dutton, Workman, or Guha (Arup)'s class. Actually, in all cases, try to get those professors...
--That's the point of being root, you can do anything you want, even if it's stupid.
I go to UCF and I got a B in Dr. Lang's discrete class and passed the foundation. I got through just studying Lang's and Guha's notes. I didn't even touch that terrible book. For the foundations exam, the best thing is to practice using old exams.
...I'd recomend Richard Brualdi's Introductory Combinatorics
CfkRAp1041vYQVbFY1aIwA== RV/hBCLKKcSTP5UFK3kqsg==
So, at Carnegie Mellon, for undergrad Discrete math we have two main courses. The first one is sort of wimpy, but the second one is AMAZING! The professor keeps the text book online as a bunch of lectures and assignments. See http://www.discretemath.com and click calendar.
Enjoy
--Alex
I'm worried about a similar topic.
I am an undergraduate CS major at the University of Central Florida. I took a Discrete Math course this past semester and had a VERY difficult time with the text book the class used: 'Discrete and Combinatorial Mathematics' by R. Grimaldi. I do not attribute my difficulties to the book itself, rather I just feel that my learning style is incompatible with the way this book is laid out. I'm sure that others have had similar experiences where they could just not -click- with a book. Like many people I know I tend to learn almost all of the class material from the book. I learn really well from books that focus heavily on examples and explanations on how those examples work. I would love to hear what Slashdot readers consider their most useful Discrete Math textbook. Most interesting are books that have very good discussions on the basic strategies of proofs. I am currently preparing to take an exam that the department requires all CS majors take before they can move to higher level classes, it will test me on my knowledge of discrete math, specifically proofs (by induction, disproof by contradiction, direct proof, recursive definitions, etc)
Maybe this can help me,too. I think the problem is just a simple lack of reading compression on my part. Perhaps some sort of remedial studies could help us both? Thanks for the great Ask Slashdot!
Consensual sex is boring.
I used "Mathematics: A Discrete Introduction" by Edward R. Scheinerman
The book was pretty good at explaining stuff, usually. He often left smiley faces and sometimes wrote things like "I'll leave this easy proof to you" or "you have to prove this for yourself in the homework." Also, the answers in the back are "hints" and usually don't help much. An example might be "Remember problem 16.7" or "Its not 20." Overall, now that I'm used to it - the book is ok - not sure if I would recommended it, but its good enough for me. My teacher usually didn't help us in class though either (and he was a lazy bastard and didn't wake up until close to the class time - so there wasn't much chance for office hours unless you made an appointment with him).
The reason my class used it was because my teacher helped edit it and from what I can gather is a lot like the guy that wrote it.
Hope it helps some. Good luck.
Mathematician, n.:
Someone who believes imaginary things appear right before your i's.
I had some difficulty clicking with Grimaldi himself at Rose-Hulman. Like most professors, he's odd. In this case, he's got this nasally but raspy monotone voice. Walks with his hands out to his sides, as if he had a stick shoved up his butt. A very anal retentive personality. Expected you to learn things the way he taught them. I don't recall him answering questions all that well. I did OK in his classes. They weren't terribly exciting. I think I got Bs, because I had missed a few classes, and he subtracted points for missing or coming in late.
Software sucks. Open Source sucks less.
First, my background. I did an undergraduate degree in math and philosophy, and I'm doing graduate work in Mathematics right now, and I've t/a'ed a few introductory math courses. It was suggested to me by a prof. that before I graduate I should take a basic course in discrete math, and so in my final year of my undergrad, I took the introductory course in discrete math. We used Rosen's book, which I borrowed from a friend, and, as I recall, it was a clearly written book with good examples and almost all of the formulas and information where you think it should be. Plus, it's reassuringly huge.
And now for the unsolicited advice. . .
You absolutely can't learn math from a book; math is a learn-by-doing subject. Books and teachers can help by suggesting techniques, or walking you through things, but you get to know how to do things by doing them again and again and again. It's a bit like sports in this respect: you can watch all the basketball you want on T.V., read all the books you want, and go to as many "shot doctors" as you like, but the only way you're going to make your shot better is by putting the hours in shooting again and again. So it is with math: books and examples and teaching can make it easier for you to practice and revise, but actually working problems out, and proving things for yourself are the only ways that you'll get better.
So how do you put this into practice?
Well, I have two concrete suggestions: first, if it's at all possible (and in my experience, it usually is) get ahold of all the past exams you can, and start working on the problems on the tests. The first few tests you do, have your notes, and whatever books you find useful with you, so you can look at how your prof., or Rosen, or Grimaldi, or whoever does similar problems or proofs, and so you can check facts and formulas that you use. Make sure that you save a few old tests to do without aides once you're confident and comfortable. My other big piece of advice is to work in a group when you do homework or problem sets or studying. The more backgrounds and perspectives and ways of understanding that you have to bring to bear on a problem, the better off you are, and with any luck you'll learn something from the folks you're working with. Plus, it's good practice having to explain and defend your proofs and solutions to classmates, and it's worthwhile to see how other people do the same.
This is what I've learned from taking, tutoring, T/A'ing and marking math courses for the half decade, I hope you find it helpful.
Tucker, Applied Combinatorics. It has the richest problem set of any book i owned as an undergrad. I've had grad level texts use problems from the book. I'm not just saying this because i have a copy of it for sale :-)
Knuth, Graham and Patashnik, Concrete Mathematics.
Mind you, with Don Knuth and Ron Graham's names in the author list is going to be good. :-)
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
They are the following.
Maurer, Stephen B. and Ralston, Anthony. Discrete Algorithmic Mathematics Reading, MA: Addison-Wesley, 1991.
Ross, Kenneth A. and Wright, Charles R.B. Discrete Mathematics, Englewood Cliffs, NJ: Prentice Hall, 1985, 1988, 1999. Third Edition.
In particular, the second textbook has plenty of examples. Answers to many of the odd-numbered problems are also included in the back of the book.
The book by Ross and Wright is essentially the best book on discrete mathematics if you are pursuing a course of self study. The best book also costs plenty of money but is worth it. You will find it to be a useful reference long after you have graduated with your degree in computer science. Discrete mathematics is, after all, the foundation of modern computer science.
One problem that affects universities is conflict of interest. The customer, the student, has very little power. So, people who staff universities often do what they want to do, even when it is not good for the customer.
How many programming jobs require a solid understanding of mathematics? Not many, it seems to me. Instead, programming requires a solid understanding of how to be logical in solving a problem you have never seen before.
I seem to detect a lack of caring in the approach of the university. You can't be the only person who has had a problem with that particular text. Look at this post: #6440340. Professor Grimaldi sounds like someone whose inner conflict is a lot more important to him than anything else. He sounds like the kind of professor who doesn't care if he is communicating.
I've attended 5 colleges and universities, and taught at one. Don't underestimate their propensity to be crazy. Don't underestimate their willingness to try to sell you on the idea that their craziness is sensible.
Seriously consider the personality of your professors. If you wouldn't voluntarily socialize with a professor, that says a lot. That says you want your life to go in a different direction than his has gone. And that says that you need to be very careful in accepting him as a leader.
The second most important talent in programming is being able to teach yourself. There simply are not courses for most of the things you need to learn, and anyway you need to begin to learn new technologies in a week. You can't wait for a course. Someone who tries to force you into the mold of one book is not someone who is concerned about your ability to think for yourself.
It's available as an ebook (PDF) from http://www.occampress.com/#mathgrades
From the site: "This book sets forth a new method for students to organize their notes for any math course (in fact, for any technical course)..."
"Go to CNN [for a] spell-checked, fact-checked summary" -- CmdrTaco
"Combinatorics: An Introduction" by K.H.Wehrhahn
"Concrete Mathematics" by Graham, Patashnik and Knuth
I've personally used both, and they are both great for what they cover. The Wehrhahn book would probably suit you best, whilst the GPK book would be good as a solid reference tome.
I used Susan Epp's "Discrete Mathematics with Applications" two years ago for my introductory descrete math course. Its hard to find used copies of this book because most students from my university (UNB) do not sell the book after, it's really that good.
My favorites are "Discrete Math for Dummies" - it's very clearly written for normal people, not those math whizzes, and it has funny cartoons related to discrete math.
Also, "Learn Discrete Math in 24 Hours" is pretty good.
If moderation could change anything, it would be illegal.
"Mathematics is primarily concerned with asking, "I accept these axioms to be true. What must be true as a consequence?", a skill crucial in pretty much every field. I've had to deal with altogether too many people who think something is true without being able to justify their beliefs. What's worse are the sheep who blindly accept what is said on faith alone. Do you want to deal with these people as team members on a project? Do you want to deal with these people as project managers?"
I agree, exactly. However, you are speaking of mathematics as a way of learning to be logical. There are other ways.
Is Grimaldi someone who can help you with this? Maybe not. He seems to be someone who is not in mathematics so that he can learn to be more logical, but is in mathematics because it allows him to earn a living while having very poor social skills. Do you want him as your leader?
I remember reading a section of some math book. I was completeley confused and lost. I then looked at the exercises and realized I had already knew this stuff from some other class and finished them with no problem.
I went back and re-read the same section and still couldn't follow the book.
What I am saying is sometimes the author of a book sucks, sometimes the book teaches in a way you find hard to understand, and sometimes the subject takes awhile to stick.
Either way you need to get a another book or another major.
Grimaldi is a professor at my alma mater. I can understand how the book might be a bit tough to crack.
Never really had to take his discrete math class, since I was an EE major. But if you're having problems with the book, maybe you could shoot him an email about it. Rose-Hulman professors are busy, but it's not like they have 350 students in each class.
He may be interested in knowing what you found difficult about the book, to perhaps improve the next edition. Also he might give you a few hints on how to understand the book's perspective, and maybe even recommend some good discrete math book from his own experience.
Just be straighforward and avoid excessively detailed problems and explanations. Maybe ask him, first, if it would be okay to consult with him about his book. If you have trouble finding his email address, let me know and I can try to help you get in touch with him.
...
You most certianly can learn math from a book. Just because you have to do some work doesn't mean the problems in the book an insufficient. A lot of instructors spend their entire lectures just doing examples from the book, and almost all of them assign the from the book (and only from the book). Often taking the test problems from the assigned homework, or only slightly modifying homework problems.
While having an instructor, and being among peers learning the same stuff, and being able to ask questions does aid the learning process, it isn't absolutley necessary.
I have a book from college called "Applications for Discrete Mathematics" (or something to that effect). I use it as a $75 doorstop. Literally.
Healthcare article at Kuro5hin
I also had this book for my university Discrete Math course. It's one of my favorite math books. I did not sell it back at the end of the year.
-------------------------------------------------
You misunderstand my point; what I'm saying is that simply reading a book is insufficient -- you need to actually do the problems to get the benefit.
G. Baron and P. Kirschenhofer. An introduction to maths for computer scientists, Vol 1 & 3, Springer/Vienna.
D. E. Knuth. The Art of Computer Programming, Vol 1 - 3, Addison-Wesley
N.L. Biggs. Discrete mathematics, Oxford University Press
R.L. Graham, D.E. Knuth, O. Patashnik. Concrete mathematics, Addison-Wesley
S. B. Maurer, A. Ralston. Discrete Algorithmic Mathematics, A K Peters Ltd
K.H. Rosen. Discrete mathematics and its applications, McGraw-Hill
&& aemula C. ab stirpe interiit
If you read Grimaldi's book with a "Ben Stein"ish voice, it's a lot better - still not as helpful, but quite a bit more entertaining.
Mainly because he sounds like that. I should know - I had him for a class last fall, and I kept waiting for him to go "Bueller... Bueller..."
My favorite is Proof By Fermat:
I also kept mine. One of my favorites.
Don Knuth is like Feynman of CS. This is
:)
an interesting book to read. A textbook for
a Stanford mathematics course.
A. Coward
It is you who is being impolite. I was merely using the description given by an earlier poster. The overall issue stands: Don't let universities and professors intimidate you. You are the customer and deserve to be served.
perhaps you are not capable of Discrete Mathematics. If not, you need to leave CS, and go get in MIS or something, you will be happier.
There are branches of CS where higher-level maths are important, this much is certain. However there are other branches where it's not very relevant at all. I never got to take some of the higher level maths I would have liked to, but I took CS electives that didn't require them.
You might not wind up working at Wolfram or optimizing algorithms, but maybe you'll come up with a very clever network protocol someday or figure out how to balance a robot reliably. The folks in the Math wing of the CS building like to pretend that the rest of CS doesn't exist, but that's just ego.
The parent is telling a shaky-hand kid not to go to med school because he'll make a poor surgeon, when he might actually make a fantastic psychiatrist.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)