\documentstyle[12pt]{article}
%\documentstyle{siam}
%%\documentstyle{article}
%\documentstyle[proc]{article}
%\documentstyle[proc]{article}

\begin{document}
%\bibliographystyle{alpha}
\bibliographystyle{abbrv}
\raggedbottom
%\title{The Stepping Stones to Object-oriented Programming}
\title{Teaching\\ Object-Oriented Design and Programming}
\author{Karl J. Lieberherr\\
Northeastern University, College of Computer Science\\
Cullinane Hall, 360 Huntington Ave., Boston MA 02115\\
lieber@ccs.neu.edu}

\maketitle
%\nocite{lieber-riel:oop}
%\nocite{goguen:foops-86}
%\nocite{habermann:hicss-88}
%\input /fiona/csfaculty/wand/tex/time.tex 
%\centerline{Texed at \thetime\ \today}
%\centerline{Copyright \copyright 1988 Karl Lieberherr}
%\input /fiona/csfaculty/lieber/papers/new-obj/common.tex
\input common.tex
%\input /home/lieber/papers/new-obj/common.tex


\begin{abstract}
This is an expanded form of the paper:
``Contributions to teaching object-oriented design and programming'',
with Arthur Riel,
{\em Proceedings of Conference on Object-Oriented Programming Systems,
Languages and Applications}, New Orleans, LA, October 1989, pp 11-22.

We provide a formal agenda for teaching the object-oriented
paradigm in a programming language independent manner, and a tool
which supports our teaching approach.  Our 
proposal for a comprehensive study of the subject includes an ordered
set of objectives designed to guide the uninitiated user from zero knowledge
about object-oriented programming through class definitions, inheritance,
subtyping, and 
% finally the most powerful level of data abstraction, 
the
parameterization of classes.  This set of graded objectives provides both a
useful metric for gauging a student's progress, and a facility through 
which users can begin their studies at a level commensurate with their 
experience.  
%In addition to the set of objectives we provide a programming
%language independent meta-tool called \demsign\ which is capable of 
%performing many of the lower-level objectives automatically.
\end{abstract}

\smallskip
\noindent
{\bf Keywords:} Teaching object-oriented design, 
teaching object-oriented programming, behavioral objectives, C++, Flavors.

