Shortcut for chapter specific information

Sunday, May 22, 2011

Can CLRS be used as a self-study tool?

Absolutely.

Most of the time I heard people described books such as CLRS, Sedgewick and TAOCP are "reference books".   If you are taking a class in CS, I guess that is an ok thinking.   Though if you are a professional in computer programming, or if you need to change programs in a day-in day-out basis, I will say that CLRS, Sedgeick, TAOCP are completely for reading and for studying.

What confuses most of the people is that reading an algorithm book cannot be a cursory reading.  i.e. what most of the people do most of the time.  Reading an algorithmic book is meant to be as serious as reading a literature.   You want to understand it in many levels.   It can be sentence-by-sentence as you want to understand what the author means.   It can also be an extraction of the semantic of the whole chapter, whole paragraphs.   It can also be an understanding of the whole book. You may also need to read the book by reading many books in a certain subject to get an understanding. 

Or more detail methods on how to read a book, I will suggest everyone to read Alder Mortimer, an Aristotelian's scholar,  "How to read a book".   There are many levels of reading described in his book.  In his description, the ultimate level of reading would be syndicate read.  That is to read many books and collate the combined information and gain a higher understanding.

When, many of us read, we basically subscribe to tenet of speed-reading in which we parse the text from left-to-right, wraparound and repeat as fast as possible.   There is a place for speed-reading but books are not meant to be read in this way. 

Algorithmic book has another requirement if you want to get something out of it.   You need to read it with a computer and pieces of papers.

You need a computer because it is crucial to implement the algorithm to a certain extent to attain understanding of an algorithm.   You may find that the algorithm described is wrong.  That happens to books which are written by famous writers.   You may find that you can do better and think of many variations of the algorithms.    This will be prominent when you look up several algorithmic books.   For example, there is not description of bottom up merge sort in CLRS, but there is one in Sedgewick.   It's a useful skill to learn how to convert a recursive algorithm to an iterative one.   So, learning both certainly don't hurt. 

You also need papers because there are a lot of Math in algorithmic study.  You want to understand a proof by possibly write it own.   You want to think of variations of the proof.  You want to extend the proof to a more general proof.  (even if it is something you consider it as meaningless at the time.)  Of course, you want to do exercises for the simpler books. 

In fact, when you listen to very good programmers, you will find that they are always drilling on great algorithmic books.   They know all the ins and outs of some simple algorithm.    And if you listen to great mathematicians, they will tell you the best way to learn a subject is to try to prove all the theorems of a good standard text book on the field. 

Everyone can be benefited from this way of learning.  It is just a matter of a person's devotion, persistence and patience of the subject.

No comments:

Post a Comment