TORONTO METROPOLITAN UNIVERSITY

Course Outline (W2026)

COE892: Distributed and Cloud Computing

Instructor(s)Dr. Muhammad Jaseemuddin [Coordinator]
Office: ENG458
Phone: (416) 979-5000 x 556073
Email: jaseem@torontomu.ca
Office Hours: Wed 1-2 pm and online upon request
Calendar DescriptionThis course will introduce students to concepts in the design and implementation of large-scale distributed/cloud computing systems. The topics will range from cloud technology to cluster and multi-core systems. The course will specifically cover the topics of cloud infrastructures, virtualisation, software defined networks and storage, distributed storage systems, and programming models.
PrerequisitesCOE 768
Antirequisites

None

Corerequisites

None

Compulsory Text(s):
  1. Distributed System 3/e by Maarten van Steen and Andrew Tanenbaum
Reference Text(s):
  1. 1. Modern Operating Systems 5/e, Andrew Tannenbaum and Herbert Bas, Pearson; 2. Distributed Computing 2/e, Hagit Attiya and Jennifer Welch, Wiley; Cloud Computing 3/e, Dan Marinescu, Morgan Kaufman Publishers
Learning Objectives (Indicators)  

At the end of this course, the successful student will be able to:

  1. Generates solutions for consistency, fault resilience and recovery in distributed system design. (4b)
  2. Applies criterion for selecting inter-process communication method, P2P and client-server design approaches in making complex distributed system design decisions. (4c)
  3. Uses message sequence chart for consistency analysis, applies fault resilience techniques and develops test cases for their projects. (5a)
  4. Demonstrates fluency in oral presentations of lab works and project demonstrations and in written communication through project report. (7c)

NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB).

Course Organization

3.0 hours of lecture per week for 13 weeks
2.0 hours of lab per week for 12 weeks
0.0 hours of tutorial per week for 12 weeks

Teaching Assistants1. Amirhossein Razavi (amirhossein.razavi@torontomu.ca)
 2. Deepu Sasi (deepu.sasi@torontomu.ca)
 3. Mahdiyar Ali Akbar Alavi (mahdiyar.alavi@torontomu.ca)
 4. Rendel Abrasia (rabrasia@torontomu.ca)
 
Course Evaluation
Theory
Midterm Exam 20 %
Final Exam 30 %
Quizzes (2 Quizzes, 5% each) 10 %
Laboratory
Labs (5 labs, 3% each) 15 %
Project 25 %
TOTAL:100 %

Note: In order for a student to pass a course, a minimum overall course mark of 50% must be obtained. In addition, for courses that have both "Theory and Laboratory" components, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section above for details on the Theory and Laboratory components (if applicable).


ExaminationsMidterm exam in Week 7 (tentative date: Feb 25th) , 2 hours, closed book (covers Weeks 1-6).
 There will be no midterm makeup exam and the weight will be moved to the final exam.
 Final exam, during exam period, three hours, closed book.
 Two Quizzes (5% each)
Other Evaluation Information* Quiz-1 in Week 5 (tentative) and Quiz-2 in Week 11 (tentative)
 * Laboratory and project are important components of learning and practicing the topics learnt in the class. You are expected to do your labs individually and make significant contribution to the project. You will be evaluated individually for the labs and the project. Lab manual includes details about submission, late penalty, and evaluation of labs.
 * Project marks breakdown and deadlines are as follows:
   Project proposal  (2%) due on February 2nd    
   Interim Report   (3%) due on March 9th     
   Project Demonstration         (7.5%) due in Week 12 and 13 (March 30th to April 10th)
   Project Code                  (7.5%) due on March 30th  
   Project Report                (5%) due on March 30th
   
 
Teaching MethodsThe textbook is highly recommended, outside textbook materials will be provided in lecture slides.
 Class schedule: Wednesdays 8am to 11am in LIB072.
 Labs will be demonstrated online to a TA.
Other InformationThis course covers topics related to distributed computing and cloud systems. It presents distributed system architectures; client-server and peer to peer system design; Threading and multi-process computing models; concurrency, synchronization, and inter-process communication; replication, consistency, fault tolerance and recovery. Client-server application design for web application and its full stack implementation are discussed. Web application development using Python framework on a public cloud is covered. Cloud service models; virtualization using VM and containers; their orchestration and performance issues are discussed. Case studies on public and private clouds are presented. Recent developments of multi-cloud and edge clouds are introduced. It includes a major project on the development of distributed software using Python framework and its deployment on a public cloud.

Course Content

Week

Hours

Chapters /
Section

Topic, description

1

3

Chapters 1&2 (1.1, 2.1 Application Layering), Chapter 3 (3.1, 3.2)

Introduction to distributed computing and system: distribution of computing and data, virtualization, and cloud systems). Process, Thread, Thread-Implementation, Virtualization.


2

3

Chapter 2 (2.3 Centralized), Chapter 3 (3.3., 3.4)

Distributed Architecture: Client-server system, web framework and fastAPI  


3

3

Chapter 2 (2.3 Decentralized - structure and unstructured), Chapter 5 (5.2 Distributed Hash Tables)

Distributed Architecture: P2P, Structured (DHT) and Unstructured (Gnutella)


4

3

Chapter 6 (6.1 Physical clocks, 6.2)

Coordination: Physical, Logical and Vector clocks


5

3

Chapter 6 (6.3, 6.4)

Coordination: Concurrency and Mutual Exclusion, election algorithms


6

3

Chapter 4 (4.2)

Communication: Shared Memory, Remote Procedure Call (gRPC)


7

3

Midterm Exam


8

3

Chapter 4 (4.3 message-oriented persistent communication, AMQP, 4.4)

Communication: message passing (AMQP)


9

3

Communication: publisher-subscriber model (MQTT), multicast


10

3

Cloud: Cloud service models, Cloud application design on a public cloud, Container Orchestration


11

3

Chapter 7 (7.1, 7.2, 7.3, 7.5)

Replication and Consistency


12

3

Chapter 8 (8.1, 8.2, 8.3)

Reliability and Fault-tolerance: RAFT consensus algorithm


13

3

Chapter 8 (8.5, 8.6)

Recovery


Laboratory(L)/Tutorials(T)/Activity(A) Schedule

Week

L/T/A

Description

5

Lab1

Multi-threading using shared memory and lock

8

Lab2

gRPC

9

Lab3

RabbitMQ

12

Lab4

FastAPI

12

Lab5

Container

12-13

Project

Project: Web application on a public cloud

University Policies & Important Information

Students are reminded that they are required to adhere to all relevant university policies found in their online course shell in D2L and/or on the Senate website

Refer to the Departmental FAQ page for furhter information on common questions.

Important Resources Available at Toronto Metropolitan University

Lab Safety (if applicable)

Students are to strictly adhere and follow:

  1. The Lab Safety information/guidelines posted in the respective labs,
  2. provided in their respective lab handouts, and
  3. instructions provided by the Teaching Assistants/Course instructors/Technical Staff.

During the lab sessions, to avoid tripping hazards, the area around the lab stations should not be surrounded by bags, backpacks etc, students should place their bags, backpacks etc against the walls of the labs and/or away from their lab stations in such a way that it avoids tripping hazards.

Accessibility

Academic Accommodation Support

Academic Accommodation Support (AAS) is the university's disability services office. AAS works directly with incoming and returning students looking for help with their academic accommodations. AAS works with any student who requires academic accommodation regardless of program or course load.

Academic Accommodations (for students with disabilities) and Academic Consideration (for students faced with extenuating circumstances that can include short-term health issues) are governed by two different university policies. Learn more about Academic Accommodations versus Academic Consideration and how to access each.

Wellbeing Support

At Toronto Metropolitan University, we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis.

If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:

If non-crisis support is needed, you can access these campus resources:

We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.