Provide the material needed for three complete computer science courses: what are typically called CS 1, CS 2, and a data structures course, all using C++ as the programming language.
Guy Steele's keynote at the 1998 ACM OOPSLA conference on "Growing a Language" (mostly about JAVA) discusses the importance of and issues associated with designing a programming language that can be grown by its users.