Course Catalogue

Module Code and Title:       CSC311 (Elective II)  Distributed Computing       

Programme:                          BCA

Credit Value:                         12

Module Tutor:                       Vijay Gurung

General Objective: The purpose of this module is to provide a clear understanding of the concepts that underlie a distributed computing system along with related design and implementation issues. Students will learn about fundamental models of distributed computing (to capture the needs of modern distributed applications), as well as major techniques for the design and analysis of distributed data structures and algorithms.

Learning Outcomes – On completion of the module, learners will be able to:

  1. Explain concepts that underlie distributed computing systems along with related design and implementation issues.
  2. Describe the key mechanisms and models for distributed computing.
  3. Describe the theoretical and conceptual foundations of distributed computing.
  4. Discuss the inherent difficulties that can arise due to the distributed-ness of computing resources.
  5. State the different types of distributed systems and their flaws and advantages.
  6. Describe the problems associated with developing distributed applications.
  7. Use distributed algorithms for locking, synchronization and concurrency, scheduling.
  8. Apply parallel and distributed algorithms in problem solving.
  9. Explain the security challenges faced by distributed systems programs.
  10. Describe major tools and techniques that allow programmers to effectively program the parts of the code that require substantial communication and synchronization.

 

Learning and Teaching Approach:

Approach

Hours per week

Total credit hours

Lecture & discussions

3

45

Tutorial (Problem session)

1

15

Lab Practical

2

30

Independent study

2

30

Total

120

 

Assessment Approach:

A. Individual Assignment: Portion of Final Mark: 10%

Students should submit two assignments of 1000-1500 words related to Middleware and Cloud Computing to obtain this 10%. The first one will be before the midterm and it constitutes half of the total 10% allocated. The second one will be after them midterm. 40% will be awarded for explanation of purpose, 40% for content and 20% for illustrating its applications

B. Project/Case Study: Portion of Final Mark: 10%

Students are given a problems related to the distributed computing system to obtain 10% of the assessment. Each student will complete a case study of 500 words in the class and they will solve that case inside the classroom. Students will analyse the case, come up with a proper solutions and give their own views and opinions. 40% will be awarded for solving the problem, 40% for analysing the problem and 20% for the overall report.

C. Presentation on Project/Case Study: Portion of Final Mark: 10%

The presentation is based on the project or case study that the students carry out. The presentation criteria are set, so that students are judged objectively. Separate mark is allocated for group synergy; this is to encourage collaborative learning among the students. The presentation will be approximately 10-12 minutes, and include power points slides.30% will be awarded for content of the presentation, 15% for preparedness, 10% for timing, 15% for group coordination, 15% for handling of Q&A session and 15% for presentation skill.

D. Class Test: Portion of Final Work: 10%

This is a written test conducted within the class for duration of 30-40 minutes and cover 2-3 weeks of material. There will two such tests, one before midterm comprising of topics from the beginning to the quarter point of the subject matter and the other after the midterm comprising of topics from after the midterm to quarter pointer after midterm.

E. Lab Practical Exam: Portion of Final Mark: 10%

This component assesses the student’s practical knowledge. They will be assessed on their program designing skills, maintaining syntax, use of functions, testing and debugging a code. These tests require the students to answer/solve 4 questions/problems. 35% will be awarded sub tasks completed, 35% Techniques used for each sub task, 10% for timing and 30% for output.

F. Midterm Examination: Portion of Final Mark: 20%

This a college wide examination conducted at the half-way into the semester. This examination is conducted for 1 hour and 30 Minutes and it includes all topics till the half-way point in the subject matter.

Areas of assignments

Quantity

Weight

A.    Individual Assignment

2

10%

B.    Project/Case Study

1

10%

C.   Presentation

1

10%

D.   Class Test

2

10%

E.    Lab Practical Exam

1

10%

F.    Midterm Exam

1

20%

Total Continuous Assessment (CA)

 

70%

Semester-end Examination (SE)

 

30%

 

Prerequisites: CSC206

Subject Matter:

  1. Introduction to Distributed systems
  2. Goals
    • Types of distributed systems
    • Architecture styles
    • System Architecture
  3. Architectures Vs Middleware
    • Self-management in distributed systems
    • Processes
    • Threads
    • Virtualization
    • Clients
    • Servers
    • Code Migration
  4. Communication and naming
    • Communication
    • Fundamentals
    • Remote Procedure Call
    • Stream oriented communication
    • Message oriented Communication
    • Multicast communication
  5. Naming
    • Names, Identifiers and addresses
    • Flat naming
    • Structured naming
    • Attribute based naming
  6. Synchronization, Consistency and Replication
    • Synchronization
    • Clock synchronization
    • Logical clocks
    • Mutual exclusion
    • Global positioning of nodes
    • Election Algorithms
  7. Consistency and Replication
    • Introduction
    • Data centric consistency models
    • Client centric consistency models
    • Replica management
    • Consistency protocols
  8. Fault tolerance
    • Introduction
    • Process resilience
    • Reliable client server communication
    • Reliable group communication
    • Distributed commit
    • Recovery Security
    • Introduction of secure channels
    • Access control
    • Security management
  9. Conceptual Clustering
    • Introduction to Conceptual
      • Conceptual clustering vs. data clustering
      • Basic conceptual clustering algorithm
  1. Cloud Computing
    • Introduction to cloud computing
    • Software as a service (SaaS)
    • Platform as a service (PaaS)
    • Infrastructure as a service (IaaS)
    • Public cloud
    • Private cloud
    • Hybrid cloud
  2. Distributed systems
    • Distributed file systems
    • Distributed web based systems
    • Distributed object based systems

Reading List:

  1. Essential Reading:
    • Andrew S. Tanenbaum and Maarten Van Steen, (2008). “Distributed Systems – Principles and Paradigms”, Prentice Hall of India, Pvt. Ltd, Second edition.
    • Sunita Mahajan. (2013).Distributed Computing. Oxford University Press. Second edition.
    • Distributed Computing: Fundamentals, Simulations and Advanced Topics (2nd ed.). (2014). Wiley India Private Limited.
    • Distributed Computing: Prin & App: Principles and Applications (1st ed.). (2008). Pearson Education.
  2. Additional Reading:
    • Pradeep K Sinha, (2001). “Distributed Operating Systems, Prentice-Hall of India, New Delhi.
    • Jean Dollimore, Tim Kindberg, George Coulouris, (2005). “Distributed Systems -Concepts and Design”, Pearson Education, Fourth edition.
    • L. Liu. (2004). “Distributed Computing Principles and Applications”, Pearson Education.

Date: May 30, 2015