Concepts in Programming Languages, John Mitchell. Cambridge University Press. ISBN 0-521-78098-5. An important and critical complement to the material from the lectures because it presents the orthogonal theme-based view of programming languages in contrast to the language directed presentation of the lectures. Class mark: 518.51 MIT (2 copies).
Structure and Interpretation of Computer Programs, Abelson & Sussman. Written to use the programming language Scheme. Very good introduction to a constructivist way of thinking about program design and an excellent demonstration of the use of Scheme. Now in second edition.
Classical Data Structures in C++, Timothy Budd. One of the nicer books on C++.
Data structures in C++ using the standard template library, Timothy Budd. Revision of the above done in terms of STL. Class mark 518.562C
The C++ Programming Language (3rd Edition), Bjarne Stroustrup. The classic C++ reference...but reference it is. Do not start here to learn the language. Primarily of use to someone who knows OO languages and C++.
Smalltalk-80, The Language and its Implementation, Goldberg & Robinson. The definitive description of the implementation of the Smalltalk language. Very readable for all that, and provides a good introduction to OO terms and concepts.
Smalltalk with style Edward Klimas, Suzanne Skublics, David Thomas. Class mark 518.55.
The Art of the Metaobject Protocol, Gregor Kiczales, Jim des Rivieres, Daniel Bobrow. Rather advanced text...but for the interested reader, covers just about every nut and bolt of OO design and implementation. Class mark 518.58
An introduction to object-oriented programming, Timothy Budd. Class mark 518.24 BUD. A good introduction and survey of a range of class-centred languages and how to use them.
Principles of Object-oriented Software Development, Anton Eliëns. Not in library. Despite title, offers a good perspective on the different kinds of object-oriented languages.
Managing projects with Make, Andrew Oram and Steve Talbott. O'Reilly. Probably the only widely accessible source of information on using make.
1984, George Orwell. Some light (?) relief to support the thesis that if you can't say it you can't think it.
Concepts of Programming Languages (fifth edition), Robert Sebesta. Addison Wesley. An approximate map of some of the topics to be covered. Offers a reasonable survey of a range of languages, sticking pretty well to concepts instead of descending to summaries of features. Good collection of facts, many of which seem accurate, but some of the opinions should be recognized as such.