ThisbookwasmotivatedbymyexperienceinteachingthecourseE&CE;250:AlgorithmsandDataStructuresintheComputerEngineeringprogramattheUniversityofWaterloo.Ihaveobservedthattheadventofobject-orientedmethodsandtheemergenceofobject-orienteddesignpatternshasleadtoaprofoundchangeinthepedagogy