This will actually be two different courses, taught by the same professor in the same room at the same time. One is an introductory programming course, using Java as the example programming language; the other is for experienced programmers who want to add Java to their repertoire of programming languages. I haven't done this before, so I'm not sure how it'll work....
Java is a fairly new language. Invented in 1991, it was a commercial flop until the World Wide Web developed in 1994, and Java's inventors realized that their language's strengths made it ideal for making Web pages interactive. Since this was demonstrated in 1995, Java has become immensely popular as an adjunct to Web page design. But Java is in fact a general-purpose programming language, like Pascal, C, or C++, and its designers have learned from the problems of those three languages (so they could give us a new and different collection of problems).
Java is an object-oriented language, like C++ but more so. Object-oriented programming has been one of the catchphrases of the software industry for 5-10 years, and it is widely accepted now as a good way to organize large, complex software projects. I intend to introduce you to object-oriented (``OO'') thinking at the same time as we learn the Java language. In brief, most non-OO programs are designed and written by listing what actions need to be performed in what order, then breaking down each of these actions into a sequence of simpler actions, etc.; an OO design, by contrast, is broken down primarily by what kinds of objects the program deals with, and what services each of them can perform at the request of the others. To use an analogy from English grammar, we've shifted the emphasis from verbs to nouns. These ``kinds of objects'' (or ``classes'', in the terminology of Java and most other OO languages) have considerable structure of their own: some are specialized versions of others (e.g. a truck and a sedan are both kinds of automobiles), some contain others (e.g. all automobiles have wheels as a component), etc. Indeed, in Java every program you write is itself an object of a particular class, often a specialized version of a predefined class like Applet or Frame.
Java is based, in many ways, on C++, which is in turn based on C. Much of Java's syntax will be familiar to C and C++ programmers. But C and C++ are both notorious for how easily programmers can produce horrible, hard-to-find bugs; Java's designers analyzed the most common bugs in C and C++ and simply made them impossible in Java, without significantly reducing the expressive power of the language.
Next: Reading and Software Up: Computer Science 390 Special Previous: Computer Science 390 Special
Stephen Bloch