Course Title: Foundations Distributed Computing

Part A: Course Overview

Course Title: Foundations Distributed Computing

Credit Points: 12.00

Course Code




Learning Mode

Teaching Period(s)


City Campus


140H Computer Science & Information Technology


Sem 1 2006,
Sem 1 2007,
Sem 1 2008,
Sem 1 2009,
Sem 1 2010,
Sem 1 2011,
Sem 1 2012,
Sem 1 2013,
Sem 1 2014


City Campus


140H Computer Science & Information Technology


Sem 1 2006,
Sem 1 2007,
Sem 1 2008,
Sem 1 2009,
Sem 1 2010,
Sem 1 2011,
Sem 1 2012,
Sem 1 2013

Course Coordinator: Prof. Zahir tari

Course Coordinator Phone: +61 3 9925 3782

Course Coordinator Email:

Course Coordinator Location: 14.11.18

Course Coordinator Availability: by appointment

Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced requisite: COSC1295 Advanced Programming

Note it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.

For your information the RMIT Course Requisites policy can be found at Course requisites –;ID=twx09y07zi1c

Course Description

The course provides an understanding of the principles on which the Internet and other distributed systems are based; their architecture, algorithms and how they meet the demands of contemporary distributed applications. The course covers the building blocks for a study of distributed systems, and addressing the characteristics and the challenges that must be addressed in their design: scalability, heterogeneity, security and failure handling being the most significant.

This course will also cover issues and solutions related to the design and the implementation of distributed applications.

The course assumes a general knowledge of computers, and the assignments require Java programming skills.

Objectives/Learning Outcomes/Capability Development

Program Learning Outcomes

This course contributes to the following Program Learning Outcomes of BP094 (Bachelor of Computer Science) program


  • Understand the fundamental principles of distributed systems


  • Be familiar with the different methods and techniques used in distributed systems


  • Understand the most essential theoretical aspects of distributed computing

Course Learning Outcomes

Upon successful completion of this course you should be able to:

  • CLO 1: demonstrate knowledge of the basic elements and concepts related to distributed system technologies;
  • CLO 2: demonstrate knowledge of the core architectural aspects of distributed systems;
  • CLO 3: design and implement distributed applications;
  • CLO 4: demonstrate knowledge of details the main underlying components of distributed systems (such as RPC, file systems);
  • CLO 5: use and apply important methods in distributed systems to support scalability and fault tolerance;
  • CLO 6: investigate and evaluate the recent research developments in distributed systems. 

Overview of Learning Activities

The learning activities included in this course are:

  • Key concepts and well-known methods will be explained in lectures, classes or online, where syllabus material will be presented and the subject matter will be illustrated with demonstrations and examples;
  • Tutorials will focus on problem solving and they will provide practice in the application of theory and procedures, allow exploration of concepts with teaching staff and other students, and give feedback on your progress and understanding;
  • Computer laboratory sessions provide practices in the application of developing basic distributed applications using RPC;    


A total of 120 hours of study is expected during this course, comprising:

Teacher-directed hours (48 hours): lectures, tutorials and laboratory sessions. Each week there will be 2 hours of lecture and tutorial plus 2 hours of computer laboratory work. You are encouraged to participate during lectures through asking questions, commenting on the lecture material based on your own experiences and by presenting solutions to written exercises. The tutorial / laboratory sessions will introduce you to the tools necessary to undertake the assignment work.

Student-directed hours (72 hours): You are expected to be self-directed, studying independently outside class.    

Overview of Learning Resources

 The course is supported by the Blackboard learning management system which provides specific learning resources. See the RMIT Library Guide at 

Overview of Assessment

The assessment for this course comprises one programming assignment, a written report and a formal written end-of-semester examination.


Note: This course has no hurdle requirements.


Assessment tasks


Assessment Task 1:  Written Assignment

Weighting 20%

This assessment task supports CLOs 1, 2, 3, 4

Assessment Task 2:  Written Report

In this report, you will present your research study on a specific aspect of distributed systems.

Weighting 30%

This assessment task supports CLOs 1, 2, 5, 6

Assessment 3: End-of-Semester Examination

Weighting 50% 

This assessment supports CLOs 1, 2, 3, 4, 5