CS425 -- Distributed Computing


Lecture timings

Wednesday - 9.40 am - 11.10 am.
Thursday - 8.50 am - 10.20 am.

Instructor

Umar Kalim
Address: R#15, AB#3, St#8.
E-mail: umar [dot] kalim [at the rate] niit.edu.pk
Tel: 9280439 x 134

Office Hours

One hour after the lecture on Wednesday.


Course Description and Contents | Announcements | Lecture Notes (most recent)| Semester Assignments | Reading List [I] [II]

Course description

The course outline takes its inspiration from the book Distributed Systems: Principles and Paradigms. It is structured in two parts: principles and paradigms. The first part shall cover individual principles such as communication, processes, naming, synchronization, consistency and replication, fault tolerance and security. The later part is organized around paradigms such as object based systems, distributed file systems, document based systems and coordination based systems.

Course contents

Upon completion of the course, students will have a thorough understanding of selected topics from the following:

Text book

Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten van Steen.

Reference books

“Distributed Systems: Concepts and Design”, by George Coulouris and Jean Dollimore, 3rd Edition, 2000.
“Java Programming: Advanced Topics”, by Joe Wigglesworth and Paula McMillan, 3rd edition
“UNIX Network Programming, Volume I: The Sockets Networking API”, by W. Richard Stevens and Andrew M. Rudoff, 3rd Edition, 2003.
“Distributed Algorithms” (The Morgan Kaufmann Series in Data Management Systems) by Nancy A. Lynch, 1st Edition 1997

Grading Criteria

One Hour Tests (OHT) : 30%
Assignments : 5%
Quizzes : 10%
Class Participation: 5%
Project/Survey : 10%
End Semester Examination (ESE) : 40%

Quiz policy (at least 3)

Quizzes will be un-announced as well as announced.
Missed quizzes cannot be retaken.
All quizzes will count towards the total.

Assignments

One assignment will be given after completion of each major topic.
Late assignments will not be accepted / graded.
All assignments will count towards the total.

OHT/ESE Grading Policy

Relative marking, standard deviation based on the class average.

One Hour Test policy

There will be 2 one hour tests.
The portion of syllabus covered in 1st one-hour test will not be tested in the 2nd one hour test.

Group Mail Address

dc-bit@googlegroups.com

Google Groups Subscribe to Distributed Computing BIT 7
Email:
Browse Archives at groups.google.com. Visit this group

Announcements


Assignments


Lecture notes


Week Date (2007) Lecture topic (the text book is to be consulted) Miscellaneous Pointers Reading before lecture Assignment
1
19/09
Course details and Introduction Distributed Computing, Primer on Distributed Computing , Architectures, Examples [I] [II], Misc Pointers   [Reading] Chap. 1.
 
20/09
Introduction, Jumpstart for Java Programming

Java tutorial, Java Tutorial: First Cup of Java, Commaon Problems, Classes, Packages, JAR Files

[Reading] Chap. 1.  
2
26/09
Communication & Sockets OSI Reference Model, Big-Endian, Little-Endian, TCP, UDP, TCP/IP Model, Sockets, Ports, Berkeley Sockets, Socket Programming [C] [Java], Daemon, Interprocess communication, 3-tier architecture   [Reading] Socket Programming [Java]
 
27/09
[Rescheduled]
Automated Teller Machine (ATM) ~ Client-Server implementation using Java Sockets

Java tutorial, Interfaces, Networking, Sockets, I/O

   
3
03/10
Revisiting Communication & Sockets, Middleware Communication ~ Remote Procedure Calls (RPC) Middleware   [Programming Assignment 1] Implementation of a client and server which exchange salutations. due 10/10/07.
 
04/10
Rescheduled
Automated Teller Machine (ATM) ~ Client-Server implementation using Java Sockets

Java tutorial, Interfaces, Networking, Sockets, I/O

[Reading] Socket Programming [Java]  
4
10/10
Revisiting Middleware Communication ~ Remote Procedure Calls (RPC) Remote Procedure Calls (RPC) [I] [II] [III]   [Reading] Interface Definition Language (IDL), OMG IDL
 
11/10
Automated Teller Machine (ATM) ~ Client-Server implementation using Java Sockets

Java tutorial, Interfaces, Networking, Sockets, I/O

[Reading] Socket Programming [Java]  
5
15/10
Eid-ul-fitr Holidays (12-16 October, 2007)
6
17/10
Revisiting Middleware Communication ~ Distributed Objects and Remote Method Invocation (RMI) Distributed Objects, Java RMI Tutorial, Java RMI    
 
18/10
Revisiting Automated Teller Machine (ATM) ~ Client-Server implementation using Java Sockets       [Reading] Stream Oriented Communication, Section 2.5
7
24/10
Middleware Communication ~ Message Oriented Communication   Message Oriented Middleware (MOM), MOM - dsonline, MPI [Reading] Section 2.4 [Reading assignment] Handout-2 Java-1, Handout-3-OOP, Handout-4-OOP in Java, Handout-5-Java-features, Handout-6-OOP-Design
 
25/10
Getting Started with RMI Java RMI Tutorial, Java RMI   [Reading assignment] Annotations, Handout-7-Collections, Handout-8-OOP-Design
8
31/10
Client Server Models , Processes and Threads [programming] Thread, Mutual Exclusion, Java, Daemon threads [Reading] Section 3.1 [Reading assignment] Handout-10-Threads, Handout-11-Threads-2, Handout-12-Threads-3
 
01/11
Revisiting RMI      
9
05/11 - 14/11
OHT-1
10
15/11
Getting Started with Threads Java, Daemon threads   [Reading assignment] Handout-10-Threads, Handout-11-Threads-2, Handout-12-Threads-3
11
21/11
OHT-1 - Discussion - Post OHT 1 results [awardlist] [graph]
 
22/10
Revisiting Automated Teller Machine (ATM) ~ Client-Server implementation using Java RMI        
12
28/11
Revisiting Thread Programming, Thread Synchronization   Synchronization, Thread Safety, Non-blocking synchronization   [Reading assignment] Design Pattern, Factory Pattern
 
29/11
Revisiting Automated Teller Machine (ATM) using factory design pattern ~ Client-Server implementation using Java RMI Java RMI Tutorial, Java RMI    
13
05/12
Lecture I rescheduled to 10/12
Discussion ~ Semester Assignments proposal template   [Reading assignment] Section 3.4 Code Migration
14
10/12
Naming DNS, Directory Service, Jini, UDDI    
 
12/12
Revisiting Naming      
 
13/12
Discussion ~ Semester Assignments     Progress reports due: 10/01/08
15
17/12
Implementaion of Semester Assignments, QA - design issues        
 
19/12
Clock Synchronization Synchronization,NTP    
 
20/12
Eid-ul-azha Holidays (20-25 December, 2007)
16
26/12
Pre OHT 2 results [awardlist] [graph] - OHT-2 Post OHT 2 results [awardlist] [graph]
17
01/01
[01/01 - 06/01] Lectures rescheduled
18
09/01
Discussion      
 
10/01
Implementaion of Semester Assignments, QA - design issues        
19
16/01
Revisiting Clock Synchronization ~ Logical Clocks, Election Algorithms, Mutual Exclusion Logical Clocks    
 
17/01
Revisiting Clock Synchronization ~ Logical Clocks, Election Algorithms, Mutual Exclusion Mutual Exclusion, Distributed Transaction    
20
23/01
Semester Assignments ~ Progress        
 
24/01
Fault Tolerance Fault Tolerant Systems, Byzantine fault tolerance, Fault tolerance techniques for distributed systems   [Reading] Understanding fault-tolerant distributed systems
21
09/02
End Semester Exam - Post ESE results [awardlist] [graph]

Last updated: 13th of February, 2008.