1. 14

  2. 8

    May I suggest another to this list:

    Algorithm Design by Jon Kleinberg and Éva Tardos

    The trouble I have with CLRS and Dasgupta is the theory is really hard to work through. Kleinberg and Tardos have an incredible gift of giving the intuition behind not just the algorithm, but also why the theorems and properties of the algorithm hold. If you care to prove properties of algorithms and not just code them their book teaches you that skill brilliantly. They also spend much more time on Randomized and Approximate algorithms which I think are criminal not to cover in 2017.

    1. 3

      Knuth seems more geared towards graduate students near the end of their Ph.Ds and practicing researchers.

      This may qualify as one of the all time great understatements.

      It’s such an evasive statement that I’m not sure he actually read the books. (And really, how many people have actually read Knuth Vol 1-3.?)

      1. 2

        I’m actually confused: are Knuth’s TAOCP actual books, whose purposed is to be read from cover to cover; or are they reference material to check on certain doubts? The prose and structure seems to suggest that they are regular and incremental text books, but they are so comprehensive that it looks to me like reading the whole encyclopedia.

        1. 3

          I was pretty sure Knuth recommended skipping the difficult math, so I double checked, and between the preface and first chapter is a page titled, “Procedure for Reading This Set of Books,” and step 11 suggests people uncomfortable with the more difficult math skip over it but pay attention to its “basic result.”

          I also noticed this amusing paragraph in the preface:

          This set of books is intended for people who will be more than just casually interested in computers, yet it is by no means only for the computer specialist. Indeed, one of my main goals has been to make these programming techniques more accessible to the many people working in other fields who can make fruitful use of computers, yet who cannot afford the time to locate all of the necessary information that is buried in technical journals.”

          I guess it helps to remember it was the 60s, and almost everybody programming computers would have had heavy math backgrounds (engineers, scientists, professors, etc.), so the run of the mill math in most sections wouldn’t have seemed to bad.

          1. 1

            If there were a 4-year bachelor’s degree entirely in Algorithms, TAOCP might be a good textbook for it…