School of Electronics and Computer Science:
COMP2005 Distributed Computing


Basic Information

SchoolDept- Electronics & Computer Science
Known asCOMP2005.
Session and SemesterSemester Two, 2011 - 2012
Credit10 Credit Points
Unit LeaderDr Corina Cirstea
TeachersProf Vladimiro Sassone
ModeratorsDr Tim Chown
Study36 contact hours, 24 coursework hours, 40 self study hours
AssessmentExamination 70%, Coursework 30%
Coursework1 programming assignment
TeachingLectures 24, Tutorials 12
Prerequisites and Exclusions

Prerequisites: COMP1003 - Advanced Programming and COMP1004 - Programming Principles.

ReferralOn referral, this unit will be assessed 100% by examination.
Syllabus Approved 

Description

Aims

To enable the student to build concurrent and distributed applications.

To teach the theory and practice of concurrent and distributed systems.

To expose students to the technologies of contemporary distributed middleware, including distributed objects and messaging systems.

To give a clear understanding of technology in terms of the underlying fundamental principles.

Learning Outcomes

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

  1. Concurrency and interference among threads
  2. Client Server models, in particular for the web
  3. Distributed Objects
  4. Message Oriented Middleware
  5. Distributed Databases and Transactions
  6. Peer-to-Peer Systems
  7. Distributed Algorithms

Intellectual Skills

Having successfully completed the module, you will be able to:

  1. Choose between alternative paradigms and technologies for solving problems in distributed systems
  2. Explain the fundamental concepts underlying these technologies
  3. Understand the use and impact of concurrency on the design of distributed systems

Practical Skills

Having successfully completed the module, you will be able to:

  1. Build concurrent Java programs, based on a clear understanding of the fundamental concepts
  2. Build a Client Server solution in Java
  3. Build a Distributed Objects solution in Java
  4. Connect a distributed system to a database and cope with the problems of interference

Topics Covered

  • Concurrent Computing in practice
    • Implementation issues (Java and Promela, synchronised methods, monitors)
    • Threads and processes
    • A comparison of threading models
    • Threads in practice
  • Distributed systems in practice
    • Introduction to client/server computing
    • Sockets for client/server communication
    • Distributed Objects, Remote method invocation (RMI)
    • Transaction Processing
    • Message Passing (MQ and JMS)
    • Peer-to-peer Systems
    • Distributed Algorithms

Teaching and learning activities

Teaching methods include

  1. Lectures and Practical Demonstrations
  2. Self-study worksheets on practical issues

Learning activities include

  1. Question and answer sessions in tutorial periods
  2. A coursework on building distributed systems

Methods of assessment

Assessment methodNumber% contribution to final mark
Examination [exam]170
Coursework [cwork]130

Feedback and student support during module study

  1. One period a week is a tutorial where the lecturer answers questions and discusses the worksheets.
  2. Coursework feedback will be provided within three weeks of the submission deadline.

Relationship between the teaching, learning and assessment methods and the planned learning outcomes

The knowledge, understanding and intellectual skills listed will be taught in lectures. You will re-enforce your learning of these skills, and supplement them with the practical skills by attempting the self-study worksheets. In completing the coursework you will demonstrate your mastery of all the skills listed.

The purpose of the exam is to test understanding of topics that are difficult to fully assess in an assignment.

Resources

Core Resources

  • Coulouris, Dollimore and Kindberg, Distributed Systems - Concepts and Design, Addison Wesley 2005 (fourth edition)

Background Resources

  • Emmerich, W, Engineering Distributed Objects Wiley, 2000
  • Flanagan, Farley, Crawford, and Magnusson Java Enterprise in a Nutshell 2nd Edition, O'Reilly, 2002
  • Mohr, S, Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ, Wrox Press, 1999

Taught to

COMP2005

Pt II BSc Computer Science (Compulsory)
Non-existing cohort: "csBScAi2" (Compulsory)
Non-existing cohort: "csBScDs2" (Compulsory)
Non-existing cohort: "csBScIm2" (Compulsory)
Pt II MEng Computer Science with Artificial Intelligence (Compulsory)
Pt II MEng Computer Science (Compulsory)
Pt II MEng Computer Science with Distributed Systems & Networks (Compulsory)
Pt II MEng Computer Science with Image and Multimedia Systems (Compulsory)
Pt II MEng Computer Science with Mobile and Secure Systems (Compulsory)
ECS Socrates Students (Optional)
Pt II BEng Software Engineering (Compulsory)
Pt II MEng Software Engineering (Compulsory)

Students who are not registered on an ECS approved programme may take this module subject to meeting its pre-requisites and the availability of resources. To confirm this, please can you contact the module leader (as listed above) in the first instance. They will then refer you on to the appropriate director of studies for formal approval of your selection.

Change Log

2011-04-04 18:59:37.657 - Roll script