Touch of Class

Learning to Program Well with Objects and Contracts

By Bertrand Meyer

Touch of Class Cover Image

This text combines a practical, hands-on approach to programming with the introduction of sound theoretical support focused on teaching the construction of high-quality software. A major feature of the book is the use of Design by Contract.

Full Description

  • ISBN13: 978-3-5409-2144-8
  • 940 Pages
  • User Level: Students
  • Publication Date: June 29, 2009
  • Available eBook Formats: PDF
  • eBook Price: $79.95
Buy eBook Buy Print Book Add to Wishlist
Full Description
From object technology pioneer and ETH Zurich professor Bertrand Meyer, winner of the Jolt award and the ACM Software System Award, a revolutionary textbook that makes learning programming fun and rewarding. 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 understand inside out as they learn new programming techniques. Unique to Touch of Class is a combination of a practical, hands-on approach to programming with the introduction of sound theoretical support focused on helping students learn the construction of high quality software. The use of full color brings exciting programming concepts to life. Among the useful features of the book is the use of Design by Contract, critical to software quality and providing a gentle introduction to formal methods. Will give students a major advantage by teaching professional-level techniques in a literate, relaxed and humorous way.
Table of Contents

Table of Contents

  1. Prefaces.
  2. I. Basics.
  3. The industry of pure ideas.
  4. Dealing with objects.
  5. Program structure basics.
  6. The interface of a class.
  7. Just enough logic.
  8. Creating objects and executing systems.
  9. Control structures.
  10. Routines, functional abstraction and information hiding.
  11. Variables, assignment and references.
  12. II. How things work.
  13. Just enough hardware.
  14. Describing syntax.
  15. Programming languages and tools.
  16. III. Algorithms and data structures.
  17. Fundamental data structures, genericity, and algorithm complexity.
  18. Recursion and trees.
  19. Devising and engineering an algorithm: Topological Sort.
  20. IV. Obejct
  21. oriented techniques.
  22. Inheritance.
  23. Operations as objects: agents and lambda calculus.
  24. Event
  25. driven design.
  26. Program correctness and proofs.
  27. V. Towards Software Engineering.
  28. Introduction to software engineering.
  29. VI. Appendices.
  30. A: An introduction to Java (from material by Marco Piccioni.
  31. B: An introduction to C# (from material by Benjamin Morandi).
  32. C: An introduction to C++ (from material by Nadia Polikarpova).
  33. D: From C++ to C.
  34. E: Using the EiffelStudio environment.
  35. VII. Credits and index.
Errata

Please Login to submit errata.

On page 843:

URL touch.ethz.ch/eiffelstudio returns 404 not found (2014-04-16)