Explore UCD

UCD Home >

COMP30220

Academic Year 2024/2025

Distributed Systems (COMP30220)

Subject:
Computer Science
College:
Science
School:
Computer Science
Level:
3 (Degree)
Credits:
5
Module Coordinator:
Assoc Professor Rem Collier
Trimester:
Spring
Mode of Delivery:
Blended
Internship Module:
No
How will I be graded?
Letter grades

Curricular information is subject to change.

Distribution is a key technology for constructing systems that can scale to meet high demand (such as web applications) or which are required to operate over large geographical areas (such as Sensor Networks). Understanding how to do this effectively is an important challenge in computer science, especially given the continued emergence of systems that are required to handle millions of concurrent users (Facebook, Google, Linkedin, Amazon, Wallmart, Netflix,...) where fluctuations in demand require the addition or removal of hundreds of servers at any point in time.

This module explores this space from a practical perspective. Students will learn about and use a range of distribution techniques. They will explore the state-of-the-art and key theoretical issues by reviewing academic articles on some of the most successful solutions and presenting their findings to their peers. A final project will allow the students to apply these techniques through the development of a significant application.

About this Module

Learning Outcomes:

The student should develop:

* An understanding of key principles of Distributed Systems Design
* The ability to specify and design a distributed system
* Core advanced programming skills in specific areas of Distributed Systems (e.g. Peer-2-peer, fault tolerant, or service oriented)
* An appreciation of the theoretical underpinnings.

Indicative Module Content:

While completing the course, the students will learn about a number distributed programming models, such as: socket programming, distributed objects, remote method invocation, web services (SOAP / REST), message-oriented middleware, and actor programming. Additionally, they will explore a range of distributed systems concepts, including: architectural styles (P2P, Client-Server, Monolithic Systems vs Microservices). Students will also be exposed to additional programming models, distributed applications (e.g. distributed file systems), and advanced concepts (replication systems, fault tolerance) through peer learning.

Student Effort Hours:
Student Effort Type Hours
Lectures

24

Practical

24

Autonomous Student Learning

72

Total

120


Approaches to Teaching and Learning:
* Lab-based learning will be used to introduce the core programming concepts
* Theory and applications will be explored through a combination of critical writing (report), debate (reading groups), and group presentations.
* A group project will be used to apply the students skills to a more significant problem.

Requirements, Exclusions and Recommendations

Not applicable to this module.


Module Requisites and Incompatibles
Incompatibles:
COMP41720 - Distributed Systems


 

Assessment Strategy
Description Timing Component Scale Must Pass Component % of Final Grade In Module Component Repeat Offered
Assignment(Including Essay): Programming Exercises Week 2, Week 3, Week 4, Week 5, Week 6 Graded No
40
No
Exam (In-person): Final Exam End of trimester
Duration:
2 hr(s)
Standard conversion grade scale 40% No
40
No
Group Work Assignment: Group Project Week 7, Week 8, Week 9, Week 10, Week 11, Week 12 Graded No
20
No

Carry forward of passed components
No
 

Resit In Terminal Exam
Summer No
Please see Student Jargon Buster for more information about remediation types and timing. 

Feedback Strategy/Strategies

• Feedback individually to students, post-assessment

How will my Feedback be Delivered?

Not yet recorded.

Name Role
Kalyani Yogeswaranathan Tutor

Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Spring Practical Offering 1 Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 33 Fri 14:00 - 15:50
Spring Lecture Offering 1 Week(s) - 20, 21, 23, 24, 25, 26, 29, 30, 31, 32 Mon 17:00 - 17:50
Spring Practical Offering 1 Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 Wed 16:00 - 17:50