In this note, we outline some issues raised in considering the use of the programming language Java TM 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.
/lp/association-for-computing-machinery/java-as-a-first-language-an-evaluation-eF140T0NKh