Yes, but I also expected something about dynamic programming.  Norvig's title leads to confusion.  (Or rather the older usage of the term is not very well thought-out, and should probably be replaced with "solving problems by solving all smaller problems".  Alas, the other guys came first.)<p>Interestingly there are some nice patterns in implementing dynamic programming --- especially in relation to memoization and lazy evaluation.  I should probably write an article with the same title.