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:
The course grade will be determined by three homework assignments and two in-class quizzes.
There is no midtern or final exam. Click here
for detailed discussion of homework grading policies.
Getting Help: The TA will hold weekly group sessions to go over homework-related topics in more depth. He will also be available by appointment. When possible, all technical questions should be discussed over the course listhost: cspp51037@cs.uchicago.edu
Required text: Core Java 2, Volume II: Advanced Features (7th or 8th Edition) by Gary Cornell, Cay S. Horstmann
Recommended Texts:
Required Software
Important Links:
Week 1 (June 17): Java Network Programming: (CJ-II Ch. 3) notes (.ppt)
Week 2: Java Remote Method Invocation: (CJ-II Ch. 10) notes (.ppt)
Week 3: Java multithreading Part I: (CJ-I Ch. 14) notes (.ppt)
Week 4: Java multithreading Part II : (CJ-I Ch. 14) notes (.ppt)
Week 5:
Week 6: Week 7:Server-side models: Servlets, JSP, (JDBC): notes (.ppt)
Week 8: Java & XML, DOM and SAX Parsers, POX, SOAP: (CJ-II Ch. 2) notes (.ppt) notes (.ppt)
Week 9:Open
-Homework 1 assigned
-Homework 1 due
-Homework 2 assigned
Java multithreading wrap-up
-Quiz 1 (1 hour)
- Java Native Interface: (CJ-II Ch. 14)
Advanced language constructs: Designing generic classes (CJ-I Ch. 12), Annotations (CJ-II Ch. 11), Inner classes (CJ-I Ch. 6)
-Homework 2 due
-Homework 3 assigned
-Quiz 2 (30 min)