Java as a first language: an evaluation

In this note, we outline some issues raised in considering the use of the programming language JavaTM to support a first course in software development. The course - essentially CS 1 - is centered on the design and implementation of simple objects, and employs an iterative specify/design/implement/test strategy to introduce data design and traditional procedural concepts. We enumerate some aspects of the Java language that attracted our interest, and identify some areas of the language design that could be modified to better meet our needs in an introductory computer science course.