CPE4001 - Distributed Programming in Java

Subject Handbook - Semester Two 2002


Subject organisation

Each student attends one 2 hour lecture and one 2 hour tutorial per week.
The lecture is Friday 1-3pm, E2.24. The tutorial times are There is no tutorial in week one


This subject requires a significant amount of time to be spent outside the scheduled lectures and tutorials.

Tutorial Attendance

Attendance at tutorials is NOT compulsory, however past experience has shown that those students who do not attend tutorials, usually fail the subject. Exercises relating to each week's material are set to help students achieve the educational objectives of this subject. Any exercises not completed in tutorial time should be completed in the student's own time.

Lecture and Tutorial Staff

Lecturer: Jan Newmarch
Office: Peninsula G427 (Tue, Thu); Caulfield B3.55 (Mon, Wed, Fri)
Phone: 990 44249 (Peninsula), 990 32722 (Caulfield)
Email: jan@newmarch.name



One semester of 13 weeks. Students attend one 2 hour lecture and one 2 hour tutorial per week.


An undergraduate qualification in computing or closely related discipline is required. Previous knowledge of Java programming is desired. Students without appropriate programming skills are expected to engage in extra private studies.


This subject focuses on the development of distributed and concurrent software applications, with Java as the teaching language.

Concurrent programming primitives and concepts: threads, monitors, safety and liveness, control policies, resource sharing. Application of concurrent techniques in distributed application designs: communications, coordination, reuse and fault tolerance. Design and implementation issues and techniques of distributed applications: synchronous and asynchronous communications, message passing, naming and trading of components, atomic and composite objects, object migration and replications. Enabling techniques: platform and language heterogeneity, infrastructure models for interoperability (such as Java/RMI), object interface definition, remote operation invocation. Distributed patterns. Service discovery and lookup, leases and transactions of resources. Distributed events. Case studies of distributed programming paradigms and their applications (e.g. JINI, JavaSpaces).


At the completion of this subject, students will be able to:

Week-by-week breakdown

The actual breakdown of topics will be discussed in the first lecture, to take account of previous background and interests. However, the specific topics to be included will be from the following list:


Computer hardware

You are able to use your own PCs, but access to Monash computer labs will also be available.

Computer software

All teaching within this subject uses Java as programming language. All of your exercises and assignments must be run using Java SDK 1.2 or better. You can use either Windows or Linux.

Subject Web Page

All course material is available for viewing and down-loading from the web page address http://jan.newmarch.name/distjava/.


Recommended Books

The following reference books have been recommended for this subject:


Assessable components

There will be one final examination (worth 50% of the total assessment), and assignment work (worth 50% of the total assessment). The assignment work is two programming assignments of equal weight.

To pass the subject you must obtain at least 50% of the total marks given in the subject, and at least 50% of the total marks given for the formal examination and at least 40% of the marks given for the assignments.

Policy on Plagiarism

Students should consult University materials on cheating, in particular:

  1. Student Resource Guide at http://www.monash.edu.au/pubs/handbooks/srg/, particularly the section on Cheating at http://www.monash.edu.au/pubs/handbooks/srg/srg0071.htm
  2. Student Resource Guide - section on Student Rights and Responsibilities at http://www.monash.edu.au/pubs/handbooks/srg/srg0059.htm
  3. Faculty policy at http://www.csse.monash.edu.au/~ajh/adt/policies/cheating.html

It is the student's responsibility to make themselves familiar with the contents of these documents.

Jan Newmarch (http://jan.newmarch.name)
Last modified: Thu Jul 21 21:01:18 EST 2005
Copyright ©Jan Newmarch
Copyright © Jan Newmarch, Monash University, 2007
Creative Commons License This work is licensed under a Creative Commons License
The moral right of Jan Newmarch to be identified as the author of this page has been asserted.