small medium large xlarge

The latest version of the book is P1.1, released over 13 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.1 (10-Sep-11)
PDF page: 2rand
Paper page: 2rand


  • Reported in: P1.1 (09-Apr-06)
PDF page: 62
if the solution "erb_madlibs.rb" should also work with placeholders which run over multiple lines like in example "Gift_Giving.madlib", the reg expres...more...
  • Reported in: P1.1 (09-Apr-06)
PDF page: 67
"... . Otherwise, the sub( ) call will fail, and $1 will be unaltered. ... " As I can see $1 will get Nil and the assignment of the user input to h[$...more...
  • Reported in: P1.1 (10-Dec-08)
Paper page: 72
A very minor issue concerning the usage conditions for erb_madlib.rb. I suggest checking that the file extension name for the madlib input file is ...more...
  • Reported in: P1.1 (16-Mar-06)
PDF page: 116-7
In the "unusual construct", "method({key => value})", the braces are unnecessary; the named-argument style "method(key => value)" should be used.--Dav...more...
  • Reported in: P1.1 (16-Mar-06)
PDF page: 138-9
There are three lines in my code where I "throw" exceptions instead of using "raise" or "fail". It will cause an error, just not the intended one. Tha...more...
  • Reported in: P1.1 (10-Apr-06)
PDF page: 169
Method Cipher.normalize is incorrect. The easiest way to verify this is to add the following test to tc_cipher's test_normalize. assert_equa...more...
  • Reported in: P1.1 (17-Mar-06)
PDF page: 215
In the 3rd paragraph of the comment above "class Maze": If 1 one is set, then p has a north # wall; if bit 2 is set, then p has a west wall. Th...more...