It is not absolutely necessary to purchase any books for this course. However
you may find the books in the "Recommended Reading" section valuable
in gaining a good understanding of the core concepts presented in the lectures.
They may also serve as valuable reference books for any future C++ programming
you do in your degree and beyond.
Lippman, S. & Lajoie, J., "C++ Primer,
3rd Edition", Addison Wesley, 1998.
An excellent tutorial introduction to C++ and Object-Orientation.
Stan Lippman wrote the first C++ compilers.
Stroustrup, B., "The C++ Programming Language,
3rd Ed.", Addison Wesley, 1997.
- Another excellent introductory text, this one from the man who invented
most of the C++ language. Written in a more technical style than Lippman's
text (which some people prefer).
Fowler, M. (with Kendall Scott), "UML¤
Distilled", 2nd Ed., Addison Wesley, 2000.
- Provides a good overview of the Unified Modelling Language¤
in a short book.
- Sommerville, I., "Software Engineering¤,
6th Edition", Addison-Wesley, 2001.
- A classic in the software engineering¤ field for nearly two decades.
- Pressman, R.S., "Software Engineering¤:
A Practitioner's Approach, 4th Edition", McGraw-Hill, 1997.
- An excellent introduction to software engineering¤,
with perhaps a more practical emphasis that Sommerville.
- Schach, S.R., "Object-Oriented and Classical
(5th International Edition)", McGraw-Hill, 2005.
- A good practical text on software engineering with perhaps a better layout
than Pressman or Sommerville.
- Booch, G., Rumbaugh, J. & Jacobson,
I., "The Unified Modelling Language¤
User Guide", Addison-Wesley, 1999.
- A detailed guide to designing object-oriented
software with the UML¤ system.
Written by "the three amigos" who invented the system.
- Gamma, E., Helm, R., Johnson, R., &
Vlissides, J., "Design Patterns", Addison Wesley, 1995.
- This book, now a classic in OO programming, discusses common design
patterns (idioms) essential in most C++ design tasks.
- Josuttis, Nicolai M. "The
C++ Standard Library: a tutorial and reference", Addison Wesley
- Very useful reference book and tutorial for learning the full potential
of C++ using the standard library (including STL).
- Alexandrescu, Andrei , "Modern C++
Addison Welsey, 2001.
- Advanced book on template meta-programming and other advanced design
patterns using templates.
- Meyers, S., "Effective C++", Addison
Wesley, 1992 (1st Ed), or 1998 (2nd Ed).
- A "must see" reference¤
for improving your C++ coding and avoiding some critical pitfalls.
- Meyers, S., "More Effective C++",
Addison Wesley, 1996.
- More of the same excellent advice.
- Brooks, F.P., "The Mythical Man-Month:
Essays on Software Engineering¤",
Addison Wesley, 1975.
- An excellent view on the difficulties and delusions of "real-world" software
After a quarter of a century, still frighteningly relevant.
- Norman, D., "Things that make us smart",
Addison Wesley, 1993.
- An eye-opening book about the general principles of good human-centred
design. It may change the way you view the world.
- "The C++ ISO/ANSI Standard"
definitive document on C++. At 700+ pages of highly technical discussion
it's only for the stoutest of hearts.
- Stroustrup, B., "The Design and Evolution
of C++", Addison Wesley, 1994.
- A historical and philosophical investigation of the evolutionary process
which has lead to the current incarnation of C++ (or at least, to the 1994
of the language). Not essential reading in itself, but useful for understanding
the (not always satisfactory) reasons why C++ is the way it is.
- Boehm, B.W., "Software Engineering¤
Economics", Prentice-Hall, 1988.
- An updated version of the definitive work on software engineering¤
costs and estimation.
- McCabe, T.J., A Software Complexity Measure.
- "IEEE Trans. in Software Engineering¤",
SE-2 (4), 308-20, 1976.
- Winston, H.P., "On to C++", Addison
- This book takes you through the the basics of C++ with a consistent set
of examples. The book is small and to the point, but some students may prefer
larger, more tutorial approach (like Lippman & Lajoie, above) or a more
rigorous technical approach (like Stroustrup, also above).
This material is part of the CSE2305 - Object-Oriented
Software Engineering course.
Copyright © Jon McCormack 2005. All rights reserved.
July 11, 2005