A Gentle Introduction to the Art of Object-Oriented Programming

Copyright 1997, John Wiley & Sons. All Rights Reserved.

ISBN 0-471-13809-6
You can purchase this book from the Wiley Home Page .

The first printing of Karel++ has the following typographical errors.

Last updated May 11, 2005

 Page Line Error

 11 	5 	Omit semicolon at end of task block.
 35 	19 	void Mile_Mover::move()

 47	1	void Harvester::harvestTwoRows()

 55 	-16 	#include "Harvester.r"
 126 	-1 	replace the right brace with a left brace. 
 129 	-4 	replace the right brace with a left brace. 
 139 	8 	The beeper field can be any size... (Not "the same size").

 141 	-3 	Problem 9 is in section 4.9, not in section 4.10
 146 	11 	...Karl, who can be a SuperSteepleChaser robot. 
 156 	-13 	void Mathematician :: zigLeftUp ()

 161    11      “using” should be “use”

163 -13 missing right paren: while (nextToABeeper()

164  7 missing right paren: while( Check.enoughToCarry()

164 21 missing parens: putBeeper;

165 -2 through -7 “checker” should be "Check" and “carrier” should be "Carry" Carry.turnLeft(); through Check.turnRight();

166 11 missing right paren: if (frontIsClear()

166 22 missing right set bracket } to match the bracket on line 8 174 -11 Carol should be a Robot, not an ur_Robot. 174 -7 Carol should be a Robot, not an ur_Robot. 180 after 4 add two additional lines giving
extra alternative instructions: <aliasName> = <aliasName> ; <aliasName> = & <robotName> ; 180 after 9 add an additional line giving an extra alternative for <robotInitialization>: <className> * <aliasName> ;

(Negative line numbers are counted from the bottom of the page.)

Note that there is a restriction in the Karel++ language as currently implemented in its simulator. All robot declarations must come before any other statements in the main task block. I may be able to remove this restriction in the future.

Also note that the simulator runs poorly under Windows/2000. I believe that this is due to a change by Microsoft that make one of our DLL's fail. I don't currently have a fix.

Thanks to Japheth Wood and his student Enming Qing at Chatham College for finding a large number of errors.

Historical Note. On page 55, we named one of the robot methods stepAndFetchit. This has struck a raw nerve with at least one of our readers. This note is to point users to some facts about African-American history of the early part of the 20th century up to the Civil Rights movement of the mid-century period. Lincoln Theodore Monroe Perry was a Black entertainer around the 1920s who created a character "Stepn Fetchit" that portrayed Negro males as stupid and ludicrous -- a common stereotype of the day. This was at a time in U.S. history when any visible Black male was at risk of his life in many parts of the country, yet he was a pioneer in the entertainment industry. Many people reviled him in his life, which overlapped with the civil rights movement, as his act was seen as degrading.

However, he always maintained that his work had to be seen in context and the work can, perhaps, be seen as a social comment on the nature of black-white relations of the time rather than a comment on his own race. He was eventually able to play non stereotypical roles and opened doors for others. He died in 1985.

While he remains a controversial figure, "In his latter years he received many awards and accolades the most meaningful of which was the Special Image Award of the Hollywood chapter of the N.A.A.C.P in 1976. He was also elected into the Black Filmmakers Hall of Fame in 1978." Quoted from the web.

If you discover other errors, please let me know. Joseph Bergin

Back to the Book Karel++

Last Updated: May 11, 2005