DISTRIBUTED SYSTEMS - 2019/0
Module code: COM3026
Module Overview
A distributed system is built of a network of computing devices, which coordinate their actions via message passing to achieve a common goal. Typically, system components are assumed to operate concurrently, lack a global clock and to fail independently. This module shall build and consolidate your knowledge of advanced algorithms, computer networking and/or parallel computing. You shall learn to describe the principles of distributed systems, such as communication, scheduling and fault tolerance as well as to compare and contrast between a broad set of instances of distributed systems, algorithms and protocols (e.g., peer-to-peer systems, distributed hash tables, MixNets, distributed ledger technologies) within the context of various applications.
Module provider
Computer Science
Module Leader
LIANG Kaitai (Computer Sci)
Number of Credits: 15
ECTS Credits: 7.5
Framework: FHEQ Level 6
Module cap (Maximum number of students): N/A
Overall student workload
Workshop Hours: 22
Independent Learning Hours: 117
Lecture Hours: 11
Module Availability
Semester 2
Prerequisites / Co-requisites
None.
Module content
Content covered will include key principles, concepts, architectures, algorithms and technologies for distributed systems, for example:
- Distributed System Models
- Time in Distributed Systems (Clock Synchronisation, Logical Time)
- Distributed Algorithms (Mutual Exclusion, Leader Election, Consensus)
- Fault Tolerance
- Interprocess Communication
- Remote Invocation
- Message Routing
- Coordination and Agreement
- Distributed Transactions
- Replication
- Advanced and modern distributed systems (Blockchains and Distributed Ledgers)
- Security principles for Distributed Systems
Assessment pattern
Assessment type | Unit of assessment | Weighting |
---|---|---|
Coursework | INDIVIDUAL CW A: DISTRIBUTED SYSTEM TOOL & DESIGN | 10 |
Coursework | GROUP CW B: DISTRIBUTED SYSTEM DESIGN & IMPLEMENTATION | 20 |
Examination | 2 HOUR UNSEEN EXAMINATION | 70 |
Alternative Assessment
N/A
Assessment Strategy
The assessment strategy is designed to provide students with the opportunity to demonstrate their achievement of the learning outcomes. Summative assessment shall comprise of: (1) An individual coursework A and a group based coursework B that shall assess learning outcomes 2, 3, 4 and 5 and will include aspects of distributed systems design and implementation; (2) A 2 hour examination that shall assess learning outcomes 1, 2, 4 and 5.
Assessment criteria for the coursework will be released alongside the coursework assignment.
Formative assessment is provided via verbal feedback given in workshop/lab sessions on the students attempts at the workshop/lab exercises and theoretical questions.
Module aims
- This module will equip the students with the analytical skills and knowledge to design and architect scalable, dependable and secure distributed systems.
- Students will develop their ability to construct and present sound design decisions using the knowledge and analytical skills they will acquire.
Learning outcomes
Attributes Developed | ||
001 | Describe the key characteristics and principal concepts of distributed systems and critically compare them to a centralised view of computing. | KC |
002 | Explain the primary challenges of developing scalable, dependable and secure distributed systems and identify these within specific contexts. | KC |
003 | Identify, synthesise and critically evaluate information regarding distributed systems paradigms, models and technologies from academic books, academic journal and secondary data. | KCPT |
004 | Critically appraise the applicability of various distributed computing principles and technologies to satisfy a given set of system requirements. | KCPT |
005 | Develop and present sound arguments to justify design decisions made during the development of distributed systems within a given context. | KCPT |
Attributes Developed
C - Cognitive/analytical
K - Subject knowledge
T - Transferable skills
P - Professional/Practical skills
Methods of Teaching / Learning
The learning and teaching strategy is designed to provide students with the knowledge, skills and practical experience covering the module aims and learning outcomes.
For each teaching week, the learning and teaching methods include:
1 hour lecture, covering the key principles of distributed systems.
2 hour of workshops/labs, in which students shall develop and practice their ability to synthesize, apply and evaluate distributed systems concepts within the context of realistic case studies.
There will also be a revision session to support the module.
Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.
Reading list
https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: COM3026
Other information
N/A
Programmes this module appears in
Programme | Semester | Classification | Qualifying conditions |
---|---|---|---|
Computer Science BSc (Hons) | 2 | Optional | A weighted aggregate mark of 40% is required to pass the module |
Computing and Information Technology BSc (Hons) | 2 | Optional | A weighted aggregate mark of 40% is required to pass the module |
Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2019/0 academic year.