Week

Session

Date

Topic

Teaching Method

Reading list

Projects

Prob. Solving Assignment

1

1

3 Sep

Adiministrivia and Introduction

Lecture

Syllabus

Start P1

 

 

2

5 Sep

Introduction to Distributed Systems

Lecture

C1, T1

 

Start PS1

 

3

6 Sep

Case study: Java Socket programming, RMI

Recitation

Notes about Socket programming and RMI

 

 

2

4

10 Sep

Distributed System Architecture, Introduction to Networking

Lecture

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

 

 

 

5

12 Sep

Networking – Layering, Switching, Routing, Congestion Control

Lecture

C3.3, C3.4

Design Report P1

 

 

6

13 Sep

Design of P1

Recitation

 

 

 

3

7

17 Sep

Inter-Process Communication – Socket, RPC, Message-passing and multi-cast

Lecture

T4.2 – T4.6

 

 

 

8

19 Sep

Naming – Flat, structured and attribute-based

Lecture

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

 

 

 

9

20 Sep

Case study: Google protocol buffers and publish-subscribe

Recitation

 

 

End PS1

4

10

24 Sep

Synchronization – Physical clocks, Logical clocks, Vector clocks

Lecture

T6.1, T6.2

 

Start PS2

 

11

26 Sep

Synchronization – Mutual exclusion, election algorithms

Lecture

T6.3 – T6.6

 

 

 

12

27 Sep

Case study: Google Chubby

Recitation

 

 

 

5

13

1 Oct

Synchronization – Transactions and concurrency control

Lecture

C16

End P1/Start P2

 

 

14

3 Oct

Consistency & Replication

Lecture

T7

 

 

 

15

4 Oct

Case study: Replication in GFS, Design of P2

Recitation

 

 

 

6

16

8 Oct

Consistency & Replication

Lecture

T7

Design Report P2

 

 

17

10 Oct

Consistency & Replication

Lecture

T7

 

 

 

18

11 Oct

Design of P2

Recitation

 

 

End PS2

7

19

15 Oct

Fault Tolerance

Lecture

T8

 

 

 

20

17 Oct

Fault Tolerance

Lecture

T8

 

 

 

21

18 Oct

Programming on Reliable Communication

Recitation

 

End P2

 

8

22

22 Oct

Fault Tolerance

Lecture

T8

Start P3

 

 

23

24 Oct

Midterm

Exam1

 

 

Start PS3

 

24

25 Oct

Design of P3 & Developing MPI programs

Recitation

 

 

 

9

 

28 Oct

Eid Al-Adha Break; No Classes

 

 

 

 

10

25

5 Nov

Programming Models

Lecture

Notes on MPI, Shared memory, W1, W2, W6

 

 

 

26

7 Nov

Programming Models

Lecture

Notes on MPI, Shared memory, W1, W2, W6

 

 

 

27

8 Nov

Developing MPI programs

Recitation

 

 

 

11

28

12 Nov

Programming Models

Lecture

Notes on MPI, Shared memory, W1, W2, W6

 

End PS3

 

29

14 Nov

Distributed File Systems

Lecture

T11

End P3

Start PS4

 

30

15 Nov

Developing MapReduce Programs

 

 

 

 

12

31

19 Nov

Distributed File Systems

Lecture

T11

Start P4

 

 

32

21 Nov

Big Table: A Distributed Structured Storage System

Recorded Video Lecture

The BigTable paper

 

 

 

33

22 Nov

Design of P4 & Developing MapReduce Programs

Recitation

 

 

 

13

34

26 Nov

Security

Lecture

T9

 

 

 

35

28 Nov

Security

Lecture

T9

 

 

 

36

29 Nov

Developing MapReduce programs

Recitation

 

 

 

14

37

3 Dec

TBA

Guest Lecture

 

 

 

 

 

38

5 Dec

Virtualization

Lecture

S1, S8, S9

 

 

 

39

6 Dec

TBA

Recitation

 

 

 

15

40

10 Dec

Virtualization

Lecture

S1, S8, S9

 

End PS4

 

41

12 Dec

Virtualization

Lecture

S1, S8, S9

 

 

 

42

13 Dec

Presentation Session on P3 & P4

Presentations

 

 

 

16

43

17 Dec

Final

Exam2

 

End P4

 

 

Table 1: Tentative Time-Line of the Course.

 

Notations used in Table 1 are as given below:

      Assignments: PS=Problem Solving Assignments

      Reading list: Cx(.y.z) = Chapter x (Section y, subsection z) from Colouris textbook;  similarly, Tx(.y.z) refers to chapters from Tannenbaum textbook, Wx(.y.z) refers to  White textbook, and Sx(.y.z) refers to Smith textbook.

      Instructors: MFS=Majd Sakr, MHH=Mohammad Hammoud TBA=To Be Announced