[click here to zip down to the schedule of public lectures]

I've just learned that 2015 is `11111011111` in binary notation.
Which is why I've just turned 77.

For many years I've resisted temptations to put out a hasty electronic version of The Art of Computer Programming, because the samples sent to me were not well made.

But now, working together with experts at Mathematical Sciences Publishers, Addison-Wesley and I are launching an electronic edition that meets the highest standards. We've put special emphasis into making the search feature work well. Thousands of useful "clickable" cross-references are also provided --- from exercises to their answers and back, from the index to the text, from the text to important tables and figures, etc.

*Note: However, I have personally approved ONLY the PDF
versions of these books. Beware of glitches in the ePUB and Kindle
versions, etc., which cannot be faithful to my intentions because
of serious deficiencies in those alternative formats.
*

The first fascicle can be ordered from Pearson's InformIT website, and so can Volumes 1, 2, 3, and 4A.

Volume 4B of The Art of Computer Programming will begin with a special section called ‘Mathematical Preliminaries Redux’, which extends the ‘Mathematical Preliminaries’ of Section 1.2 in Volume 1 to things that I didn't know about in the 1960s. Most of this new material deals with probabilities and expectations of random events; there's also an introduction to the theory of martingales.

You can have a sneak preview by looking at the current draft of pre-fascicle 5a (48 pages), last updated 20 February 2015. As usual, rewards will be given to whoever is first to find and report errors or to make valuable suggestions. I'm particularly interested in receiving feedback about the exercises (of which there are 118) and their answers (of which there are 118).

There's stuff in here that isn't in Wikipedia yet!

I worked particularly hard while preparing some of those exercises, attempting to improve on expositions that I found in the literature; and in several noteworthy cases, nobody has yet pointed out any errors. It would be nice to believe that I actually got the details right in my first attempt; but that seems unlikely, because I had hundreds of chances to make mistakes. So I fear that the most probable hypothesis is that nobody has been sufficiently motivated to check these things out as yet.

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 exercises in prefascicle 5a:

- 109 (Strassen's theorem for coupling in finite posets)

Remember that you don't have to work the exercise first; you're allowed
to peek at the answer, and even encouraged to do so.
Please send success reports to the usual address for bug reports
(`taocp@cs.stanford.edu`),
if you have time to provide this extra help. Thanks in advance!

Hooray! After fifteen years of concentrated work with the help of numerous
volunteers,
I'm finally able to declare success by releasing Version 1.0 of the
software for
`MMIX`. This represents the most difficult
set of programs I have ever undertaken to write; I regard it as a major
proof-of-concept for
literate programming, without which I believe the
task would have been too difficult.

Version 0.0 was published in 1999 as a tutorial volume of Springer's Lecture Notes in Computer Science, Number 1750. Version 1.0 has now been published as a thoroughly revised printing, available both in hardcopy and as an eBook. I hope readers will enjoy such things as the exposition of a computer's pipeline, which is discussed via analogy to the activites in a high tech automobile repair shop. There also is a complete implementation of IEEE standard floating point arithmetic in terms of operations on 32-point integers, including original routines for floating point input and output that deliver the maximum possible accuracy. The book contains extensive indexes, designed to enhance the experience of readers who wish to exercise and improve their code-reading skills.

I'm pleased to announce the appearance of an excellent 200-page companion
to Volumes 1, 2, and 3, written by Martin Ruckert.
It is jam-packed with goodies from which an extraordinary amount can be
learned. Martin has not merely transcribed my early programs for `MIX`
and recast them in a modern idiom using `MMIX`; he has penetrated to
their essence and rendered them anew with elegance and good taste. His
carefully checked code represents a significant contribution to the art of
pedagogy as well as to the art of programming.

Although I must stay home most of the time and work on yet more 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:

- Sunday March 8, 9:15am at First Lutheran Church in Palo Alto
- Discussing a multiyear project in which I'm attempting to write a major work for organ in my spare time, based on the Book of Revelation
- Thursday May 7, 5:15 in CCRMA room 217 (at the Knoll)
- “Constraint-based composition”: Explaining the peculiar(?) methods that I'm using as I try to compose a major work for pipe organ in my spare time
- Wednesday May 27, 2pm in Oxford Comlab, Lecture Theatre B
- Presenting a seminar talk “An asymmetric approach to symmetry breaking”
- Wednesday July 15, 9am, somewhere at Stanford
- Speaking for 90 minutes about “SAT and TAOCP” at the beginning of the SAT/SMT Summer School 2015

Click here for the “recent news” that was current at the end of 2014, if you're interested in old news as well as new news.