next up previous contents
Next: List Data Structures: Basics Up: Introduction: Previous: Introduction:

Background Reading and Study:

Out of the many books that are available for self-study in all of the areas above, some have proved to be invaluable, while others have been much less helpful. The following annotated list consists of the real gems:

* C+ +:
The following books need to be on your shelf. Lippman will get you started, but you'll also need Deitel and Deitel and Olshevsky and Ponomarev for nuance.
1.
Lippman, S. 1991. C+ + Primer, Second Edition, Addison-Wesley Publishing Company, New York.

This book is the most basic resource for this area. While very complete, it has shortcomings; for example, it's discussion of call by reference is very unclear and its treatment of dynamic binding in its chapters on OOD is also murky. Nevertheless, it is a good basic introduction. It's biggest problem for us is that all of its examples are so simple (yes, even the zoo class is just too simple to give us much insight).

2.
Deitel, H. and P. Deitel. 1994. C+ +: How to Program, Prentice Hall.

We have found this book to be of great value. It intermingles excellent C+ + coverage with ongoing OOD material. This book was very helpful. It is full of practical advice on software engineering aspects of OOD design.

3.
Olshevsky, V. and A. Ponomarev. 1994. The Revolutionary Guide to OOP Using C+ +, WROX.

This book has a wonderful discussion of call by reference and equally good material on dynamic binding.

4.
Wilhem, R. and D. Maurer. 1995. Compiler Design, Addison-Wesley.

This book has already been mentioned in the text as the source of technical information on how an object-oriented compiler is built. This is an essential resource.

* Object Oriented Programming and Design:

1.
Booch, G. 1994. Object -Oriented Analysis and Design with Applications, Second Edition, The Benjamin/ Cummings Series in Object - Oriented Software Engineering, Ed. G. Booch, Benjamin/ Cummings Publishing Company, Inc., Redwood City, CA.

This is a classic reference to one method of handling large scale OOD. As the number of objects in your design grows there is a combinatorial explosion in the number of interaction pathways. The Booch method gives a popular software engineering tool. This is best to read on a surface level, for impressions and ideas.

2.
Martin, R. 1995. Designing Object - Oriented C+ + Applications Using the Booch Method, Prentice Hall, Englewood Cliffs, New Jersey.

If you decide to use the Booch method, this book is full of practical advice. It has many code examples, but it has a very heavy reliance on templates. This is a C+ + language feature we have been avoiding (for reasons not entirely clear to us!), so the translation of Martin's code fragments into useful insight is sometimes difficult, but nonetheless, there is much meat here.

3.
Pree, W. 1995. Design Patterns for Object-Oriented Software Development, ACM Press Books, Addison-Wesley Publishing Company, New York.

The design of classes and objects is very much an art form. To some extent, like all crafts, you learn by doing. As you get more skilled, you realize how little of the real knowledge of how to write good classes is written down! This book is full of hard won real-world wisdom that comes out of actually being in the programming trenchs. It is best to surface read and sample.

4.
Soukup, J. 1994. Taming C+ +: Pattern Classes and Persistence for Large Projects, Addison-Wesley Publishing Company, New York.

We have similar comments for this book. Since our proposed neural objects OOD project will be a rather massive undertaking, useful insight into the large scale OOD is most welcome!

5.
Gamma, E., R. Helm, R. Johnson and J. Vlissides. 1995. Design Patterns: Elements of Reusable Object - Oriented Software, Addison - Wesley Professional Computing Series, Ed. B. Kernighan, Addison - Wesley Publishing Company, New York.

As you program, you realize that many classes are essential building blocks of many disparate applications. This wonderful book brings together a large number of already worked out OOD solutions to common problems. It is extremely important to look at this book carefully. All of the different classes are presented in code sketches ( not easy to follow, but well worth the effort!).


next up previous contents
Next: List Data Structures: Basics Up: Introduction: Previous: Introduction:
Jim Peterson
1999-04-22