With respect to the content of Freshman courses: I teach CPS 151 (CS 2), the second-term Freshman course, at the University of Dayton. Until a couple of years ago, the language used was Ada. They switched to C++ because of parent (paying) pressure. [The fact that I deplore this trend toward teaching what's popular is for another forum.] The major content of CS 2 is abstract data types (ADTs). I don't see how one could do justice to ADTs without generics. (Years ago, teaching this course in Pascal, it was difficult to produce what I call second-level ADTs: e.g., container types in which the contained type is unspecified by the original programmer.) That is, there is an urgent need for generics in CS 2. In Ada, I taught (and, believe me, the students used) generics. In C++, I teach (and the students use) templates for the same purpose (even though templates don't provide some of the functionality that's really needed). Moreover, at this time, I don't see how one could justify not working with inheritance and run-time dispatching. Generics, objects, classes, inheritance, and run-time dispatching are fundamental tools for building complex data structures. They should be provided at the Freshman level so the later courses (especially Data Structures) can exploit them. Are these topics too advanced for Freshmen? Not in my experience. Can we give complete treatments of these topics at this level? Of course not. (Does anyone believe that the Freshman Calculus sequence provides a complete treatment of the mathematics of differentiable and integrable functions?) We're introducing the development and use of basic tools. Please excuse the lecture tone. I've been teaching at one level or another since 1959 (I was 17, if you must know) and have a habit of lecturing. Phil Philip W. Brashear EDS Conformance Testing Center 4646 Needmore Road, Bin 46 P.O. Box 24593 Dayton, OH 45424-0593 (937) 237-4510 [log in to unmask] http://www.eds-conform.com