95-702 — Distributed Systems for Information Systems Management — Spring 2019


[ Schedule | Syllabus | Course Description ]


Mike McCarthy
Office: Hamburg Hall 3015
Phone: (412) 268-4657
Office Hours
Home Page
Joe Mertz
Office: Hamburg Hall 3028
Phone: (412) 268-2540
Office Hours
Home Page
Marty Barrett
Office: Hamburg Hall 3040
Phone: (412) 268-3567
Office Hours:
- Tuesday 1:00pm - 2:30pm
- Tuesday 4:30pm - 5:30pm
- Thursday 1:00pm -2:30pm

Section A: Mondays 03:00PM - 04:20PM - HBH A301
Section B: Mondays 04:30PM - 05:50PM - HBH A301
Section C: Tuesdays 03:00PM - 04:20PM - HBH A301

Labs for each section are held on Wednesday and Thursday during these same times. 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-

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 Activities
  • 0% - Multiple practice quizzes on Canvas

Project Assignments
and Late Assignments

  • You have 7 grace days you can use to turn in projects late with no penalty.
  • This policy is meant to cover such issues as job interviews, travel and so on.
  • Any portion of a day late (e.g. 1 second) counts as one grace day used.
  • TAs will keep track of your late days, and after 7, a penalty of 10% per day late will be applied.
  • You should not contact the instructors nor TAs when you use your one late allowance; it will be automatically applied.
  • A second late is late. Plan ahead so that you are not trying to submit with 10 seconds to go, and find that the Canvas server clock is 11 seconds ahead of your laptop clock.
  • 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 before your next class lecture, 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 start of your next class lecture meeting) receive zero credit. There are no exceptions to this policy.

Research to improve the course:
For this class, we are conducting research on how learning is impacted by lab debriefing strategies. You will not be asked to do anything above and beyond the normal learning activities and assignments that are part of this course. You are free not to participate in this research, and your participation will have no influence on your grade for this course or your academic career at CMU. Participants will not receive any compensation. The data collected as part of this research will include student grades. All analyses of data from participants’ coursework will be conducted after the course is over and final grades are submitted. The Eberly Center may provide support on this research project regarding data analysis and interpretation. To minimize the risk of breach of confidentiality, the Eberly Center will never have access to data from this course containing your personal identifiers. All data will be analyzed in de-identified form and presented in the aggregate, without any personal identifiers. Please contact us, or Chad Hershock at hershock@cmu.edu, if you have questions or concerns about your participation.

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 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 maximum penalty for the first instance of cheating, whether on a test or homework project, is 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 Piazza to post your question.
  • Come to office hours if you have followup questions.

Regarding Homework Project Questions:

  • Ask in class. !!!
  • Use Piazza to post questions
  • 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

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 Canvas
  • There will be a Canvas 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.
  • Demonstrate deploying containers to cloud infrastructure
  • Understand the problem of distributed consensus and design solutions
Accommodations If you have a disability and have an accommodations letter from the Disability Resources office, we encourage you to discuss your accommodations and needs with either instructor as early in the semester as possible. We will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, we encourage you to contact them at access@andrew.cmu.edu.
Take care of yourself

Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding recreational drugs and excessive alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Ask for support sooner rather than waiting.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is available to help: visit their website or call 412-268-2922. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

CaPS: 412-268-2922

Re:solve Crisis Network: 888-796-8226

If the situation is life threatening, call the police:

On campus: CMU Police: 412-268-2323

Off campus: 911