On the surface, this is a book about robots. Look deeper, and you will find a book about learning object-oriented programming. Java is the specific object-oriented programming language used, but the general techniques will apply to many object-oriented langauges.
Why robots when we're really learning about programming? An object-oriented programming language uses software objects to model real-world objects or concepts. For example, a program might use software objects to model real-world bank accounts, employees, or a window on your computer. To learn about object-oriented programming we need some simple objects. Robots and the cities they inhabit will be some of these objects.
Robots are a learning tool. They provide an easy launching point for learning all the important object-oriented concepts objects, classes, inheritance, polymorphism as well as traditional concepts such as selection, repetition, step-wise refinement, and parameters.