contents boolean algebra other common structures post-test loop loop and half boolean expressions as decisions summary exercises simulation and design simulating racquetball simulation problem analysis and specification pseudo random numbers top-down design top-level design separation of concerns second-level design designing simngames third-level design finishing up summary of the design process bottom-up implementation unit testing simulation results other design techniques prototyping and spiral development the art of design summary exercises defining classes quick review of objects example programcannonball program specification designing the program modularizing the program defining new classes examplemulti-sided dice examplethe projectile class data processing with class objects and encapsulation encapsulating useful abstractions putting classes in modules