Tuesday 7:30--9:00 PM, Lansing 311
Although Java has caused a lot of excitement in the few years since it was introduced, the original Java GUI API (the AWT) left a lot to be desired. While it was OK for simple applets, it was inefficient and it included only a minimal set of interface elements. Many of these concerns have been addressed in the recently released Java 1.2, which has been renamed "Java Platform 2". The Swing API provides a full set of GUI interface elements. And other additions to the language have made Java a much better candidate for programming large-scale applications. In this course, we'll work with Swing and with some of the other advanced features of Java. Some of the advanced features that we might work on include: Servlets, CORBA and/or RMI, JDBC, Java2D, Java3D, networking, multithreading, and Java Beans. We will talk about these at the first class meeting.
There doesn't seem to be a really good book on Swing, although there are new ones coming out all the time. I've used JAVA Swing by Robert Eckstein, Marc Loy, and Dave Wood ($44 or $36 at amazon.com.) I also havePure JFC Swing by Satyaraj Pantham, which has the advantage of being only $20 ($16 at amazon). You could also look at more general books on Java 1.2. And, of course, there's always the on-line documentation.
There will be about four fairly short programming assignments, which will be concentrated in the first part of the course. After that, you will be responsible for designing and writing a significant individual or group program in Java. As you work on your projects, I will expect you to take responsibility for some of the lectures in the second half of the course.
This course is offered on a credit/no-credit basis. To get credit for the course, you should come to all ten class meetings (unless you have a reasonable excuse and discuss it with me), and you should do the assignments.
Note that a grade of "credit" does not affect your GPA, but it does count as a course towards graduation. It can also be counted towards a major or minor in computer science.