Advanced Java Programming
Winter 2006

Course number: CSPP51037
Location: Reyerson 251
Time: Monday 5:30-8:30

Professor: Andrew Siegel

Office Hours: Mon 3:30-5:30
Office: Ry175B
Email:asiegel@cs.uchicago.edu

TA/Grader: Chunyan Song
Office Hours: Wed 4-6, Thu 6-8
Office Location: Hinds 030
Email: cysong@cs.uchicago.edu

Course Description: This is an advanced course designed for students with a good foundation in Java programming. Basic familiarity with C is also assumed. The course focuses on designing distributed, multithreaded applications with the Java platform. It is an application programming course. Emphasis is placed on applying technology rather than studying API design and implementation. Topics proceed (roughly) from "low-level" to high level network programming concepts: socket byte streams, object serialization, Remote Method Invocation, Java/CORBA (minimal), Web Services, and (briefly) Enterprise Java Beans. While any of these topics alone could form the basis for an entire course, the emphasis is on providing students with an adequate foundation for pursuing individual topics in greater depth. Along the same lines, a major focus of the course is to help students determine when to best apply a given Java technology in a real world, multi-tier application.

Course Format: Instructor lecture with significant student participation. Please come prepared.

Grading: There will be 3 assignments -- together accounting for 75% of the grade. Periodic in-class quizzes will account for the other 25%. There is no final exam. Click here for detailed discussion of homework grading policies.

Getting Help: The TA and professor will announce office hours during the first class. When possible, all technical questions should be discussed over the course listhost: cspp51037@cs.uchicago.edu

Required text:


Recommended Texts:


Required Software

Important Links:


Lectures:


Week 1 Jan 9: Java Socket Programming



Week 2 Jan 16: MLK HOLIDAY, NO CLASS


Week 3 Jan 23: Java RMI


Week 4 Jan 30: RMI example; Intro to JDBC


Week 5 Feb 6: JDBC, Image Processing, Intro to Servlets


Week 6 Feb 13: Servlets, cont + JSP


Week 7 Feb 20: Java and XML


Week 8 Feb 27: XML Parsing, XSL


Week 9 Mar 6: JAXB


Week 10 Mar 13: Development tools