Week

Session

Date

Topic

Teaching Method

Reading list

Projects

Prob. Solving Assignment

1

1

25 Aug

Logistics and Introduction

Lecture

Syllabus

 

 

 

2

27 Aug

Introduction to Distributed Systems

Lecture

C1, T1

 

 

 

3

28 Aug

Advanced Object-Oriented Java Programming

Recitation

 

 

Start PS1

2

4

1 Sep

Physical and Architectural Models of Distributed Systems & Introduction to Networking

Lecture

C.2.1, C2.2, C2.3 (except 2.3.3),  C3.1, & C3.2

Start P1

 

 

5

3 Sep

Networking – Layering, Switching, Routing, and Congestion Control

Lecture

C3.3, C3.4

 

 

 

6

4 Sep

Case study: Java Socket Programming & RMI

Recitation

P1 Write-up

 

End PS1

3

7

8 Sep

Inter-Process Communication – Sockets, RPC, RMI, and Indirect Communication

Lecture

T4.2 – T4.6, C4.1 – C4.4, C5.1 – C5.4, & C6.1 – 6.4

 

Start PS2

 

8

10 Sep

Naming – Flat, Structured and Attribute-Based Naming

Lecture

T5.1, T5.2, T5.3, T5.4 .1, & T5.4.2

 

 

 

9

11 Sep

Case study: Naming & Storage Server Programming   

Recitation

C5.5; Java API for UDP datagrams and Java API for TCP streams

Design Report P1

 

4

10

15 Sep

Synchronization  –  Motivation and Physical Clocks

Lecture

T6.1

 

 

 

11

17 Sep

Synchronization – Logical Clocks and Vector Clocks

Lecture

T6.2

 

End PS2

 

12

18 Sep

Case study: Google Protocol Buffers and Publish-Subscribe

Recitation

C21.4

 

Start PS3

5

13

22 Sep

Synchronization – Mutual Exclusion and Election Algorithms

Lecture

T6.3 & T6.5

 

 

 

14

24 Sep

Consistency & Replication – Motivation and Data-Centric Consistency Models

Lecture

T7.1 & T7.2

 

 

 

15

25 Sep

Design of Project 2

Recitation

P2 Write-up

 

 

6

16

29 Sep

Consistency & Replication – Client-Centric Consistency Models and Replica Management

Lecture

T7.3 & T7.4

 

 

 

 

1 Oct

Midterm

Exam 1

 

End P1/Start P2

 

 

17

2 Oct

TBA

Recitation

 

 

End PS3

 

 

5 Oct

Eid Al-Adha Break; NO CLASSES

Break

 

 

 

7

18

13 Oct

Consistency & Replication – Consistency Protocols

Lecture

T7.5 & T7.6

Design Report P2

 

 

19

15 Oct

Fault Tolerance – Basic Concepts, Failure Models, Failure Masking by Redundancy & Process Resilience

Lecture

T8.1 & T8.2

 

 

 

 

16 Oct

Case study: Consistency in GFS and Google Chubby

Recitation

C21.5.1 & C21.5.2

 

 

8

20

20 Oct

Fault Tolerance – Reliable Request-Reply Communication

Lecture

C5.2 & T8.3

 

Start PS4

 

21

22 Oct

Fault Tolerance – Reliable Group Communication, Distributed Commit and Recovery

Lecture

T8.4 – T8.7

End P2/Start P3

 

 

22

23 Oct

Design of Project 3

Recitation

P3 Write-up

 

 

9

23

27 Oct

Programming Models – Traditional Models on Parallel Programming & Introduction to MPI

Lecture

Notes from Instructor

 

 

 

24

29 Oct

Programming Models – MPI

Lecture

Notes from Instructor

 

 

 

25

30 Oct

Applying MPI to Program a Classical Problem

Recitation

 

 

 

10

26

3 Nov

Programming Models –  MapReduce

Lecture

Notes from Instructor

 

 

 

27

6 Nov

Programming Models – GraphLab and Pregel

Lecture

Notes from Instructor

End P3/Start P4

 

 

28

7 Nov

Design of P4

Recitation

P4 Write-up

 

End PS4

11

29

10 Nov

Distributed File Systems – Architectures, Data Striping, Processes and Communication

Lecture

T11.1 – T11.3

 

Start PS5

 

30

12 Nov

Distributed File Systems – Naming, Synchronization, Consistency and Replication & Fault-Tolerance

 

 

Lecture

 

T11.4 – 11.7

 

 

 

 

31

13 Nov

Applying MapReduce to Program a Classical Problem – Part I

Recitation

Notes from Instructor and the Yahoo Tutorial on Hadoop

 

 

12

32

17 Nov

Big Table: A Distributed Structured Storage System

Recorded Video Lecture

The BigTable paper

 

 

 

33

19 Nov

Security – Threats, Policies and Mechanisms, Cryptograph, Authentication & Message Integrity and Confidentiality

Lecture

T9.1 & T9.2

 

 

 

34

20 Nov

Applying MapReduce to Program a Classical Problem – Part II

Recitation

Notes from Instructor and the Yahoo Tutorial on Hadoop

 

 

13

35

24 Nov

Security – Access Control Matrix, Protection Domains, Key Management & Authorization Management

Lecture

T9.3 – T9.5

 

 

 

 

36

26 Nov

Virtualization – Motivation, Process and System Virtualization & Logical and Physical Partitioning

Lecture

Notes from the Instructor

End P4

 

 

37

27 Nov

TBA

Recitation

 

 

End PS5

14

38

1 Dec

Virtualization – CPU Virtualization

Lecture

Notes from the Instructor

 

 

 

39

3 Dec

Virtualization – Memory and I/O Virtualization

Lecture

Notes from the Instructor

 

 

 

40

4 Dec

Overview

Recitation

 

 

 

15

 

7 Dec

Final

Exam 2

 

 

 

 

Table 1: Tentative Time-Line of the Course.

 

Notations used in Table 1 are as given below:

 

     PS : Problem Solving Assignments

     Cx(.y.z) : Chapter x (Section y, Subsection z) from the Colouris et al. textbook

     Tx(.y.z) : Chapter x (Section y, Subsection z) from the Tannenbaum and Van Steen textbook

     TBA :To Be Announced