Educators embrace Java

High marks in college signal long-term, real-world success of new programming language

Early in the life of Sun Microsystems the firm realized that if it was to pioneer a new computing paradigm, or more simply, just win converts to a new type of computer, colleges and universities were important. Gaining a foothold in academia would provide Sun an opportunity to infiltrate the corporate world incrementally each year via recent graduates.

Academia was crucial to the success of Sun Microsystems specifically. It also was the vehicle that propelled the Unix operating system, C language programming, and object-oriented paradigms. Tapping the higher education arena is not only important for cultivating corporate adherents as graduates rise through the ranks, it is also a fundamental resource for delivering engineers skilled in the latest toolsets.

Going mainstream

The skyrocketing success of the Net, the Web, and now Java gives higher education a two-tier role to play. In the short-term, corporate demand for Java-literate programmers must be fed. In the long-term, the role of Java as a respectable mainstream programming language must be nurtured so that it neither fades as a passing fad nor gets relegated to a niche language good only for animating Web pages.

It appears Sun Microsystems is making excellent progress on both fronts.

"I haven't found a school or university that says they are not interested in Java," said Graham Lovell, software programs manager for Sun's Academic and Research Computing business unit. Those not ready to begin teaching or using Java generally explain that they cannot change directions too quickly, he said.

The State University of New York (SUNY) at Oswego began using Java to teach computer science (CS) majors introductory programming in September 1995.

"This was all pre-Java-as-a-cultural-phenomenon days, so we didn't think about it as something glamorous, just as a better way to introduce computer programming and engineering and science," said Doug Lea, of SUNY's CS department and the New York CASE Center's Software Engineering Lab at Syracuse University.

Lea had been working with Java in collaboration with a Sun Labs research project. He suggested using Java when the department was in general agreement that they ought to try something different. The person teaching introductory programming decided to use Java as an experiment, and in January 1996 the department selected Java for its second programming course. Java is now used in a variety of other courses, and Lea reports that some juniors and seniors are using Java for their advanced projects.

Lea has now fielded so many inquiries regarding Java in higher education that he posted his own Q&A Web page to make the information available.

Better than C++

According to David Dobkin of Princeton's computer science department, the core question was, "In which language can we best illustrate for students the fundamental ideas of computer science?"

There was general consensus that C++ was more difficult than C on pedagogical issues, so CS departments reluctantly passed on the benefits of the object model and philosophy.

"Java seems to correct some of these flaws, and we are now coming to believe that Java can be made to work as a first programming language," said Dobkin.

Roger Whitney, a professor in San Diego State University's Mathematical Science Department, already has seen the benefits of using Java in his client-server computing course. He taught the course using C/C++ and then taught it again using Java. The pedagogical results were striking.

"Java is a higher-level language," Whitney said. "In particular there are no pointers, only references, and Java has a standard library that students have on all platforms. The higher-level language makes it possible to cover more material and have a realistic hope that students understand. With C/C++ they had a very hard time getting beyond pointers."

With Java, Whitney was much more successful in getting students to write good code, while C/C++ required him to spend half of the semester "beating on students to make the code modular." Whitney also hopes Java's GUI classes will increase his success in getting students to build applications with GUI interfaces. GUI interfaces are not required in the course.

Whitney notes that with C/C++ he never succeeded in getting students to do the extra work.

"I can't think of any good pedagogical reason not to [use Java]," said SUNY's Lea. Among its obvious advantages:

  • Java is small, object-oriented, and easier to learn than most other plausible introductory programming languages.
  • Most students find it enjoyable, sometimes even fun.
  • Students believe that learning Java is a valuable real-world skill in itself, and they are probably right.
  • Because it is easy to learn the basics, instructors can introduce more about programming, design, and problem-solving than they could using languages like C++.
  • With Java it is easier for students to become familiar with some of the conventions of languages in the syntactic tradition of C (C++, Objective C, CORBA-IDL, etc.).

The University of Wisconsin's graduate CS course, Introduction to Operating Systems, recognizes that most students are familiar with C++ but not Java, said Professor Marvin Solomon. Even so, he chose to use Java for three main reasons -- Java is a more congenial programming environment, Java-literate programmers are quite marketable, and Java has built in some operating-systems features.

Runtime errors such as bad subscripts, null pointers, and uninitialized variables cause exceptions that are caught by the language at runtime rather than mysterious crashes or random behavior. Java Strings are much easier to use than char * arrays. Garbage-collected storage management is extremely handy, and many more features make it a developer-friendly language, Solomon contends.

Specific to his operating-system course, Solomon said Java is the first widely used programming language with language-level support for concurrency (threads) and synchronization (monitors), which he considers a big advantage.

The bottom line for San Diego State's Whitney is that Java clearly empowers him to better prepare students for the real world.

"I see students getting the same experience over and over again with C/C++. With Java I can cover material, ideas, and concepts that would not be possible with C/C++ -- at least I have not been able to do so successfully (and no one here has done so either). So students will have a broader range of experience, which in the long run is much better for the students," Whitney said.

Java not only changes the vehicle or language for teaching concepts but also drives changes in the concepts themselves, said Lea of SUNY. Concepts like distributed computing, component-based design, and theoretical issues in concurrency, distribution, and reactive design used to be reserved for advance courses but now need to be introduced in the first few computing courses, he said.

"I don't think anyone has a very clear idea of where this is heading, but the next generation of software engineers coming out is sure to be a lot different than the last," said Lea.

Programming education

The growing adoption of Java in the education market is not mere coincidence. Sun is investing considerable marketing energy to cultivate the trend. Sun wants schools to teach Java as a first programming language, and to push Java in short courses and continuing education. Moreover, Sun wants to boost Java's stature as a mainstream, general-purpose programming language.

Sun sponsored three universities to produce computer science courseware and is making the courseware available on its Web free of charge. At the moment they are available for download from Sun's Java CourseWare Web page (http://www.sun.com/edu/java).

The three available short courses include:

  • Abstract Data Types and Programming Methodology, by Dr. Rameen Mohammadi, which teaches about program validation and verification, and analysis of algorithms as a significant part of software design.

  • Object-Oriented Analysis and Design, by Dr. Eric J Bryne, which explores OO requirements analysis, using Java to demonstrate concepts.

  • Syntax, Semantics and OO Databases, Java as a Subject Language for Teaching Formal Syntax, Semantics and Compiling Techniques, and Java as an OODB Programming Language, by Barrett R. Bryant and Viswanathan Vaidyanathan.

Sun is now developing additional courseware with a book publisher, which it prefers not to name at this time. The publisher will in turn contract with colleges and universities to develop content designed for traditional academic time frames -- semesters and quarters, says Sun's Lovell.

Related to that effort, Sun also is developing a two-tier courseware and certification approach for continuing education. The first will focus on Java in a Web and browser context for those without prior programming experience, and the second with focus on Java as a programming language for people familiar with basic programming constructs.

Lovell said Sun is not assuming any specific experience with a particular language -- so it is not a bridge from, say, C++ to Java in particular.

Two certifications are now in place. The first level concentrates on basic programmer competence -- do you know the language, do you know how it is put together, can you use it -- and the second level is devoted to application development, which tests programmers' ability to use Java to meet a specification for a distributed application, so that is a much deeper level.

Java certification will be particularly meaningful for those who go through short courses and seminars. It will provide academic institutions and employers a means of judging whether or not a given individual has master necessary concepts and skills.

Another relevant resource is the avalanche of Java books hitting the market. According to Sun's Lovell, about 150 books already are in print, with many more in the pipeline. That exceeds the number of books on C++, which is just one more indicator that Java is winning over a significant number of programmers, Lovell claimed.

Outside the ivory tower

If the early adopters of Java in higher education are correct, the language's impact will be felt far beyond the college campus, and far beyond the Web. Many of the language's features that make it a good pedagogical tool also make it a quality development environment for "real-world" work.

"I think Java is here to stay, and will be used by people in many ways," said San Diego State's Whitney. "I already see some local people moving away from Perl to Java for scripting. Several local programmers with extensive C/C++ programming experience are using Java and comment on how much easier it is."

Corporate demand for Java developers now outstrips the supply. This fact was perhaps best illustrated by the recent announcement from Footprint Software that it is offering 15 hours of Java training to top students and a chance to win a free computer and a job with a ,000 signing bonus.

Continuing with his thought that Java not only dramatically changes the vehicle for teaching, but also changes the way we will think about computing concepts, SUNY's Lea said Java prepares students both to work in the "real world" and to invent it anew.

"I take seriously the notion that my students are the people who will continue in our increasingly central role in inventing, designing, and implementing the systems that allow society to function. The 20th/21st century analogs of the engineers who created ships, railway systems, and telephone systems," said Lea.

"Java is perfectly positioned to become a widely used, all-purpose development language. However, since the language is only a few years old, it is difficult to project far into the future," said Princeton's Dobkin.

While Java is "amazingly good for such a young language," all new programming languages are born with a few warts, noted Wisconsin's Solomon. None of the most popular languages today look very much like they did when they first shipped. They improved over time.

On Solomon's wish list for improvements are greater efficiency and enhanced capabilities to support large projects. He noted that features such as exceptions and namespaces that evolved into C++ resided in Java from the start, which he views as a good sign, and he assumed that features like inline declarations and parameterized types will be added over time, if needed.

"It now appears clear that Java has reached critical mass," said Solomon. "I think it is very unlikely that five years from now people will have forgotten Java or will think of it as an interesting fad from the past, like poodle skirts, hula hoops, or pet rocks."

For more details about what various schools are doing with Java, see our List of schools using Java, which contains hypertext references to course information, syllabi, and in some cases course notes and examples.

Barry D. Bowen is a computer industry analyst and writer with the Bowen Group Inc. He has closely tracked Sun Microsystems, the rise of distributed computing, and the Internet for eight years.
1 2 Page 1
Page 1 of 2