Syllabus for
CS-5331/3 Advanced Network Programming
Spring 2003

With the explosive growth of the Internet, Web applications, and Web services, the majority of today’s programs and applications require some form of networking. Almost every programming language provides some networking facilities. However, unlike other programming languages, Java had support for network programming built into it right from the start. Java, therefore, allows you to develop powerful network applications with exceptional ease. The first part looks at network preliminaries. Java networking streams are then covered in the following part. The third part explores classes that are provided by Java to handle a variety of networking tasks. Java API's that are used for alternative network technologies are covered in part four. In the part five message streams are explored. By the end of this course, you will have acquired a deep understanding of various network concepts and protocols and developed extensive knowledge that you can use to develop sophisticated network applications. Case studies, programming projects, and relevant papers support the course.

Dr. Michael Sobolewski
Room: CP-310
Office hours: Friday1:00 p.m. to 4:00 p.m. or by appointment

[1] Java Network Programming: A Complete Guide to Networking, Streams, and Distributed Computing, 2/e, Merlin Hughes, Michael Shoffner, Derek Hamner,ISBN: 1-884777-49-X, Manning Publications, 1999.

[1] Java Network Programming and Distributed Computing, David Reilly, Michael Reilly, ISBN:0201710374, Addison Wesley Professional, 2002.

[2] Java Network Programming, 2/e, Elliotte Rusty Harold, ISBN: 1-56592-870-9,O'Reilly & Associates, 2000.

[3] Advanced Java Networking, 2/e, Dick Steflik, Prashant Sridharan, ISBN: 0-13-084466-7, PrenticeHall PTR, 2000.

[4] Beginning Java Networking, Had Darby, John Griffin, Pascal de Haan, et al., ISBN: 1861005601, Wrox Press, 2001.

[5] The Java Tutorial: Custom Networking,

[6] Java Network Programming FAQ,

This course consists of lectures, informal quizzes, homework assignments, a project on network programming, and two exams.

The purpose of these different instruments is to have a positive learning experience, critical thinking about network programming issues, and some sound grasp of fundamentals. If you feel any of these instruments is not working for any reason, please send me email and I will consider a change in the format of delivery.

Course materials will be put up on the course homepage:

Student-teacher relationships are based on trust. Acts, which violate this trust, undermine the educational process. Your classmates and the instructor will not tolerate violations of academic integrity.

Tentative Course Outline:
   Introduction to networking
   The Java security model
   An overview of exceptions
   An overview of multithreading
   An overview of JDBC
   An introduction to streams
   File streams
   Filter streams
   Memory I/O streams
   Character streams
   Object streams
   Client-side networking
   Server-side networking
   HTTP networking
   Datagram networking
   Multicast networking
Alternative Technologies
   RMI activation
Message Streams
   Message streams
   Queuing message streams
   Multiplexing message streams
   Routing message streams

Homework 25% (five homeworks: 5 points ea)
Project 25%
Exams 50% (two exams: 25 points ea)

Course Delivery Format/Policies

Informal quizzes will be held handed out for your practice two-three weeks, just to quickly recap material. Informal quizzes will consist of true/false answers. There is no grading of informal quizzes.

Homework assignments will contain problems, short-answer questions, reading exercises and Java programming tasks. Homeworks should be handed in at the beginning of lecture on which it is due. For late submissions there will be a penalty of 10% for lateness. Late submissions will not be accepted after the day solutions are made available to the class. Please work individually on all assignments. Stop by my office if you have difficulty in understanding the assignment or the course material discussed in the class. Send you assignment to

Projects: Students should make two person teams or work individually if it is preferred. Each team must complete a project on some aspect of networking. The project should deal with issues such as client/server, network security, document management, web collaborative applications. The project will be presented and demonstrated during the last two classes. All students must be present for all the presentations/demos. The students will be graded on the project as well as the quality of the presentations/demos. The presentation should not exceed more than six viewgraphs and should reflect a clear understanding of the subject by the student. Please use your critical thinking skills to be concise and focused on both the project results as well as the presentations/demos.

Exams will be open-book/notes, but will be extremely time-constrained. Material from handouts, textbooks and reading/homeworks will be included in the scope of the exams.


prev: SOBOL Home
Sobolwski's Home
next: TTU CS Home