Week

Session

Date

Topic

Teaching Method

Reading list

Projects

Prob. Solving Assignment

1

1

24 Aug

Logistics and Introduction

Lecture

Syllabus

 

 

 

2

26 Aug

Introduction to Distributed Systems

Lecture

C1, T1

 

 

 

3

27 Aug

Advanced Object-Oriented Java Programming

Recitation

 

 

Start PS1

2

4

31 Aug

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

2 Sep

Networking – Layering, Switching, Routing, and Congestion Control

Lecture

C3.3, C3.4

 

 

 

6

3 Sep

Case study: Java Socket Programming & RMI

Recitation

P1 Write-up

 

 

3

7

7 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

 

End PS1

 

8

9 Sep

Naming – Flat, Structured and Attribute-Based Naming

Lecture

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

 

Start PS2

 

9

10 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

14 Sep

Synchronization  –  Motivation and Physical Clocks

Lecture

T6.1

 

 

 

11

16 Sep

Synchronization – Logical Clocks and Vector Clocks

Lecture

T6.2

 

End PS2

 

12

17 Sep

Case study: Google Protocol Buffers and Publish-Subscribe

Recitation

C21.4

 

Start PS3

 

 

20 Sep

Eid Al-Adha Break; NO CLASSES

Break

 

 

 

5

13

28 Sep

Synchronization – Mutual Exclusion and Election Algorithms

Lecture

T6.3 & T6.5

 

 

 

14

30 Sep

Consistency & Replication – Motivation and Data-Centric Consistency Models

Lecture

T7.1 & T7.2

End P1/Start P2

 

 

15

1 Oct

Design of Project 2

Recitation

P2 Write-up

 

 

6

 

5 Oct

Midterm

Exam 1

 

 

 

 

16

7 Oct

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

Lecture

T7.3 & T7.4

 

 

 

17

8 Oct

TBA

Recitation

 

 

End PS3

7

18

12 Oct

Consistency & Replication – Consistency Protocols

Lecture

T7.5 & T7.6

Design Report P2

 

 

19

14 Oct

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

Lecture

T8.1 & T8.2

 

 

 

 

15 Oct

Case study: Consistency in GFS and Google Chubby

Recitation

C21.5.1 & C21.5.2

 

 

8

20

19 Oct

Fault Tolerance – Reliable Request-Reply Communication

Lecture

C5.2 & T8.3

 

Start PS4

 

21

21 Oct

Fault Tolerance – Reliable Group Communication, Distributed Commit and Recovery

Lecture

T8.4 – T8.7

End P2/Start P3

 

 

22

22 Oct

Design of Project 3

Recitation

P3 Write-up

 

 

9

23

26 Oct

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

Lecture

Notes from Instructor

 

 

 

24

28 Oct

Programming Models – MPI

Lecture

Notes from Instructor

 

 

 

25

29 Oct

Applying MPI to Program a Classical Problem

Recitation

 

 

 

10

26

2 Nov

Programming Models –  MapReduce

Lecture

Notes from Instructor

 

 

 

27

4 Nov

Programming Models GraphLab and Pregel

Lecture

Notes from Instructor

End P3/Start P4

 

 

28

5 Nov

Design of P4

Recitation

P4 Write-up

 

End PS4

11

29

9 Nov

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

Lecture

T11.1 – T11.3

 

Start PS5

 

30

11 Nov

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

 

 

Lecture

 

T11.4 – 11.7

 

 

 

 

31

12 Nov

Applying MapReduce to Program a Classical Problem – Part I

Recitation

Notes from Instructor and the Yahoo Tutorial on Hadoop

 

 

12

32

16 Nov

Big Table: A Distributed Structured Storage System

Recorded Video Lecture

The BigTable paper

 

 

 

33

18 Nov

Guest Speaker - TBA

Lecture

 

 

 

 

34

19 Nov

Applying MapReduce to Program a Classical Problem – Part II

Recitation

Notes from Instructor and the Yahoo Tutorial on Hadoop

 

 

13

35

23 Nov

Guest Speaker - TBA

Lecture

 

 

 

 

36

25 Nov

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

Lecture

Notes from the Instructor

 

 

 

37

26 Nov

TBA

Recitation

 

 

 

14

38

30 Nov

Virtualization – CPU Virtualization

Lecture

Notes from the Instructor

 

 

 

39

2 Dec

Virtualization – Memory and I/O Virtualization

Lecture

Notes from the Instructor

End P4

 

 

40

3 Dec

Overview

Recitation

 

 

End PS5

15

 

TBD

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