One of the first colleges to teach Java was the State University of New York (SUNY) at Oswego, where Java was used in the introductory programming course during the fall of 1995. The experiences of the Oswego instructors--summarized on a Web page [8]--were positive, an encouraging sign given the primitive state of Java tools and the paucity of textbooks. In particular, they report less attrition in the course than when C++ was the introductory language.
Other feedback from faculty who have taught Java appears in a recent JavaWorld article [2]. According to David Dobkin of Princeton, ``Java seems to correct some of [the] flaws [of C++], and we are now coming to believe that Java can be made to work as a first programming language.'' Roger Whitney of San Diego State says that, teaching Java instead of C++, he has been more successful in getting students to write modular code. Whitney also notes that Java enables him to cover ``material, ideas, and concepts that would not be possible with C/C++.'' To Doug Lea of SUNY, that aspect of Java is crucial. ``Concepts such as distributed computing, component-based design, and theoretical issues in concurrency, distribution, and reactive design used to be reserved for advance [sic] courses but now need to be introduced in the first few computing courses.''
Georgia State's Department of Mathematics and Computer Science has not yet tried Java as an introductory language, although it's being used in other courses. As a result of a recent curriculum redesign, we will soon switch to a breadth-first introductory course (with no programming in a ``real'' language), followed by a Java programming course. We plan to move students to C++ in the second programming course, so that we can discuss pointers and other issues that don't arise in Java. A later course will give students experience with C in the context of UNIX system-level programming.
© 1997 ACM