Syllabus Spring 2000

Sivaram Burra, 214 Smith Hall, email: burra@cis.udel.edu
Office Hours -- 10-12Noon, Mondays
All TA office hours will be held in 404 Wolf Hall, Ph:
831-2770
Java is a hugh software system consisting of the Java language, the Java Virtual Machine (JVM), and the Java Class libraries or APIs. The latter are very extensive and powerful. Consequently, no one book will cover all that one desires to learn about this magnificient software. Thus it is really necessary to have a Java Library instead of a Java textbook (my personal Java library consists of several dozen books). I suggest that you start with the following three books.
There are several versions of the above texts. Make sure that you have the ones for Java 2.0 or Java 1.2. Here is a web page for these books. (There are now three major versions of Java, namely 1.0, 1.1, and 1.2. After the initial release of version 1.2, SUN decided to rename it version 2.0. Thus Java 1.2 and Java 2.0 are the same versions.)
These will be our two primary textbooks.
This book will be used as a reference. It helps one navigate around in the huge Java class libraries. It is often very difficult to find the information that you need when using the Java class libraries without such a reference. Throughout we will use Java in a Nutshell as a handy reference. Unfortunately, this book has changed drastically from the 2nd to the 3rd edition due to the hugh increase in the size of the Java APIs from Java 1.1 to Java 2. It is no longer as useful by itself as the 2nd edition was.
You will also need (in fact, buy this one first) Java Foundation Classes in a Nutshell, A Desktop Quick Reference , 1st Edition, O'Reilly (Sept 1999) ISBN 1-56592-488-6.
I hate to say it, but you will also need David Flanagan, Jim Farley, William Crawford, & Kris Magnusson, Java Enterprise in a Nutshell, A Desktop Quick Reference , 1st Edition, O'Reilly (Sept 1999) ISBN 1-56592-483-5. The links above are to the O'Reilly pages, but you may be able to buy these books a bit cheaper from other places like amazon.com .
To begin to use Java effectively, it is necessary to learn the Java language (syntax and semantics) and how to make use of the extensive Java class library packages. Most of the details of the Java Virtual Machine can be ignored in a first Java course, but they add much to the full understanding of the overall Java system.
Fortunately (for C/C++ programmers), the syntax and semantics of Java borrows heavily from C++, but are much simpler than those of C++ (hurrah!). So those parts of Java that are quite similar to C and C++, we will cover rapidly with an emphasis on the differences between Java and C++.
We will learn by doing and many of the programs that we write will be for applets that can be displayed on the World Wide Web. Thus, we will learn enough about the WWW and HTML to enable display of the applets.
This will be a seminar-like course. Participants will be expected to be well motivated and to actively participate in all aspects of the course, to be prepared to actively take part in the class discussions by asking questions, answering questions, and generally making a substantive effort to further the primary objective of the course --- that is, to learn as much about this exciting new technology as possible.
By mid-semester we should be able to do some interesting things in Java. The semester will finish with a term project (instead of a final exam) that will entail a substantial design and implementation of a Java application or applet.
| Daily homeworks | 45% |
| Programming and term project | 45% |
| Class participation | 10% |
The TA, , will grade the daily homeworks. Prof. Caviness will grade the term projects. All grades will be posted online in a manner to be described later.
| Tuesday, Feb 8: | First lecture, begin exploring for possible term projects |
| Lectures 1-4: | H&C, vol I, chaps 1-4 |
| Lectures 5-6: | H&C, vol I, chap 5, Inheritance |
| Lectures 7-8: | H&C, vol I, chap 6, Interfaces and Inner Classes |
| Lectures 9-10: | H&C, vol I, chap 7, Graphics Programming & Printing |
| Lectures 11-12: | H&C, vol I, chap 8, Event Handling |
| Tuesday, March 21: | Initial term project proposals due |
| Lectures 13-14: | H&C, vol I, chap 9, User Interface Components |
| Thursday, March 23: | Initial term project proposals returned |
| Week of March 27 - March 31: | Spring Break! |
| Lectures 15-16: | H&C, vol I, chap 10, Applets |
| Lecture 17: | H&C, vol I, chap 11, Data Structures |
| Lectures 18-19: | H&C, vol I, chap 12, Exceptions and Debugging |
| Lectures 20-27: | H&C, vol II, chap 1, Input and Output |
| H&C, vol II, chap 2, Multi-threading | |
| H&C, vol II, chap 3, Networking | |
| H&C, vol II, chap 5, Remote Objects | |
| Tuesday, May 16: | Last lecture |
| Fri, May 19 - Fri, May 26: | Final Exam Week/Term Proj Presentations |
Homework assignments will normally be graded on a scale of 0-10. Homework that is n days late will be penalized 1 + 2 + ... + n points. So
| One day late | = |   penalty of 1 point |
| Two days late | = |   penalty of 3 points |
| Three days late | = |   penalty of 6 points |
| Four or more days late | = |   no credit. |
The clock ticks forward one day each day at 12:30PM, the beginning of class hour.
There will be more information provided about how term projects are to be carried out.
Corrections, suggestions and comments to caviness@cis.udel.edu
Last updated 1/18/01
Copyright
2000 B. F. Caviness