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.
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
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:
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:
You are able to use your own PCs, but access to Monash computer labs will also be available.
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.
All course material is available for viewing and down-loading from the web page address http://jan.newmarch.name/distjava/.
The following reference books have been recommended for this subject:
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.
Students should consult University materials on cheating, in particular:
It is the student's responsibility to make themselves familiar with the contents of these documents.