Module Descriptors
DEVELOPING DISTRIBUTED APPLICATIONS
COMP60064
Key Facts
Digital, Technology, Innovation and Business
Level 6
20 credits
Contact
Leader: Khalil Saadat
Hours of Study
Scheduled Learning and Teaching Activities: 39
Independent Study Hours: 161
Total Learning Hours: 200
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 2
Sites
  • Stoke Campus
Assessment
  • PRESENTATION - 15 mins weighted at 50%
  • DEMONSTARTION - 10 mIns weighted at 30%
  • WRITTEN REPORT - 1000 words weighted at 20%
Module Details
INDICATIVE CONTENT
This module will cover topics of:

Concurrent programming

Multithreading and Parallelism

Synchronisation

Asynchronous programming

Mutual exclusion

Deadlock, livelock, thread starvation, and race-condition

Thread-safety

Programmatic communication over a network (i.e. socket programming)

Multi-user applications

multi-tier client-server applications

Real time consumption of data including 3rd party APIs

Security implications of consuming data from external sources
ADDITIONAL ASSESSMENT DETAILS
Presentation – Students will design, implement and test an application that consumes data from multiple sources, justifying their choice of mechanisms. The implementation will be assessed through a presentation that demonstrates their solution (Learning Outcomes 1 and 3).

Demonstration – Students will design and implement, using concurrency mechanisms, a multi-user multi-tier client-server application (Learning Outcomes 2 and 3).

Written Report – Students will critically reflect on their choice of mechanisms used in their demonstration (Learning Outcomes 2 and 3).
LEARNING OUTCOMES

1. Create and test applications that consume data from APIs and other real-time sources

Application,

Analysis

2. Apply concurrency in the design and implementation of a multi-user, multi-tier, client-server application

Application

3. Critically reflect on your choice of mechanisms for building distributed applications

Reflection,

Problem Solving

LEARNING STRATEGIES
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.
RESOURCES
Current IDEs

Web Server
REFERENCE TEXTS
Hunter, T. and English, B. (2021), Multithreaded JavaScript: Concurrency Beyond the Event Loop, O'Reilly Media

Herron, D "Node.js Web Development" Packt Publishing (latest edition)

Vitillo, R. (2022), Understanding Distributed Systems, Second Edition: What every developer should know about large distributed applications, Roberto Vitillo
WEB DESCRIPTOR
In this module you will further your programming skills to include concurrent programming. You will write client-server applications that are distributed over a network. You will also look at consuming data from real time and other APIs in a secure manner. The applications you write will be distributed across different tiers, and will be available to many users at the same time.