Distributed Computing Systems

CS 4513
B-Term 2010

This is a 4000-level undergraduate course during which you will study the concepts, design, and implementation of distributed computing systems. The course will:–

  1. Continue the study of computer operating systems begun in CS-3013, specifically the study of file systems
  2. Introduce the concepts of distributed computing and learn about protocols needed for their implementation
  3. Reinforce the concepts of concurrency in computing environments

During this course, students will work on team project to define, design, and implement a distributed application for Android phones.

Index

Note: The main portion of this course web-site is password protected, including the Lecture Notes and Additional Project Notes. To access these, use user ID and password given in class must be supplied.


General Overview

This course will be a combination of lectures and class discussion, one major programming project, and quizzes and/or tests.

Syllabus of Topics

The following topics are typically included in CS-4513. It possible that some topics may be added or changed, depending upon the interests of the class and the needs of the programming project.

·                     File systems

·                     Remote Procedure Call and Distribute File systems

·                     Naming  and Replication in Distributed Systems

·                     Atomic Transactions and Distributed Atomic Transactions

·                     Map-Reduce and Google-style distributed computation on a massive scale

·                     Authentication, including an introduction to encryption.

The File Systems topic is a continuation of the Operating System course. You will be responsible for all of the material covered in Chapter 4 and in Section 5.4 of Modern Operating Systems, 3rd edition, by Andrew S. Tanenbaum.

Students will be expected to be familiar with and to discuss the relevant sections of all reading material assigned during the term, whether mentioned in lectures or not.

Distributed Programming Project

The practical component of this course will be a single, large, team programming project based on Android phones. Students will be divided into teams of about five people. Each team must propose and design a distributed application for the Android phone that is based on physical proximity to other users.

The application may be anything you wish, but it must be distributed across at least three phones and scalable to several dozen phones. It must detect and recognize other copies of itself in the immediate vicinity and connect with those, so long as they stay near each other.

Teams will be expected to propose their projects by the end of the second week, to report progress to the class by the end of the fourth week or the start of the fifth week, and give a final presentation on the last day of class.

For additional information about Android phones, see below. For additional information about the project, see the following links:–

            Week1_AndroidProjectAssign.ppt
            Week1_AndroidProjectAssign.pdf

Quizzes, Exams, and Class Participation           

In lieu of a major exam for the course, there will be one quiz per week covering the recently introduced material. Quizzes will be held at 9:00 AM sharp and will last about 15-20 minutes. Up to two quizzes may be forgiven if arrangements are made with the professor in advance.

Class participation is an essential part of the grade for the course. If you attend lectures but never say anything or engage in discussions, it would likely reduce your grade by one full letter or more.

top


Recommended Background

The official course description on the WPI Computer Science web site says that this course “extends the study of the design and implementation of operating systems begun in CS 3013 to distributed and advanced computer systems. Topics include principles and theories of resource allocation, file systems, protection schemes, and performance evaluation as they relate to distributed and advanced computer systems.”

You must have a solid background CS-3013 or an equivalent Operating Systems course. A full understanding of processes, threads, virtual memory, interrupts, and device handling is assumed.

You will also need to know something about computer networks, protocols, and the 7-layer OSI stack. This is covered in CS-3516, Computer Networks. For those have not taken CS-3516 (or its predecessor, CS-4514), a brief tutorial will be offered at a time and place to be arranged in the first class. The following slides include the material of the tutorial. (.ppt, html). A tutorial on the use of sockets can be found here:–

http://beej.us/guide/bgnet

top

 


Course Logistics

CS-4513 meets for two 2-hour classes per week for a seven-week undergraduate term (28 hours). There will be no class on November 26 (Thanksgiving Day holiday).

Time and Place: Tuesdays and Fridays, 9:00 — 10:50 AM, Salisbury Labs 305
October 26 — December 14, 2010
No class on
Friday, November 26 (Thanksgiving Day holiday)

Professor: Hugh C. Lauer
Email: <professor’s last name>@cs.wpi.edu
Office hours: by appointment, or see chart below
Office: Fuller Labs, room 235

Teaching Assistant: Wei Zhang
Email: weizhang **at** cs.wpi.edu
Office hours: See chart below
Office: Fuller Labs 317

Textbooks:     You need one of the following from an Operating System course:–

o   Andrew S. Tanenbaum, Modern Operating Systems, 3rd edition, Prentice Hall, 2008.

o   Silberschatz, Galvin, and Gagne, Operating Systems Concepts, John Wiley and Sons, 7th edition 2005 or 8th edition 2009.

 

Class e-mail lists: The following two lists are in the domain cs.wpi.edu:–

o   cs4513-all  — to reach all students, the TA, and the professor

o   cs4513-staff — to reach just the professor and the TA

Course web site: http://www.cs.wpi.edu/~cs4513/b10

Students needing to be absent from class should notify the professor by e-mail or in person as soon as possible, especially if a quiz is scheduled for the day of absence!

top


Office Hours and Schedule

 

Monday

Tuesday

Wednesday

Thursday

Friday

8:00

 

 

 

 

 

9:00

 

Class

 

WZ

Class

10:00

 

 

11:00

 

 

 

 

 

Noon

 

 

 

 

HCL
(if no CS
colloquium)

1:00

 

HCL

 

 

 

2:00

 

WZ

 

HCL

3:00

 

 

 

 

4:00

 

 

 

 

 

 

top


Grading Policy

Final grades will be computed as follows:

  • Quizzes: approx. 40%
  • Team programming project: approx. 40%
  • Class participation: approx. 20%

Final grades will reflect the extent to which you have demonstrated understanding of the material, and completed the assigned projects. The base level grade will be a "B," which indicates that the basic objectives on assignments and exams have been met. A grade of "A" will indicate significant achievement beyond the basic objectives and a grade of "C" will indicate not all basic objectives were met, but work was satisfactory for credit.

If there are any circumstances that limit or restrict your participation in the class or the completion of assignments, please contact the professor as soon as possible in order to work something out.

Testing

Weekly quizzes (see above) will be closed book and closed notes unless announced otherwise. There is no make-up for missed quizzes.

If you have a planned absence during the term — for example, an interview, religious holidy, off-campus project activity, or other responsibility — please inform the professor in advance. Up to two quizzes may be forgiven.

Skipping the final quiz is tantamount to taking an NR in this course.

Academic Honesty

Any violation of the WPI guidelines for academic honesty will result in no credit for the course and referral to the Student Affairs Office. More information can be found at

http://www.wpi.edu/Pubs/Policies/Honesty/policy.html

For individual assignments, you may consult with classmates, friends, colleagues, and others on the general idea of a problem, but you must then construct the final solution on your own and write it in your own words or your own coding style.

Copying is not allowed. Borrowing algorithms from references, on-line sources, and other students is permitted provided that you cite your sources in your write-up and that you write out the solution in your own words or coding style!

For team assignments, it is expected that all team members participate with roughly equal levels of effort. When you put your name on a team submission of an assignment, you are testifying not only that you have fully participated in that assignment, but also your teammates are also testifying that you have fully participated.

Late Policy

Unless you have arranged otherwise with the professor at least one day prior to the due date, late submissions will be penalized 10% of total assignment value per day or partial day (with the weekend counting as one day), and no assignments will be accepted after seven days beyond the due date. All assignments are due at the time specified on the assignment. Projects must be submitted as directed in class. Exceptions to these rules can be made only beforehand.

top


Android Phones

The major project of this term is based on Android phones. The professor has received a grant of eighteen Motorola Droid phones from Google specifically for this course. In addition, students may use their own Android phones of any variety.

Once a team has been established, the team may sign out one Droid phone for experimentation, plus several more when the project definition has been approved. All Android phones must be returned at the completion of the course. If a team member drops out or stops participating, any phones in the custody of that team member must be returned immediately and signed out by other team members.

Failure to return signed out Android phones at the end of the course will be reported to the Campus Police as theft.

To program Android phones, you will need access to the Android Software Development Kit, version 2.2 at the Android developer web site here:– http://developer.android.com. We have arranged for this to be installed in the public computer laboratories at WPI. In addition, there a numerous resources on the web about programming Android phones. Android phones are normally programmed in Java.

Prior to starting the project, it is worthwhile to program the “Hello, World!” application on your phone. This can be found on the Android developer web site.

The Droid phones as distributed by Google come with 30 days of “free” Verizon Wireless voice and data service (from the day of activation). You will not need this. Please don’t try to use it. You can connect via a WiFi network by the usual methods.

When you first turn on one of these Droid phones, it wants you to go through the process of activating this account, along with an Android tutorial. The following web site explains how to skip the activation and tutorial step:–

http://gizmodo.com/5585143/how-to-skip-the-android-tutorial

A few of the phones already have been used and will not automatically start the tutorial.

top


BS/MS Credit

Students wishing to receive both BS and MS credit for this course must complete an additional research project. The project for this term is specified here (.doc, html).

Note:  If you wish to earn BS-MS credit, you must apply to the Professor at the start of the term and get a signature on the appropriate form. If you wait until after the course is completed, or after your BS-MS project is completed, you will not qualify for BS-MS credit.

top


Reference Materials   

The list of reference materials for this class has been moved. It can be found by following the link labeled “Reference Materials” at the top of this web page.

 

top