Instructor's Guide
introduction
themes
paradigms
lifecycle
trends
summary
Q/A
literature
The papers listed in the online section
on Landmark Papers
provide a starting point for
studying the various areas and applications of object-oriented
technology presented in the book.
Recommendations for further reading are given below.
Object-Oriented Programming
An exhaustive, yet excellent description of C++ is given in [St91].
An excellent introduction to C++ is given in [Lippman91].
In [Coplien92] a number of advanced idioms and styles for
using C++ are treated.
An introduction to object-oriented programming is given in
[Budd91], which covers a variety of languages.
The language Eiffel is introduced in
[Meyer88].
The original introduction to Smalltalk is by [GR83].
Data abstraction and object-oriented programming in C++
is dealt with in [GOP90].
Another introduction to object-oriented programming and C++
is given in [WP88].
An early book on OOP is [Cox86].
[Graham91] gives a very readable overview of object-oriented
methods.
[Winblad90] survey a number of important issues in object-oriented software
development.
An overview of applications of object-oriented programming is given by
[Pinson90] and [Harmon93].
Data abstraction and algorithms in C++
The number of books providing a university course level
introduction to the use of C++ for the development of
abstract data types and algorithms is steadily increasing.
We have, among others, [Heading],
[Sedgewick92], [Budd94], [Bergin94] and [Weiss93]
(of which nearly identical texts are available for C and Ada).
Object-Oriented Programming and Software Engineering
Object-oriented design with applications is covered in
[Booch94].
Object-oriented analysis is the subject of
[CY90].
A very readable account of object-oriented design is given in
[WWW90].
[Ince91] gives an introduction to software engineering with C++.
[McGregor92] deal with the advantages of an object-oriented
approach from the perspective of reuse.
In [Jacobs92] a method for object-oriented development
is described together with an accompanying case tool.
[Hend92] gives a concise overview of the issues in object-oriented
analysis and design.
Further, we have [Champeaux93],
which covers analysis and design,
and [Wilkie93], which provides a professional guide
to object-oriented software engineering.
In [Rum91] a method for modeling object-oriented systems is introduced.
Also worth mentioning is [Henderson93],
which presents a canonical approach to map formal designs
to C++ code,
and [Fusion] which presents a promising synthesis
of a number of object-oriented development methods.
Object-Oriented Programming and Artificial Intelligence
The role of object-oriented programming in artificial intelligence
is exhaustively treated in [Tello89].
Apart from describing numerous AI systems embodying
object-oriented notions, a number of research issues
concerning the relation of object-oriented programming
to AI are discussed.
The CLOS perspective on OOP is presented in [Paepcke93].
Also worth mentioning is [Blum92], which
presents an object-oriented framework for developing connectionist
systems and neural networks in C++.
Theoretical Issues of Object-Oriented Programming
In [DT88] an overview is given of theoretical work on type-systems
for object-oriented programming languages.
In [BRR90] a number of research papers are collected together dealing
with the foundations
of object-oriented programming languages.
Specification and verification techniques for abstract data types
are covered in [Dahl92].
Also worth mentioning is [Palsberg94],
which presents an encompassing study (including tools)
of the type theoretical aspects of OOP.
Object-oriented databases
A collection of research papers concerning object-oriented
notions in databases and expert systems is contained in
[KL89].
A more systematic discussion of the problems in
combining object-oriented, deductive and hypermedia technologies
is given in [PCKW89].
Additional literature
Object-oriented programming and concurrency is the subject
of the majority of papers in [YT87] and [AWY93].
A variety of research papers may further be found in
[SW87].
Of particular interest are the standardization efforts
reported in [OMG] and [Cattell94].
Finally, an invaluable source of material is provided
by the various conference proceedings, including those of
OOPSLA, ECOOP and TOOLS,
and the numerous magazines concerning object-oriented programming,
such as JOOP, the {\em C++Report}, IEEE Computer,
IEEE Software
and the ACM SIGPLAN Notices.