Skip to Content


Last modified: 25 May 2018 11:16

Course Overview

This course discusses core concepts of distributed systems, such as programming with distributed objects, multiple threads of control, multi-tire client-server systems, transactions and concurrency control, distributed transactions and commit protocols, and fault-tolerant systems. The course also discusses aspects of security, such as cryptography, authentication, digital signatures and certificates, SSL etc. Weekly practical sessions cover a set of techniques for the implementation of distributed system concepts such as programming with remote object invocation, thread management and socket communication.

Course Details

Study Type Undergraduate Level 3
Session Second Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus None. Sustained Study No
  • Dr Martin Kollingbaum

Qualification Prerequisites

  • Either Programme Level 3 or Programme Level 4

What courses & programmes must have been taken before this course?

  • One of CS2007 Algorithmic Problem Solving (Passed) or CS2011 Algorithmic Problem Solving (Passed) or CS2521 Algorithmic Problem Solving (Passed)
  • Any Undergraduate Programme (Studied)
  • Either CS2008 Data Management (Passed) or CS2015 Data Management (Passed)

What other courses must be taken with this course?


What courses cannot be taken with this course?


Are there a limited number of places available?


Course Description

  • Introduction to Distributed Systems.
  • Programming with Distributed Objects: Java RMI; Object Serialization; Managing Multiple Threads of Control; Security Policies; Multi-Tier Client-Server Systems.
  • Programming with Distributed Data Sources: Transactions and Concurrency Control; Distributed Transactions; Replication; Fault-Tolerant Systems.
  • Security in Distributed Systems: Cryptography, Authentication, Digital Signatures and Certificates, SSL, Firewalls.

Further Information & Notes

(i) Assistive technologies may be required for any student who is unable to use a standard keyboard/mouse/computer monitor. Any students wishing to discuss this further should contact the School Disability Co-ordinator. (ii) Non-graduating students would require the following background/experience: intermediate level Java programming experience; knowledge of database principles including SQL.

Degree Programmes for which this Course is Prescribed

  • BSc Computing Science and Physics
  • Master of Engineering in Computing Science

Contact Teaching Time

72 hours

This is the total time spent in lectures, tutorials and other class teaching.

Teaching Breakdown


1st Attempt: 1 two-hour written examination (75%); continuous assessment (25%).

Resit: One 2-hour examination (100%). Only the marks obtained at first attempt can be used for Honours classification

Formative Assessment

During lectures, the Personal Response System and/or other ways of student interaction will be used for formative assessment. Additionally, practical sessions will provide students with practice opportunities and formative assessment.


Formative feedback for in-course assessments will be provided in written form. Additionally, formative feedback on performance will be provided informally during practical sessions.

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.