Syllabus for CS-5331/2/B75
P2P Computing

Course Information
CS 5331/2 /B75:
P2P Computing
Engineering Center 110
8 a.m. - 8:50 a.m., MWF

Course webpage is

There is no a formal prerequisite for this course, familiarity with Java required. My course on Advanced Network Programming is a plus.

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

[1] Java P2P Unleashed: With JXTA, Web Services, XML, Jini, JavaSpaces, and J2EE, R. Flenner, M. Abbott, T. Boubez, F. Cohen, N. Krishnan, A. Moffet, R. Ramamurti, B. Siddiqui, F. Sommer, ISBN: 0-672-32399-0, Sams Publishing 2003.

[1] Mastering JXTA: Building Java Peer-to-Peer Applications, Joseph D. Gradecki,  ISBN: 0471250848, John Wiley & Sons, 2002.

[2] JXTA in a Nutshell, Scott Oaks, Bernard Traversat, Li Gong, ISBN: 059600236X, O'Reilly & Associates, 2002.

[3] Java Web Services Unleashed, Ron Schmelzer, Travis Vandersypen, Jason Bloomberg, Madhu Siddalingaiah, Sam Hunting, Michael Qualls, Chad Darby, David Houlding, Diane Kennedy, ISBN: 0672323419, Sams. 2002.

[4] Developing Jini Applications Using J2ME Technlgy, Hinkmond Wong, ISBN: 0201702444, Addison-Wesley, 2003.

[5] JavaSpace in Practice, Phillip Bishop, Nigel Warren, ISBN: 0321112318, Addison Wesley Professional, 2002.

Tentative Course Outline:
Introducing P2P
P2P Systems and Architecture
Building Distributed Systems Using Java
   Web Services
Sample P2P Applications

Course Delivery Format/Policies
This course consists of lectures,  homework assignments, two exams and a final project.

Homework assignments will consist of problems assigned from the textbook and references. The format and types of questions on homework will be similar to those on the midterm and final exams. Doing and understanding the homework assignments will help prepare for tests.

Final Project will be submitted by email: Students should make two person teams or work individually if it is preferred. Each team must complete a P2P application in the SORCER environment. Programs must compile and run using the Java SDK 2.0 version 1.4. The project will receive points for #1- proper operation (50% of grade), #2- structure, commenting, and style (25% of grade), and #3- presentation/demo (25% of grade).

Please note the following programming style and coding guidelines:

  • Each source file must begin with a comment block identifying the programmer, project, last modification date.
  • The class file containing "public static void main()" must include a comment block (following the identification header comment), that briefly describes the purpose of the program and the primary data structures employed.
  • Each class method or property must be accompanied by a header comment that describes what the method or property does, the logical purpose of each passed parameter (including whether it is input, output, or input/output), the pre-conditions that are assumed, the post-conditions that are guaranteed, and the return value (if any).
  • Declarations of class level variables and finals (constants) must be accompanied by a brief description of purpose.
  • Major control structures, such as loops or selections, should be preceded by a block comment describing what the following code does.
  • Use a sensible, consistent pattern of indentation and other formatting style (such as bracket placement) to improve the readability of your code.
  • Identifier names (constants, variables, methods, properties, classes, etc.) should be descriptive.
  • When a final (constant) is appropriate, use a final (constant) instead of a "magic number". More explicitly, any constant value other than 0 or the empty string, "", should be a named constant.
  • Store character data (aside from single characters) in string objects, rather than char arrays.

Exams will be open-book/notes. Material from handouts, textbooks and assignments will be included in the scope of the exams.

Midterm exam
A makeup exam will not be given. A valid excuse from the dean or health office will result in the points being applied to the final exam.
Final exam
The final exam is comprehensive.

Point Distribution:

Homeworks (5)20%
Final Project40%
Midterm Exam15%
Final Exam25%

Grading Scale:
Grades may be curved as necessary.

90 guarantees at least an A-
80 guarantees at least a B-
70 guarantees at least a C-
60 guarantees at least a D-
59 or less is F

Late Policy:
Late work will not be accepted. Each homework and programming assignment will have a posted deadline. Deadlines are absolute. Failure to submit an assignment by the deadline will result in a grade of 0. There are no exceptions. A written excuse from the dean or health office is the only acceptable form of excuse. This will result a minimum extension to the deadline to complete the assignment.
Questions about grades:
After each graded assignment is returned students will have one week following the return of the assignment to question the grade assigned with either the course instructor or TA. After one week has passed the grade becomes final and will not change. This applies to all programming assignments, homework and tests.

The purpose of these different instruments is to have a positive learning experience, critical thinking about Java programming, 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.

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.

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