CS193k Advanced Java

Welcome to the home page for CS193k -- Advanced Java Applications. I'm adding new material at the top, and leaving the old material below so you can get a preview.

Now our web page is over here.

The basic plan with 193k is to explore and build projects in a few advanced areas of Java. The likely topics are: GUIs with Swing MVC, heavy threading, and RMI. We just might be able to fit in a fourth topic, in which case I would probably go for either optimization, understanding the class file format, or maybe JDBC.

Not surprisingly, there is no single book that covers all those things in depth. For that reason and because the online resources are so good, there is no required text for 193k. If you want a book, the one that provides the most complete background on our topics is Mastering Java by John Zukowski. It's a $50 1244 page tome.


The material here is for last year's 98-99 version of the course. This year will be mostly similar but a bit different. Check out the syllabus (Handout #1) in the handouts directory for course information. I'll be updating this site for the Spring 99-00 version of the class a couple weeks before it starts. In the meantime, look at last year's materials to get a sense of the course.

Course materials...

My favorite online Java resources...

Course Summary

The basic idea with CS193k is to pick a few applied areas of Java technology and explore them in moderate depth. This is not a basic Java course, and we won't really spend time reviewing Java or OOP basics (see Prerequisites below). For each topic area, we will cover how to use it, what it's good for, related implementation and language issues, and then we'll have a non-trivial assignment. My plan for the topics has firmed up to...

Peparation and Prerequisites

To prepare for the course, bone up on your basic Java. Look at the Java tutorial tracks below. Any Java book would be fine review. Our text is Mastering Java 1.2 (recommended but not required).

Course Facts

Running Java 1.2 At Stanford

For the Swing homework, there are two ways to go. (1) If you code against a 1.2 VM, Swing is built in. (2) Everything will work on a 1.1 VM, but you need to have swingall.jar in your $CLASSPATH. Swingall.jar may be downloaded from sun.

FAQ

That's what I have figured out so far, pleae feel free to email me at nick.parlante@cs.stanford.edu with any questions. Also, check out the progress at the CS Education Library project. My teaching CS193k will probably result in more Java stuff at the library to balance out the current C emphasis.