Fundamentals of computing: Abstraction, data structures, and large sofware systems (Volume 2) - Allen B Tucker (McGraw-Hill, 1995)
This text provides a broader view of abstraction, complexity, data structures, software design, and their underlying principles. In addition, the integrated laboratory experience provides a rich exposure to the principles of the object-oriented software design, with an emphasis on datastructures, data abstraction, team programming, and their application in operating systems and compiler design.