Information Technology Reference
In-Depth Information
& Perkins, 1996). It therefore needed to be small and portable. While the language has grown
in size with each new release, the Java virtual machine (JVM) continues to ensure implemen-
tation-independent code that can be run under a variety of operating systems. Coupling this
capability with the ability to run Java applets from Web pages was what first attracted interest
in the language when it was initially released in 1995. Since that time, Java has developed into
a general-purpose language used throughout enterprise-wide distributed applications with
multitiered architectures.
While Java has gained acceptance and widespread use in industry, it has also made
inroads into academia. It is now taught extensively in intermediate programming courses, but
its inclusion in introductory courses has been more problematic due to inherent difficulties
in the language. Biddle & Tempero (1997) described the benefits and problems with teaching
Java as the first programming course. Among the promises of Java is that it is a simple
language to learn, but in fact, this claim cannot be strongly supported. Unlike C/C++, it does
not support multiple inheritance, but it allows classes to extend multiple interfaces. This is
a similar concept to multiple inheritance and is difficult for beginning programmers to
understand. It is true that Java does not permit pointer arithmetic and hides pointers from the
user, but beginning programmers must understand the concept of references in order to work
with objects and arrays. Thus, novices are presented with implicit pointers early on. While
C/C++ programmers must understand memory management (or suffer the consequences),
Java provides automatic memory management in the form of a garbage collector. In this
respect, Java truly is simpler than C/C++. Other difficulties with using Java include the fact
that a large number of methods in the class library throw exceptions that must be caught or
passed to a caller, library documentation is often ambiguous, and the encapsulation model
is actually more complicated than that of C++. In conclusion, they find that Java is only
marginally better than C++ as a language for teaching beginning programmers, but that its
popularity, availability, and standard libraries help tilt the balance in its favor.
Given that Java is not really so simple after all, some, such as Mehic & Hasan (2001),
chose not to teach this language at the introductory level. An alternative approach aimed at
reducing difficulties associated with teaching Java as a first language is to limit student
exposure to some of the language's complexities. The “Introduction to Programming” course
at Georgia Institute of Technology was taught using Java for the first time in the fall of 1996
(Hong, 1998). Previously, this had been a procedural programming course that used Pascal.
Hong pointed out the importance of teaching programming with Java, as opposed to teaching
programming in Java. This is a significant distinction, because it is more important for
students to learn the fundamentals of programming, which remain constant, than the ins and
outs of a particular language. Hong also identified several problems encountered with
teaching programming using Java. One of the most difficult of these is the Java syntax, which
makes it possible to combine several complex concepts into one deceptively simple state-
ment. Students were shielded from some of this complexity by starting with skeleton programs
in which they filled in the code, using driver programs for the first few assignments so that
they could focus on the basic syntax without handling input, and using input routines that
caught errors for them. Because Java's Abstract Windowing Toolkit (AWT), which contains
classes for creating user interfaces, is difficult to use and Java-specific (as opposed to
exposing students to general programming concepts), its use was held off until the end of
the quarter. The greatest problem was not with Java itself, or even limited to object-oriented
programming, but with teaching students to design good programs. This was tackled by
Search WWH ::




Custom Search