Description
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.
Instructor
Dr. Michael Sobolewski
Room: CP-310
Email: sobol@cs.ttu.edu
Office hours: Friday1:00 p.m. to 4:00 p.m. or by appointment
Textbook
[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.
References
[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,
http://java.sun.com/docs/books/tutorial/networking/index.html
[6] Java Network Programming FAQ,
http://www.davidreilly.com/java/java_network_programming/
Miscellaneous
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:
http://www.cs.ttu.edu/~cs5331/np/
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:
Preliminaries
Introduction to networking
The Java security model
An overview of exceptions
An overview of multithreading
An overview of JDBC
Streams
An introduction to streams
File streams
Filter streams
Memory I/O streams
Character streams
Object streams
Networking
Client-side networking
Server-side networking
HTTP networking
Datagram networking
Multicast networking
Alternative Technologies
RMI
RMI activation
CORBA
Servlets
Message Streams
Message streams
Queuing message streams
Multiplexing message streams
Routing message streams
Grading
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
cs5331@cs.ttu.edu.
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.
|