The complete tutorial guide to object-oriented programming techniques in Eiffel, emphasising how its unique approach to `programming by contract' encourages the design of correct, reusable software components.

Emphasises the role of abstract data types in software development and uses them as a framework to teach Eiffel. Explains the principles behind the use of polymorphism and dynamic binding. Makes use of extensive written and practical exercises the majority of which contain solutions to consolidate and enhance the teaching of Eiffel.