This book evolved over the past ten years from a set of lecture notes developed while teaching
the undergraduate Algorithms course at Berkeley and U.C. San Diego. Our way of teaching
this course evolved tremendously over these years in a number of directions, partly to address
our students’ background (undeveloped formal skills outside of programming), and partly to
reflect the maturing of the field in general, as we have come to see it. The notes increasingly
crystallized into a narrative, and we progressively structured the course to emphasize the
“story line” implicit in the progression of the material. As a result, the topics were carefully
selected and clustered. No attempt was made to be encyclopedic, and this freed us to include
topics traditionally de-emphasized or omitted from most Algorithms books….

download (1)