Distributed Systems
95-702 - Spring 2016


[ Schedule | Syllabus | Course Description ]


Mike McCarthy
Office: Hamburg Hall 3025
Phone: (412) 268-4657
Office Hours: See home page
Home Page: www.andrew.cmu.edu/~mm6
Joe Mertz
Office: Hamburg Hall 3022
Phone: (412) 268-2540
Office Hours:
  • Wednesdays 1:00pm - 3:00pm
  • Thursdays 4:00pm - 6:00pm

Section A: Monday 03:00PM - 04:20PM - HBH 1000
Section B: Monday 04:30PM - 05:50PM - HBH 1000
Section C: Tuesday 03:00PM - 04:20PM - HBH 1000

Labs for each section are held on Wednesday and Thursday. You will be assigned a subsection (1, 2, etc) within your lab time. See below for details.

Teaching Assistants
Lab Sections

Teaching Assistants' Office Hours

Grading Scale

97.5 - 100 A+
92.5 - 97.4 A
90.0 - 92.4 A-
87.5 - 89.9 B+
82.5 - 87.4 B
80.0 - 82.4 B-
77.5 - 79.9 C+

Assignment Weights

  • 36% - Six programming projects equally weighted (6% per project)
  • 10% - Midterm exam #1
  • 12% - Midterm exam #2
  • 25% - Final Exam
  • 12% - Multiple labs (attendance plus completion)
  • 5% - In-Class Quizzes
  • 0% - Multiple practice quizzes on Blackboard

Project Assignments
and Late Assignments

  • One project assignment may be turned in late (up to one week) with no penalty.
  • This policy is meant to cover such issues as job interviews, travel and so on.
  • The other assignments must be turned in on time with a penalty of 10% per day late, starting the minute it is late.
  • You should not contact the instructors nor TAs when you use your one late allowance.
  • A minute late is late. Plan ahead so that you are not trying to submit with 10 seconds to go, and find that the Blackboard server clock is 11 seconds ahead of your laptop clock.
  • The TAs will automatically apply the late allowance to the first late project assignment. It can only be applied to the first late project and you cannot choose which assignment you want the allowance to apply to.
  • You cannot take partial late allowances (i.e. you can't take 2 days extra for one assignment hoping to leave the balance for another assignment).
  • Each student must be registered for (and is expected to regularly attend) a lab.
  • Labs are primarily hands-on activities, where assistance from fellow students and a TA is available.
  • You are allowed to help other students and get help from other students on labs (and labs only).
  • For attending your registered lab, you receive .25 points. For completing the lab within six days of your lab session, you receive .75 points.
  • Completed lab work may be shown to any DS TA during his or her office hours.
  • Lab attendance may be verified only by the TA running your assigned lab session.
  • Late labs (after the six days expire) receive zero credit. There are no exceptions to this policy.
In-Class Quizzes
  • Short quizzes will be randomly given throughout the semester.
  • They might be used at any time during the class.
  • Those not in class when they are distributed will not be able to make up the in-class quizzes.
  • In-class quizzes will be graded on a simple 1/0 scale, with full credit given if you are present and have a general understanding of the topic. There will be no partial credit.
  • In-Class quizzes are intended to incentivize being prepared-for and attending class.
Laptop and Phone Policy
  • Please close all laptops at the beginning of class.
  • Student use of laptops during class is at the discretion of the instructor.
  • The default is have them available for labs or in-class exercises, but to leave them closed otherwise.
  • When permitted, they should only be used to enhance class involvement and learning.
  • No email, chat, or other non-class related surfing is permitted.
  • Using mobile phones and other distractions are unprofessional behavior and are forbidden in class.

Policy on collaboration and cheating

Collaboration is not permitted in this class.
Cheating will be treated very seriously.

The following are OK:

  • Discussing the requirements of the project as long as no code is discussed
  • Discussing general approaches to solving the project as long as no code is discussed
  • Finding code samples from the textbook and class handouts.

The following are considered cheating:

  • Discussing code
  • Showing anyone your code
  • Looking at anyone else's code
  • Having anyone else produce code for you
  • Having anyone else correct your code for you
  • Copying code you find on the web
  • Copying code to or from a public system (e.g. GitHub) is cheating.

A student who shares code with another student will be treated the same as the person who does the copying. Keep your own code safe.

The first instance of cheating, whether on a test or homework project, will result in a failing grade for the course, and possible expulsion from the program.

In addition to any penalties imposed by the instructor, including failing the course, all cheating and plagiarism infractions will be reported in writing to the Associate Dean for the program, the Associate Dean of Faculty, the Dean of Student Affairs, and the Dean. They will review and determine if expulsion should be recommended. The report will become part of the student’s permanent record.

The appropriate people to refer to for help in homework projects are the TAs and the instructors. They can look at your code and help you with it. See them during office hours.

Communication Guidelines

Given that:

  • There are very many students in 95-702, so dealing with lots of individual email doesn't scale.
  • Other students often have the same questions you do
  • There are TA and instructor office hours

Regarding Class Absences:

  • Don't send us email, we don't need to know.
  • You are responsible for the content.
  • Talk to another (good) student about what happened in class.
  • Come to office hours if you have residual questions.
  • Don't come and ask: "what went on in class?"

Regarding Questions about Class Topics:

  • Ask in class. !!!
  • Use the Blackboard Discussion board to post your question.
  • Come to office hours if you have followup questions.

Regarding Homework Project Questions:

  • Ask in class. !!!
  • Use Blackboard Discussion board
  • Go to TA office hours.
  • Come to faculty office hours if the TAs have not been able to help.

Regarding Late Homework Project Submission:

  • Read the policy on late submissions
    • With so many students, they cannot change.
  • Do not email instructors nor TAs that your project will be late.
  • If your assignment is late (even one minute late) the TAs will apply the late allowance. Future late assignments will lose 10% per any part of a day.
  • Plan ahead.

Regarding What is On the Test:

  • Assume anything discussed in class or in lab or assigned as readings might be on the test.
  • Ask specific questions about this material in class.
  • We will review the topics covered in class the meeting before any test
  • Come to faculty office hours if you have specific questions
  • Don't ask "What is on the test?"
  • Don't ask "Will X be on the test?"

Regarding Grading Complaints:

  • See "Policy on complaints about grading" below

Regarding Resubmissions to Blackboard:

  • Blackboard now allows you to resubmit assignments without previous submissions being cleared.
  • Therefore you need not email the instructors nor TAs when resubmitting, for the latest submission will be graded.

If you have a serious personal problem that impacts your ability to proceed normally thorough the course, please don't hesitate to email or see either of the instructors. Those we certainly do want to hear about and are happy to help you with!

Role of TAs

We hope and intend that the TAs will provide you with valuable assistance.

  • TAs should:
    • Be present for lab sessions and office hours.
    • Mark you present for the assigned lab sessions that you attend.
    • Mark your lab work as complete.
    • Be helping students during labs and office hours, not doing their own work.
    • Help you understand the project assignments and class topics
    • Help you with general questions concerning your project assignment code.
    • Help you go over what your code should or should not be doing.
    • Grade your projects within a week of submission
  • TAs should not:
    • Find your code bugs.
    • Fix your code for you.
    • Show you their version of the code.
  • TAs are also very busy students, and cannot reply to your questions by email, chat, phone, Facebook, Twitter, SMS, smoke signal, or telepathy.
    • Except if they invite you to contact them.
    • Don't abuse the offer.
  • If you have complements or problems with the TAs assistance:
    • The instructors definitely want to know about it.
    • Please tell us about it before or after class, or during office hours.
    • Please do not send it in email, unless instructed by us.
Conflicts With Midterms and Final Exams
  • Exams take precedence over job interviews and trips.
  • No allowances or rescheduling will be given for missing the midterms or final exam because of a job interview, job trip, marriage, or good air fares.

Policy on complaints about grading

  • TAs need to make distinctions between excellent, good, and bad work.
  • Grading mistakes may occur.
  • Please contact the TA who graded your assignment about grading mistakes. 
  • It will be up to the TA to handle the complaint.
  • If you are still not satisfied with the TA's grade please contact your instructor.
  • Our initial reaction will be to support the TA's grade.
  • In some cases, however, we might agree with the student and ask for the grade to be adjusted.
  • Please make any grading concerns known to the TA immediately (within 1 week). 
  • Set up an appointment with the TA and get the matter resolved.
Use of Blackboard
  • There will be a blackboard site for the course on which grades will be posted.
  • All information about the course can be found at the web site: http://andrew.cmu.edu/course/95-702
Software Requirements
  • Several software downloads will be needed for this course. We will provide instructions on how to download, install and run the software.
Project Grading
  • A TA will normally be assigned to grade the projects.
  • Given the number of students in the course, we will sometimes use the common practice of selecting some sections of a code or project reflections and grading that carefully and assigning the assignment grade based on that segment(s).

Required Textbook

Distributed Systems Concepts and Design
Coulouris, Dollimore and Kindberg
Fifth Edition
ISBN-10: 0132143011
ISBN-13: 978-0132143011

NOTE: The new Fifth Edition is required. It is updated and much improved over the Fourth Edition. And it has content that the earlier edition does not have.

Learning Objectives

  • Describe the non-functional characteristics of distributed applications and differentiate between different types of middleware systems.
  • Design, implement, and deploy distributed systems using the prevalent models of web applications, web services, remote objects, and asynchronous messaging.
  • Understand the function and interplay of network protocols from ARP to application protocols that enable distributed systems on the Internet.
  • Demonstrate the technical ability to code solutions with core networking protocols.
  • Program solutions to run on all ranges of devices, including mobile, desktop, and cloud-based servers.
  • Understand the Network File System (NFS), the Andrew File System (AFS), and the Hadoop Distributed File System (HDFS)
  • Understand the challenge of time in a distributed system, and implement a means of assessing a distributed system's state.
  • Understand transactions and implement a two phase commit protocol.
  • Describe the difference and similarities between symmetric key and asymmetric key cryptography.
  • Describe the reasoning behind each step of several cryptographic protocols including variations on Kerberos and SSL.