7. Experiences So Far

So far, few colleges have tried using Java in an introductory course, and even fewer have reported their experiences. Sun Microsystems maintains a Web page listing academic institutions that teach Java [13]. According to this page, there are 102 colleges known to teach Java as of January 2, 1997, of which 60 are in the U.S. However, only one (Washington University) is identified as ``committed to teach Java as a first language.'' This isn't surprising, given the newness of the language and the lack of teaching materials. Most colleges are still in the experimentation phase, as instructors learn Java and evaluate its potential place in the curriculum.

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.

Next section


Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

© 1997 ACM