Trip Report

May 10-14, 2000
NSF Chautaugua Short Course
"An Introduction to Java"
Univ. of Dayton
Dayton, Ohio

Although I have owned a number of books on Java for several years and
have sipped some Java, I've never really swallowed any.  I needed
something such as this course.  The course met over three days and
covered about twice as much as I knew, i.e. it covered about half of
what's in Roger's transition course.  

OOD: My main purpose was to get familiar enough with JAVA to determine
what to incorporate into the OOD (Object-Oriented Design) course next
year, which has room since much of C++ is now covered in 117-127.  Now I
think OOD next year will cover object-oriented design using examples
from both C++ and Java. It will include aspects of inheritance in C++
which are not included in 117-127, as well as inheritance in Java.  My
current thoughts are that it will also include general design principles,
some software engineering, patterns and perhaps UML (the Universal
Modeling Language).

Another reason for attending the course was to be better prepared to help
figure out Java's role in the curriculum otherwise.  A few days
experience does not make me an expert; nevertheless, here are some of my
preliminary thoughts.

Data Structures: Data structures without pointers?  It's possible. People
do it. Think of all the bugs the students won't have and how far they'll
be able to get without all that time spent debugging.  Of course, we
could use STL (the C++ Standard Template Library) if we didn't want to
develop our own data structures. If we want students to be able to
use pointers and to build data structures, this is the course where
they should learn how, in which case we'd stick with C++.

Advanced Courses, other than OOD: Some Java might be appropriate in
several of our courses, esp. in Programming Languages, Networks, and
Operating Systems.  A user-oriented Computer Graphics course would be
easier to conduct in Java because of the extensive graphics libraries;
however, for our developer-oriented course, C/C++ is more appropriate,
where, again, we're concerned with fundamentals. Java could be used in
some other courses too, such as Numerical Analysis and Artificial
Intelligence, if the instructor so desired. 

117: Advantages of Java: It's hot! Supposedly simpler and safer. No pass
by reference, only pass by value.  An improved boolean type.  Better
protection from errors. Neat applications: e.g. windows, graphics,
applets. Disadvantages: still inherits some error-proneness from C/C++.
Steep learning curve.  Messy input.  Need to understand objects to be
able to do much.  Much time is spent browsing through libraries to find
something rather than writing your own code. No overloaded operators.
Nom templates for simple types.

Conclusion: We need more discussion on where Java fits in.

On Chautaugua courses:  This is the second Chautaugua course I've
attended.  They suit me because I'm forced to concentrate on the subject
intensely for a few days, something I just don't find the time to do on
my own or at conference-related workshops.  

Costs: No fees! Well, there's a $40 application fee plus $250 roundtrip
airfare, getting to and from airports, and room and board. Totally, about
$750, but that's a bargain compared to the $2000 or so that commercial
organizations charge for a similar course.

Personal Note: Andrew Owari, my dean (of physical sciences) in 1980-81 in
Africa, obtained his undergraduate degree in physics from the Univ. of
Dayton.  The Chautaugua program and course were run by some UD physicists
so I inquired about Owari's whereabouts. It turns out that he had
returned to Dayton as a physics faculty member and a researcher at
Wright-Patterson AFB.  We had a reunion on Saturday evening catching up
on his family, on the growth of the University of Port Harcourt, on the
location of many of the former faculty and staff, and on the changes in
the administrations at the university and in the government,  and shared
many stories of life in Nigeria and since.  It was easily worth the trip.