Logo - springer
Slogan - springer

Computer Science - Software Engineering | Touch of Class - Learning to Program Well with Objects and Contracts

Touch of Class

Learning to Program Well with Objects and Contracts

Meyer, Bertrand

2009, LXIV, 876 p. 935 illus.

Available Formats:

Springer eBooks may be purchased by end-customers only and are sold without copy protection (DRM free). Instead, all eBooks include personalized watermarks. This means you can read the Springer eBooks across numerous devices such as Laptops, eReaders, and tablets.

You can pay for Springer eBooks with Visa, Mastercard, American Express or Paypal.

After the purchase you can directly download the eBook file or read it online in our Springer eBook Reader. Furthermore your eBook will be stored in your MySpringer account. So you can always re-download your eBooks.


(net) price for USA

ISBN 978-3-540-92145-5

digitally watermarked, no DRM

Included Format: PDF

download immediately after purchase

learn more about Springer eBooks

add to marked items


Hardcover version

You can pay for Springer Books with Visa, Mastercard, American Express or Paypal.

Standard shipping is free of charge for individual customers.


(net) price for USA

ISBN 978-3-540-92144-8

free shipping for individuals worldwide

online orders shipping within 2-3 days.

add to marked items

  • Revolutionary introduction to programming
  • First introductory programming book to use concepts of Design by Contract for software safety and reliability
  • Examples and exercises allow all students to build graphical and multimedia applications right from the start
  • Includes introductions into Java, C#, and C++ of 30 pages each to enable easy application of presented concepts in various object-oriented languages

From object technology pioneer, Design by Contract inventor and ETH Zurich professor Bertrand Meyer, winner of ACM Software System Award, the Dahl-Nygaard prize and the Jolt award, Touch of Class is a revolutionary introductory programming textbook that makes learning programming fun and rewarding.

Instead of the traditional low-level examples, Meyer builds his presentation on a rich object-oriented software system supporting graphics and multimedia, which students can use to produce impressive applications from day one, then explore "from the outside in" as they learn new programming techniques.

Unique to Touch of Class is the combination of a practical, hands-on approach with sound theory. Throughout the presentation of software concepts, the book relies on the principles of Design by Contract, critical to software quality and providing a gentle introduction to formal methods.

The coverage is notable in both its depth and its breadth. In addition to core programming concepts such as control structures, algorithms and fundamental data structures, it encompasses recursion (including theory and implementation), reference and pointer manipulation, inheritance and associated techniques of polymorphism and dynamic binding, topological sort as an example of algorithm and API design, syntax description techniques, important design patterns such as Observer and Visitor, event-driven programming, high-level function closures (including an introduction to lambda calculus) and software tools. The final chapter is a detailed introduction to the challenges and techniques of software engineering, from lifecycle models to requirements analysis.

The use of full color brings exciting programming concepts to life.

Touch of Class gives students the leading edge by teaching both the fundamental techniques of programming and the professional-level skills preparing them for the challenges of modern software engineering.

Content Level » Lower undergraduate

Keywords » C++ - Java - complexity - data structures - design - programming - software engineering

Related subjects » Software Engineering

Table of contents 

Basics.- The industry of pure ideas.- Dealing with objects.- Program structure basics.- The interface of a class.- Just Enough Logic.- Creating objects and executing systems.- Control structures.- Routines, functional abstraction and information hiding.- Variables, assignment and references.- How things work.- Just enough hardware.- Describing syntax.- Programming languages and tools.- Algorithms and data structures.- Fundamental data structures, genericity, and algorithm complexity.- Recursion and trees.- Devising and engineering an algorithm: Topological Sort.- Object-Oriented Techniques.- Inheritance.- Operations as objects: agents and lambda calculus.- Event-driven design.- Towards software engineering.- to software engineering.

Popular Content within this publication 



Read this Book on Springerlink

Services for this book

New Book Alert

Get alerted on new Springer publications in the subject area of Software Engineering / Programming and Operating Systems.

Additional information