3 ms·
It appears that lot of people consider math in CS book as optional and think it's just there to make book look more serious. I actually LOVE having math in CS b
by sytelus 12y ago
It appears that lot of people consider math in CS book as optional and think it's just there to make book look more serious. I actually LOVE having math in CS books. Without math you only know what is the "fact", but with math you can understand why it is the fact.
On the other end, CLRS is far from perfect. My two issues with CLRS are:
1. Many critical topics are missing entirely while lot of non-critical stuff have gotten in to. There is a discussion started out by Professor Corman at Quora for suggestions for 4th edition here: http://www.quora.com/As-we-start-planning-the-next-edition-of-Introduction-to-Algorithms-CLRS-what-should-we-add-and-what-should-we-remove http://www.quora.com/As-we-start-planning-the-next-edition-o...
2. CLRS doesn't often try to make you understand the topic or algorithm. For example, for BST it will just say this is how you find successor node and it's entirely your job to think why this is the best way or why other alternatives won't be good. The way I deal with this is stop reading after chapter introduction and think about for a while how I would have solved problem and then read explanation in the book. This often illuminates subtle points of algorithms. I ended up annotating huge swath of text in my own PDF copy.
- sysk 12y agoFor anyone else wondering, CLRS refers to the "Introduction to Algorithms" book.
- justin66 12y agoOne of dozens to use that in the title. Hence the reference to the author's names.
- jlarocco 12y agoPersonally, reading through a bunch of math doesn't help me understand how an algorithm is working. I've always found it far easier to scan through some psuedo-code and read a few paragraphs explaining it. At this point, I can usually look at the loops, recursive calls, and "structure", and get a pretty good idea of how it's working, what it's big-O run time would be, and why. Full blown formal proofs and theorems just don't help my understanding. I agree the math is important for research and writing papers, and proving one algorithm is better than another, but for practical purposes (i.e. actually implementing an algorithm in real code) it's just not very helpful. And the reality is that most people learning about algorithms are going to spend a lot more time implementing algorithms than they will writing papers and doing algorithm research, so I'm not sure a math heavy book like CLRS is really the best undergraduate text.
- jules 12y agoProofs are a means to understanding a topic, not an end in itself. In CS there is often a tendency to do trivial proofs in painstaking detail, because there's a feeling that you need a certain amount of math to be taken seriously. The purpose of a proof is to convey understanding. In most cases an intuitive explanation with pictures & text is much more efficient at that than a formal proof.