DCU Home | Our Courses | Loop | Registry | Library | Search DCU


Module Specifications

Archived Version 2017 - 2018

Module Title
Module Code

Online Module Resources

NFQ level 8 Credit Rating 5
Pre-requisite None
Co-requisite None
Compatibles None
Incompatibles None
This module aims to introduce the student to issues involved in concurrent computing, and particularly to the paradigms used in parallel and distributed computing to address these issues. To facilitate learning on part of the student, algorithms are presented in the form of solutions to everyday problems (e.g. modelling a queue in a bakery shop). Comparisons are drawn between several different concurrent languages and libraries and advantages and disadvantages of each are presented. In order to interest the student in the application of these languages, the assessment seeks to present the student with an interesting, open-specification problem in concurrency (e.g. fair access to a shared resource such as a car park) so that the student may apply the knowledge gained in the course. The module is delivered through lectures.

Learning Outcomes
1. Explain the meaning of concurrent programming and where it fits in with single-threaded programming paradigms.
2. Describe when concurrent programming can be used to solve common problems in computer science.
3. Recognise various synchronization models for safe concurrent programs.
4. Demonstrate a proficiency in writing multi-threaded programs in Java involving multiple agents.
5. Explain the operation of distributed programs using the Message Passing Interface (MPI) library and concurrent programs in the Synchronised Resources (SR) programming language.
6. Describe common architectures on which concurrent and multi-threaded programs may be run.

Workload Full-time hours per semester
Type Hours Description
Lecture24Formal lecture (notes made available via web)
Assignment Completion25Continuous Assessment through Programming Project
Independent Study40Revision of material & preparation for Examination
Directed learning21Library & Web-based course learning
Directed learning15Podcasts of Important Algorithms on the Module
Total Workload: 125

All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml

Indicative Content and Learning Activities

Architectural classification schemes.

Parallel Speed-up.


Critical sections and mutual exclusion.



Message Passing, Synchronous and Asynchronous, Types of message passing processes

Filters, Clients, Servers and Peers.



Languages for concurrent programming
SR and Linda.

Load Balancing and Resource Allocation.

Fault tolerance.

Assessment Breakdown
Continuous Assessment% Examination Weight%
Course Work Breakdown
TypeDescription% of totalAssessment Date
Reassessment Requirement
Resit arrangements are explained by the following categories;
1 = A resit is available for all components of the module
2 = No resit is available for 100% continuous assessment module
3 = No resit is available for the continuous assessment component
Indicative Reading List
  • G.R. Andrews: 2000, Foundations of Multithreaded, Parallel and Distributed Programming, Addison-Wesley, 9780201357523
  • M. BenAri: 2006, Principles of Concurrent and Distributed Programming, Second Edition, Prentice Hall, 9780321312839
Other Resources
Programme or List of Programmes
Timetable this semester: Timetable for