Enrolment options

CSC4263: Parallel and Distributed Systems
Semester II

Course Aims

A distributed system is a computer system consisting of several independent computers, connected by a network, that can work together to perform a task or provide a service. Typical examples include: the World Wide Web, networked file systems, DNS, and massive multiprocessor supercomputers.

In this course we aim to provide students with a deeper understanding of distributed systems. In particular we focus on the principles, techniques, and practices relevant to the design and implementation of such systems. The course takes a systems-oriented view of distributed systems, concentrating on infrastructure software and providing hands-on experience implementing distributed systems.

Course objectives:

  • Present the principles underlying the functioning of distributed systems;
  • Create an awareness of the major technical challenges in distributed systems design and implementation;
  • Expose students to modern and classic technology used in distributed systems and their software;
  • Expose students to past and current research issues in the field of distributed systems;
  • Provide experience in the implementation of typical algorithms used in distributed systems.
  • Understanding and operating with distributed systems topics involving concepts, architectures and programming models are the objectives of this course.

 

 

Learning Outcomes

After completing this course you will be able to:

  • Explain what a distributed system is, why you would design a system as a distributed system, and what the desired properties of such systems are;
  • List the principles underlying the functioning of distributed systems, describe the problems and challenges associated with these principles, and evaluate the effectiveness and shortcomings of their solutions;
  • Recognize how the principles are applied in contemporary distributed systems, explain how they affect the software design, and be able to identify features and design decisions that may cause problems;
  • Design a distributed system that fulfills requirements with regards to key distributed systems properties (such as scalability, transparency, etc.), be able to recognize when this is not possible, and explain why;
  • Build distributed system software using basic OS mechanisms as well as higher-level middleware and languages.

Course Prerequisites

Since networks make up a key part of distributed systems, and since many of the key challenges and solutions presented in the course extend those found in operating systems, a solid background in programming, networking and operating systems is essential.

Self enrolment (Student)
Self enrolment (Student)
Accessibility

Background Colour Background Colour

Font Face Font Face

Font Kerning Font Kerning

Font Size Font Size

1

Image Visibility Image Visibility

Letter Spacing Letter Spacing

0

Line Height Line Height

1.2

Link Highlight Link Highlight

Text Alignment Text Alignment

Text Colour Text Colour