MEng Software Engineering
Year of entry: 2020
Course unit details:
|Unit level||Level 2|
|Teaching period(s)||Semester 2|
|Offered by||Department of Computer Science|
|Available as a free choice unit?||Yes|
|Unit title||Unit code||Requirement type||Description|
|Fundamentals of Distributed Systems||COMP18112||Pre-Requisite||Compulsory|
|Object Oriented Programming with Java 2||COMP16212||Pre-Requisite||Compulsory|
Many of the most important and visible uses of computer technology rely on distributed computing. This course unit aims to build on the course unit in the first year (COMP10052) which introduced students to the principles of distributed computing, and it focuses on techniques and methods in sufficient breadth and depth to provide a foundation for the exploration of specific topics in more advanced course units. The course unit assumes that students have already a solid understanding of the main principles of computing within a single machine, have a rudimentary understanding of the issues related to machine communication and networking, and have been introduced to the area of distributed computing.
Have knowledge and understanding of the main principles, techniques and methods involved when dealing with distributed systems.
Have detailed knowledge and understanding of major issues related to the design of a distributed system, such as: - how to communicate between distributed objects by means of remote invocation.
Have detailed knowledge and understanding of major issues related to the design of a distributed system, such as: - the absence of global physical time in distributed systems.
Have detailed knowledge and understanding of major issues related to the design of a distributed system, such as: - how processes can coordinate their actions in a distributed setting distributed transactions.
Have the ability to design and implement prototypical distributed computing applications using different technologies.
Be aware how the fundamental techniques above are applied in practical systems.
Revision of the characteristics of distributed systems. Challenges. Architectural models.
Remote Invocation and Distributed Objects
Java RMI, CORBA, Web Services.
Synchronous vs asynchronous messaging. Point-to-point messaging. Publish-subscribe.
Concurrency, co-ordination and distributed transactions
Ordering of events. Two-phase commit protocol. Consensus.
Caching and Replication
Service-Oriented Architectures, REST and Web Services
Teaching and learning methods
22 in total, 2 per week
10 hours in total, 5 2-hour sessions
- Analytical skills
- Problem solving
|Practical skills assessment||20%|
COMP28112 reading list can be found on the School of Computer Science website for current students.
|Scheduled activity hours|
|Assessment written exam||2|
|Practical classes & workshops||12|
|Independent study hours|
|Rizos Sakellariou||Unit coordinator|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.