[click here to zip down to the schedule of public lectures]
Happy 2010 (i.e., MMIX++) to all!
I'm pleased to announce the publication of Selected Papers on Design of Algorithms, which contains updated versions of more than two dozen papers that I've had lots of fun writing over the years. Be the first to find a mistake in this book!
Paperback previews of new material for The Art of Computer Programming, called ``fascicles,'' have been published occasionally since 2005. Late this year, a hardback Volume 4A will be cobbled together from the five booklets illustrated above, with amendments and corrections that have been suggested by hundreds of helpful readers who have been beta-testing the preliminary installments and providing great feedback.
Here are details of the paperbacks currently available:
Volume 4 Fascicle 0, Introduction to Combinatorial Algorithms and Boolean Functions (2008), xii+216pp. ISBN 0-321-53496-4; fourth printing (August 2009).
Volume 4 Fascicle 1, Bitwise Tricks & Techniques; Binary Decision Diagrams (2009), xiii+261pp. ISBN 0-321-58050-8; second printing (August 2009).
Volume 4 Fascicle 2, Generating All Tuples and Permutations (2005), v+128pp. ISBN 0-201-85393-0; third printing (January 2010).
Volume 4 Fascicle 3, Generating All Combinations and Partitions (2005), vi+150pp. ISBN 0-201-85394-9; third printing (May 2009).
Volume 4 Fascicle 4, Generating All Trees; History of Combinatorial Generation (2006), vi+120pp. ISBN 0-321-33570-8; fourth printing (May 2009).
Booksellers offer a special deal where you get a nice discount if you purchase all five, "shrink-wrapped" together.
These fascicles include approximately 1500 exercises, together with answers for self-study. There are some 818 pages, not counting the front matter and indexes. Hundreds of useful facts appear that cannot be found in any other publications, as far as I know.
Naturally I'm anxious to get all these details right, because I've had thousands and thousands of opportunities to make mistakes (and I must admit that I didn't always get 100% on the exams that I took during my student days). Therefore I am happy to offer reward checks whenever somebody helps me pick out a few more nits.
Should you purchase the paperbacks now, given that the hardcover version is less than a year away? That depends on (1) how long you want to wait before learning some of this material---which I believe you'll find useful for the rest of your life, if you are a born computer programmer; and on (2) how much you'd like to help.
Note to Computer Science professors: I've heard that some college courses for grad students and advanced undergrads are being based on one or more of these fascicles. Please let me know about your experiences, if you try such an experiment.
Note to Internet friends: I'm extremely grateful that hundreds of you have taken time to read these drafts, and to detect and report errors that you've found. Your comments have improved the material enormously. But I must confess that I'm also disappointed to have had absolutely no feedback so far on several of the exercises on which I worked hardest when I was preparing this material. Could it be that (1) you've said nothing about them because I somehow managed to get the details perfect? Or is it that (2) you shy away from the more difficult stuff, being unable to spend more than a few minutes on any particular topic? Although I do not like to think that readers are lazy, I fear that hypothesis (1) is far less likely than hypothesis (2). I may have to remove material that nobody cares about. But I still cling to a belief that these details are extremely instructive, and I'm uncomfortable with the prospect of printing a hardcopy edition with so many exercises unvetted.
Thus I would like to enter here a plea for some readers to tell me explicitly, ``Dear Don, I have read exercise N and its answer very carefully, and I believe that it is 100% correct,'' where N is one of the following:
Remember that you don't have to work the exercise first; you're allowed and even encouraged to peek at the answer. Please send success reports to the usual address for bug reports (email@example.com), if you have time to provide this extra help. Thanks in advance!
... in a video from 1959!
As an experiment, my Christmas Tree Lecture this year (see below) will be webcast live and freely available for viewing anywhere in the world. Stanford's Stanford's Center for Professional Development is calling it course GW017. To try it, you have to get an account at mystanfordconnection; but I've tried that and it seems relatively painless. Further information is here.
Although I must stay home most of the time and work on books that I've promised to complete, I do occasionally get into speaking mode. Here is a current schedule of events that have been planned for this year so far: