Distributed Algorithms and Systems (H) COMPSCI4019

  • Academic Session: 2017-18
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 4 (SCQF level 10)
  • Typically Offered: Semester 1
  • Available to Visiting Students: Yes
  • Available to Erasmus Students: Yes

Short Description

Distributed systems are ubiquitous in commerce and industry, from the international banking network to process control in large industrial sites. This course builds on the introductions to operating systems and networked systems in level 3, specifically focussing on the software engineering issues raised by distributed systems and algorithms for use in distributed systems.

 

The key feature of this course will be the assumption that a distributed system is one in which: partial failure is to be expectedÍž local and remote operations differ greatly in costÍž and an element of message passing is required for communication.

Timetable

3 hours per week.

Requirements of Entry

Advanced Programming H (or equivalent)

Operating Systems H (or equivalent) 

Networked Systems H (or equivalent)

Excluded Courses

None 

Co-requisites

None 

Assessment

Examination 80%, coursework 20%.

 

Students are asked to submit a programming-based assessed coursework to implement a simple distributed system, embracing practical concepts covered in the course.

Main Assessment In: April/May

Are reassessment opportunities available for all summative assessments? No

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below. 

 

Resit examinations ARE NOT ALLOWED for Honours students.

Resit examinations ARE ALLOWED for Masters students.

 

The coursework cannot be redone as it is completed as part of a group.

Course Aims

Distributed systems are ubiquitous in commerce and industry, from the international banking network to process control in large industrial sites. This course builds on the introductions to operating systems and networked systems in level 3, specifically focussing on the software engineering issues raised by distributed systems and algorithms for use in distributed systems.

 

The key feature of this course will be the assumption that a distributed system is one in which: partial failure is to be expected; local and remote operations differ greatly in cost; and an element of message passing is required for communication.

 

This course provides a higher level view of networked systems than Advanced Networking and Communications (H), and could usefully be taken in conjunction with Advanced Operating Systems (M).

 

This course aims to provide an understanding of the fundamental of distributed computing and software engineering issues raised by distributed systems. It aims to enable students to develop mechanisms, methodologies and applications for distributed systems, distributed data processing algorithms, distributed algorithms for information dissemination, fundamental consensus mechanisms in distributed systems along with theoretical/mathematical modelling of distributed computing, which allow such applications to be developed and deployed in real distributed systems.

Intended Learning Outcomes of Course

By the end of the course students will be able to:

1. Design, implement and evaluate distributed applications using remote method invocation/procedure call;

2. Implement a variety of simple servers and applications that utilise them;

3. Compare and contrast at least two approaches to distributed programming;

4. Implement and critique simple load-sharing mechanisms;

5. Select appropriately from various families of algorithm used in distributed systems like distributed information dissemination, distributed consensus algorithms, queuing models and algorithms, based on specific system requirements;

6. Demonstrate understanding of the real-world implications and challenges imposed to distributed computing methodologies and systems design from the practical deployment of networked systems and mechanisms;

7. Discuss the issues raised by design for high performance and/or high reliability in distributed systems.

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.