Data Structures. Jonathan Shewchuk.
COMP2911: You become a designer. You are familiar and practised in the process of design. You know how to approach the design of new data structures and algorithms appropriate for the problem at hand. You have an appreciation for the qualities of a good design.