WPI Worcester Polytechnic Institute

------------------------------------------

Distributed Computing Systems

CS 4513
C-term 2016

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. Students may be expected to design and implement programs that emphasize the concepts of file systems and distributed computing systems using current tools and languages. (Undergraduate credit may not be earned both for this course and for CS 502.)

Recommended background: CS 3013, CS 3516, and system programming experience.

Goals

Objectives

Info

Grading

Reading

Slides

Projects

Timeline

Samples

Course Information

People

Professor: Mark Claypool
email: claypool at cs.wpi.edu
office hours: Mo 2-3pm, Th 3-4pm, Fr 10-11am
place: Fuller Labs, room B24
phone: x5409

Teaching Assistant: Salah Ahmed
email: sahmed2 at cs.wpi.edu
office hours: Mo 3-5pm, We 1-3pm
place: Fuller Labs, room A22
phone: -

Email lists (please use appropriately):
Prof + Assistants: cs4513-staff at cs.wpi.edu
Class: cs4513-all at cs.wpi.edu

cs4513 question-answer forum:
https://ia.wpi.edu/cs4513/forum.php

Time and Place

Days: Tu, Fr
Time: 2:00pm - 3:50pm
Place: SL305

Book

You should already own a textbook from your Operating System course. You will need this for material on file systems. E.g., Andrew S. Tanenbaum, Modern Operating Systems, 3rd edition, Prentice Hall, 2008. Other Operating Systems books (e.g., recent books by Silberschatz) may be suitable.

Topics

Here is the list of topics covered in this course (not necessarily in order of appearance):

Info

Grading

Reading

Slides

Projects

Timeline

Samples

Grading Policy

Graduate Credit

This course may be taken for graduate credit by students in the BS/MS CS program. Written permission from the professor is required, obtained via the Computer Science BS/MS Course Selection & Approval form. In order to receive graduate credit, students who have signed up for this program need to perform at an "B" level or better on all projects and the exams. In addition to the above, admitted BS/MS students may request additional graduate credit by registering for 1/6 ISP, via the Registrar's Undergraduate Independent Study (ISP) Registration form, and completing a significant programming project (up to 50 hours of additional work). Such a request, and all paperwork, needs to be done within the first week of class.

Breakdown

Final grades will be computed as follows:

There will be programming projects done to implement code relevant to file systems and part of or even all of a distributed system. The implementation can be done in a variety of environments and languages, with at least one significant program in C++. Programming will not be taught as part of this course. System calls and other aspects of Unix will be introduced as needed and as the course progresses. The grading policy for each project will be provided at the time of the assignment. In general, each project has a basic objective for the majority of the assignment points. There may be an extended objective for demonstrating additional work and understanding. Projects, including all data and source code, as appropriate, will be turned in online as specified in the writeups.

There will be two in-class exams. The first is roughly mid-way through the term and the second on the last day of the term. There is a remote possibility of a pop quiz for which no advance notice will be provided. Exams will be closed book and closed notes, unless otherwise indicated. The majority of each exam will cover basic ideas and objectives of the class with a few questions testing additional understanding and insight.

Final grades will reflect the extent to which a student has 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 projects, homework and exams have been met. A grade of an "A" will indicate significant achievement beyond the basic objectives. A grade of a "C" will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there are exceptional, extenuating circumstances. Similarly, no makeup exams will be given unless there are exceptional, extenuating circumstances.

Late Policy

Exams are done, and due, in class. Projects are due online at 11:59pm on the due date, unless otherwise noted. Late projects will be accepted with a 10% penalty of the total assignment value for each day (24 hours) late, with the weekend counting as one day. Projects will not be accepted more than one week beyond the due date.

Class Conduct

This course is intended for serious students. Participants will be expected to adhere to all rules of professional behavior. It is to be emphasized that knowledge of material and professional behavior are tied together; failure in one of them negates any excellence in the other.

You may use your own computer during the lectures, but do not just follow along - research has shown that students who are "active" and take notes during class retain more information, even if they do not use those notes later. Take notes! Do this on paper or with the computer. So, laptop use in class is acceptable as long as it is restricted to note taking, or for a limited amount of information seeking. Any other activity distracts you or the people around you, preventing thoughtful participation in the class.

Also, those who multi-task (e.g., with laptops or cell phones during class) actually learn less. In fact, those who believe that they are expert multi-taskers, often do the worst! Productivity can be reduced by as much as 40 percent when switching tasks. The "multi-tasking" state of mind has been labelled continuous partial attention. During class, try to limit multi-tasking with any device you have - stay with the task on hand of paying attention to the lecture.

All work is expected to be done individually. As such, students are encouraged to discuss their work with each other, but are also expected to do the work by themselves.

Any breach of professional ethics as evidenced, for example, by copying exams or code for the projects, downloading code from the Internet, cooperating more than just by discussions in study groups, misusing computer resources, or using outside help of any kind, will be considered adequate reason for an NR in the course and a report to the Dean of Students. Refer to the official WPI statements on Academic Honesty for details. Remember this warning - any breach of ethics will earn you an NR and an official report. When in doubt, ask!

Info

Grading

Reading

Slides

Projects

Timeline

Samples

Reading

The list of reading will be posted here, roughly in the order covered in class.

File Systems

Cloud Computing

Network Games

Info

Grading

Reading

Slides

Projects

Timeline

Samples

Slides

Slides from the books, papers, and select other materials will be available shortly before or after they are presented.

Admin pdf pptx
File Systems pdf pptx
[HLM02] pdf pptx
Sockets pdf pptx
Distributed File Systems pdf pptx
Distributed Systems Overview pdf pptx
Game Synchronization Notes pdf -
Network Games pdf pptx
Peer-to-Peer pdf pptx
Last Class pdf pptx
Review pdf pptx

Info

Grading

Reading

Slides

Projects

Timeline

Samples

Projects

Projects and due-dates will be placed here as they are defined. Here is what we have so far:

Info

Grading

Reading

Slides

Projects

Timeline

Samples

Samples and Links

This section has any samples discussed in class, exam preparation material, tutorials or any other demonstration-type class materials.

For development questions, consider the cs4513 question-answer forum. Both the professor and TA will look to answer all questions there, but students can also answer each other's questions. You may even find your question has been answered already!

The utility sysbench provides benchmarking for Linux, testing CPU, memory, File I/O and (when compiled in) SQL. See also How to Benchmark Your System with Sysbench.

A tutorial on the use of sockets can be found in Beej's Guide to Network Programming.

Exam materials:

We will read some research papers for this class. This is a good (short) paper on how to read a paper:

For this class, you should do at least the first two reading passes, mentioned in the paper.

Info

Grading

Reading

Slides

Projects

Timeline

Samples

[Return to the WPI Homepage] [Return to Mark Claypool's Homepage]


Mark Claypool (claypool at cs.wpi.edu)