An Annotated Bibliography

CS 509, Advanced Programming II, Fall 2003

This page contains an annotated bibliography of books that may be helpful for people taking advanced programming. Entries followed by a call number can be found in the Guggenheim Library.

David R. Musser, Gillmer J. Derge, and Atul Saini; STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library, second edition, Addison Wesley, 2001. I have a copy of this.

An excellent book, complete and clear. Make sure you get the second edition, which has been updated to cover the current, standard version of the STL.

Scott Meyers, Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library, Addison Wesley, 2001.

Once you've learned the STL, you need to learn to use it well. This book will help you. I have a copy of this.

Bjarne Stroustrup, The C++ Programming Language, special edition, Addison Wesley, 2000.

Unfortunately, if you're going to be a C++ programmer, you're going to be a language lawyer, and you might as well get the laws from Moses himself. I have a copy of this.

Scott Meyers, Effective C++: 50 Specific Ways to Improve Your Programs and Design, second edition, Addison Wesley, 1998

Scott Meyers, More Effective C++: 35 New Ways to Improve Your Programs and Designs, Addison Wesley, 1996.

You can use Effective C++ in two ways: first, if there's a chapter about some C++ feature, you should think hard about whether or not you really need to use that feature. Second, if you decide you do need to use it, you should read and understand the chapter so you can avoid all the little traps that are waiting for you.

If you can't borrow a copy of More Effective C++, you should wait until the second edition comes out before you buy one.

Stephen Dewhurst, C++ Gotchas, Addison Wesley, 2003.

You know how you go to the doctor for a cough or an itch - nothing serious - and the doctor gives you a prescription for three days worth of pills or syrup or something? And you go to the druggist and get the prescription filled, and you take it home and you open it up? And all folded up in the package is a really big sheet of paper covered with really small print describing all the bad things that can happen to you if take the medicine improperly - like how your fingers fall off if you take it on an empty stomach, or like how your lungs will burst into flames if you take the medicine and then go to sleep too soon afterwards? You know that sheet? This book is to C++ what that sheet is to your medicine.

Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied, Addison Wesley, 2001.

This is what I call advanced C++ programming.

This page last modified on 2 October 2003.