JTF > Rationale > Principles

Chapter 2
Principles and Methodology

The ACM Java Task Force has held five face-to-face meetings since its inception:

  1. January 2004 (Washington, DC)
  2. May 2004 (Pittsburgh, PA)
  3. September 2004 (Palo Alto, CA)
  4. December 2004 (Cambridge, MA)
  5. June 2005 (Chicago, IL)

These meetings were supported by grants from the National Science Foundation, the ACM Education Board, and the SIGCSE Special Projects Fund. As is typical of this style of committee, however, much of the work of the Task Force took place between the meetings, which were used primarily to allow for the high-bandwidth, focused discussion that is difficult to achieve in online forums. In particular, these meetings allowed the members of the Task Force to reach consensus on several basic principles of operation.

2.1 Principles adopted by the Task Force

At our first two meetings of 2004, the Task Force was able to reach consensus on the following general principles:
  1. Design for an object-oriented approach. In our work, the Java Task Force has been guided by the prospect of an “objects-first” approach to the introductory curriculum, as defined by in the joint ACM/IEEE-CS Computing Curricula 2001 report [ACM01]. The tools and packages that we have designed therefore emphasize object-oriented design and adopt an object-oriented usage paradigm. At the same time, we have made every effort to ensure that our library packages and tools are usable with other pedagogical approaches.

  2. Adopt a minimalist strategy. To avoid the proliferation of complex tools that do little to address the scale problems of Java, the Task Force has sought to minimize both the number and conceptual complexity of our packages. There are, for example, only four packages in the ACM collection. These packages, moreover, are specifically chosen to address the high-level problems outlined in Chapter 3. Although the temptation was often strong to provide additional functionality beyond what we needed to solve the reported problems, we chose to limit our concern to those areas that currently constitute stumbling blocks to the effective use of Java.

  3. Promote flexibility for adopters. Introductory courses in computer science vary widely in philosophy, topic coverage, and approach. For those of us on the Java Task Force, such diversity is a very good thing. We are not interested in defining any sort of rigid standard, but are instead seeking to empower teachers and students by providing tools to extend their reach. To some extent, our design philosophy is aligned with the maxim formulated by the designers of the X Windows System, who sought to provide “mechanism, not policy.” The packages in the ACM collection are intentionally general enough to support a wide variety of programming styles.

  4. Maintain conformance with the Java standard. Throughout our design, the Task Force sought to use the standard Application Programmer Interfaces (APIs) provided by Sun Microsystems. The only occasions in which we have proposed alternative APIs are those for which there was clear evidence that the existing facilities were not working well at the introductory level. We have also made the ACM packages separable to make sure that no one is required to adopt parts of the nonstandard packages that they regard as unnecessary. For each of the domains covered by the ACM packages—simplified input/output operations, object-based graphics, and the common applet/application framework—there is always an alternative approach that remains within the official Java standard.

  5. Retain compatibility with earlier releases of Java. In order to be forward-looking and to ensure that our resources remain current for as long as possible, our baseline version of Java will be Standard Edition 5.0 of the Java 2 Platform (J2SE 5.0), which was released under the code name “Tiger” in September 2004 [Sun04]. We recognize, however, that many institutions will not be in a position to adopt Java 5.0 by the time at which our materials are released, and possibly not for some time to come. Moreover, many browsers—and particularly those installed at commercial Internet-access outlets like Kinko’s and EasyInternetCafe which still operate in the JDK 1.1 world—run considerably older versions of the Java environment. To ensure that applications and applets built with our tools run on as many platforms as possible, we have made available a version of the acm.jar library that allows programs compiled using it to run with any version of the Java Development Kit from 1.1 on, assuming that they use only the classes identified as part of the JTF subset in Chapter 9.

  6. Support multiple environments. The Task Force has not designed its packages with any particular programming environment in mind but has instead sought to ensure that our packages work in all major development environments.

2.2 Methodology for soliciting feedback

The Java Task Force sought community feedback at several points during the course of the project. The formation of the Task Force was announced officially at SIGCSE 2004, when we issued a call for input from the community on the nature of the problems that arise in teaching Java at the introductory level and on any successful strategies developed to address those problems. We used this feedback to guide the development of the Java Task Force packages, which we then described in the initial draft of this rationale document in February 2005. We then solicited feedback on the initial design in the form of a web-based discussion board announced at SIGCSE 2005. The subsections that follow describe the feedback we received in each of these phases of the project.

Soliciting reports of problems and proposed solutions

The Java Task Force adopted two strategies for identifying the problems that arise in teaching Java at the introductory level and for determining what solution strategies had been attempted:

  1. From January to March, we conducted an extensive review of the computer science education literature to see what problems had been reported. The results of that review are presented in Chapter 3 along with an analysis of how those problems interrelate.

  2. After publishing a draft of the problem taxonomy that came out of the literature review, we solicited input from the community as to what problems they had encountered in teaching Java and what solutions they had found. That call was issued as part of the Task Force presentation at SIGCSE 2004 and then followed up by the posting to SIGCSE-MEMBERS shown in Figure 2-1.

Interestingly, those who responded to the Task Force’s call for input did not identify any major problems beyond the ones already uncovered in the literature review. Instead, the 33 submissions we received focused on solution strategies. The most common themes for these submissions were graphics, the creation of graphical user interfaces (GUIs), and simple I/O. Although the Task Force did not adopt any of these solution strategies in the precise form given in the submission, the submissions we received provided extremely useful models that guided the Task Force toward the development of an integrated set of packages that could address these problems in a consistent way. Those packages are described in Chapters 4 through 8.

Figure 2-1. Java Task Force call for proposals
From: Eric Roberts <eroberts@cs.stanford.edu>
Subject: ACM Java Task Force announcement
Date: Wed, 17 Mar 2004 11:43:10 -0800

The growth in popularity of the object-oriented paradigm and the
decision by the College Board to move the Advanced Placement Computer
Science program to Java have led an increasing number of universities,
colleges, and high schools to adopt Java as the programming language for
their introductory computer science course. At the same time, many of
those institutions report finding Java difficult to teach, partly
because of its significant detail complexity and its tendency to evolve
rapidly over time.

To help address these concerns, the ACM Education Board has recently
appointed a new task force with the following charter:

      To review the Java language, APIs, and tools from the
      perspective of introductory computing education and to
      develop a stable collection of pedagogical resources that
      will make it easier to teach Java to first-year computing
      students without having those students overwhelmed by its

The formation of the ACM Java Task Force was officially announced at the
recent SIGCSE symposium in Norfolk, Virginia.  The background materials
and symposium presentations are available on the task force web site at


The Java Task Force held its initial meeting on January 31st in
Washington D.C. and identified a set of challenges that arise in
teaching Java based on a review of the literature and our experiences.
These challenges are summarized in a draft report entitled "Taxonomy of
Problems in Teaching Java," which is available on the web site.

At this point in the process, we are seeking contributions from the
computing education community in the following two categories:

  1. A description of any additional challenges you have beyond
     those identified in our taxonomy.

  2. A description of any solutions you have developed in response
     to these challenges.

We have established a process for submitting materials to the Task Force.
Please refer to the submission requirements page at


To give the community more time to respond, we have extended the submission
deadline until Friday, April 30, 2004.

                         -- The ACM Java Task Force
                            Eric Roberts (chair), Stanford University
                            Kim Bruce, Williams College
                            James Cross, Auburn University
                            Scott Grissom, Grand Valley State University
                            Karl Klee, Alfred State College
                            Susan Rodger, Duke University
                            Fran Trees, Drew University
                            Ian Utting, University of Kent
                            Frank Yellin, Sun Microsystems

Soliciting feedback on the first release

The Java Task Force posted the first version of this rationale document and the associated library packages on February 1, 2005. After a couple of days to make sure that we had the feedback site ready to go, we sent a message to the SIGCSE-MEMBERS list announcing the availability of the new draft on February 3. That release message appears in Figure 2-2. The web forum opened the following day.

Discussion on the web forum was never particularly intense, although we received a modest but steady stream of feedback, with a total of 62 messages posted to the forum. The forum was organized by topic, and it is interesting to consider which topics attracted the most attention. The statistics for the responses posted on the forum appear in Figure 2-3, which shows both the number of separate topic threads and the total number of postings. The following topic areas received ten or more postings:

Several of the topic areas on the web forum received no posts at all. It is unclear whether the lack of response in these areas indicated that the ideas were uncontroversial or merely uninteresting. The Task Force did take some satisfaction in the fact that there were no postings for the topic “Installing the Libraries,” which suggests that readers of the forum were able to download the packages without too much difficulty.

The members of the Java Task Force presented the highlights of the Task Force report at the SIGCSE 2005 symposium on February 24. The response was overwhelmingly positive and provided considerable encouragement that we were on the right track. The changes that were necessary after the first release, unfortunately, took considerably longer than the Task Force had initially hoped. The original schedule, however, was unduly aggressive and did not include sufficient time to refine the design after the feedback phase.

Figure 2-2. Announcement of initial release and request for feedback
From: Eric Roberts <eroberts@cs.stanford.edu>
Subject: ACM Java Task Force draft release
Date: Thu, 3 Feb 2005 12:48:46 -0800
Dear SIGCSE members and colleagues,

At the SIGCSE Symposium in Norfolk in 2004, the ACM Education Board
announced the formation of the ACM Java Task Force and assigned it
the following charge:

      To review the Java language, APIs, and tools from the
      perspective of introductory computing education and to
      develop a stable collection of pedagogical resources that
      will make it easier to teach Java to first-year computing
      students without having those students overwhelmed by its

The Task Force issued a request last spring to the SIGCSE community
seeking feedback on the problems people have encountered in teaching
Java and the solutions they have developed in response.  We spent the
remainder of the year (and the first month of this one) reviewing
those suggestions and using them to guide the design of a small set
of packages intended to simplify the use of Java in introductory
courses.  Although the Task Force will not complete its work until
the summer, we are ready to solicit more extensive community feedback
and have released our first public draft, which is available on the
web at


The web site includes both source and compiled versions of the proposed
new packages, a gallery of demo programs, documentation trees offering
both a complete description of the package and an abridged student view,
and an extensive rationale document outlining the reasons for our design

We hope that you will look over the materials available on that site and
give us feedback.  There will be a report and feedback session at SIGCSE
2005 in St. Louis, which is scheduled for 10:30am on Thursday, February

In the next few days, we will complete the installation of a new
threaded discussion group for the Task Force recommendations.  That
discussion group will be available at the following web site:


We will send a second announcement to the SIGCSE lists when that site is
enabled.  In the meantime, you can send mail to the Java Task Force at
the following address:


We plan to collect feedback through March 31 and then use that feedback
to guide further development of the materials prior to the final release
in June.

We look forward to your comments.

                                      -- Eric Roberts
                                         for the ACM Java Task Force

Figure 2-3. Response rate for each topic on the feedback site
Java Task Force
General Info about Forum READ FIRST BEFORE POSTING
Information about creating accounts and posting messages.
READ THIS FIRST before posting messages.
General info about Task Force
This forum describes general information about the Java Task Force
Chapter 1—Introduction
Comment on Chapter 1 of the JTF Document
Chapter 2—Principles and Methodology
Comment on Chapter 2 of the JTF Document
Chapter 3—Taxomomy of Problems in Teaching Java
Comment on Chapter 3 of the JTF Document
Chapter 4—Simplified Input and Output
Comment on Chapter 4 of the JTF Document
Chapter 5—Object-Oriented Graphics
Comment on Chapter 5 of the JTF Document
Chapter 6—The Program Hierarchy
Comment on Chapter 6 of the JTF Document
Chapter 7—Utilities
Comment on Chapter 7 of the JTF Document
Chapter 8—Subsetting the Java API
Comment on Chapter 8 of the JTF Document
JTF Installing the Libraries
Ask questions here if you are having problems installing the acm libraries.
JTF Demo Programs
Comment on Demo Programs
Other Topics
Post here if your posting does not fit into any other category

Final Report—July 31, 2006