DCU Home | Our Courses | Loop | Registry | Library | Search DCU
<< Back to Module List

Latest Module Specifications

Current Academic Year 2025 - 2026

Module Title Concurrent & Distributed Programming
Module Code CSC1101 (ITS: CA4006)
Faculty Computing School Engineering & Computing
NFQ level 8 Credit Rating 7.5
Description

This module aims to introduce the student to issues involved in concurrent and distributed computing, and particularly to the paradigms used in concurrent 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).

Learning Outcomes

1. Distinguish between two forms of Parallel Computing: Concurrent & Distributed; The fundamental concepts underlying concurrent & distributed computing.
2. Explain the meaning of concurrent programming and where it fits in with single-threaded programming paradigms (Concurrency & Parallelism, Multithreading, Multicore…)
3. Describe common architectures for concurrent and distributed programs.
4. Understand when concurrent programming can be used to solve common problems in computer science (Dining Philosophers, Producers/Consumers etc)
5. Explain communication in Concurrent and Distributed Programs (Synchronous/Asynchronous…)
6. Evaluate the impact of various synchronization models for safe concurrent (semaphores/monitors) and distributed programs including issues related to replication & consistency.
7. Explain support for advanced concurrency in a modern general purpose programming language.
8. Write, analyse and debug multi-threaded and distributed programs involving multiple agents.
9. Explain the operation of communication libraries (such as OPENMP) for message passing.
10. Apply technologies supporting distributed applications such as distributed object-based and coordination-based technology (RMI/RPC and Web Services using SOAP/REST).


WorkloadFull time hours per semester
TypeHoursDescription
Lecture36Course content, including supplementary material on key topics and associated material will be made available online using the DCU Loop e-learning system and other appropriate electronic means.
Independent Study151.5This comprises time for reading, reviewing/exploring given and other exercises, group interaction on project, project time and write-up and revision.
Total Workload: 187.5
Section Breakdown
CRN20388Part of TermSemester 2
Coursework0%Examination Weight0%
Grade Scale40PASSPass Both ElementsY
Resit CategoryRC1Best MarkN
Module Co-ordinatorGraham HealyModule Teacher
Assessment Breakdown
TypeDescription% of totalAssessment Date
AssignmentDevelop a concurrent/distributed implementation to solve a given problem as part of a 2 person team.30%Week 28
Formal ExaminationEnd-of-Semester Final Examination70%End-of-Semester
Reassessment Requirement Type
Resit arrangements are explained by the following categories;
RC1: A resit is available for both* components of the module.
RC2: No resit is available for a 100% coursework module.
RC3: No resit is available for the coursework component where there is a coursework and summative examination element.

* ‘Both’ is used in the context of the module having a coursework/summative examination split; where the module is 100% coursework, there will also be a resit of the assessment

Pre-requisite None
Co-requisite None
Compatibles None
Incompatibles None

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 in Concurrent & Distributed Systems
• Flynn’s Classification: SISD, SIMD, MIMD

• Structural Classification: Tightly (UMA/NUMA) & Loosely Coupled

• Grain-size Classification: Fine & Coarse Grain

Critical sections, fairness and mutual exclusion
• Dekker’s & Gustafson’s Algorithms, Semaphores & Monitors in Concurrent Systems

• Time in Distributed Systems: Lamport /Vector Clocks, Centralized/ Decentralized Algorithms

Architectural Styles in Concurrent & Distributed Systems
• Layered & Object-based, Data-centred & Event-based architectures

• Decentralized: Structured & Unstructured architectures

Speed-up on single & multicores
• Amdahl’s law

Threads, processes and virtualization.

Services in Distributed Computing
• Naming & Discovery

Communications Mechanisms in Concurrent & Distributed
• Types of message passing processes (Filters, Clients, Servers and Peers..)

• Mechanisms RPC/RMI and Rendezvous

• Message Oriented Middleware/Message Queuing (e.g. RabbitMQ)

• Web Services: SOAP, REST

Safe Access to distributed shared resources
Time, Synchronization, Replication & Consistency in Distributed Systems

Indicative Reading List

Books:
  • Brian Goetz, with Tim Peierls... [et al.]: 2006, Java concurrency in practice, 1, Addison Wesley, 978-0321349606
  • Martin Kalin: 2013, Java Web Services: Up & Running, 2, O'Reilly, 978-1449365110
  • 0: Distributed Systems: Principles & Paradigms, 2, Pearson, 0136135531,


Articles:
None
Other Resources

None

<< Back to Module List View 2024/25 Module Record for CA4006