CS:5620 Distributed Systems and Algorithms
Fall 2016

3:30-4:45 TTh Room 150 SH (Schaeffer Hall)


Instructor:
Sriram V. Pemmaraju sriram-pemmaraju@uiowa.edu
Virtual Office Hours: 1:30-2:30 M, 10:30-11:30 W, 2:00-3:00 F (drop-in) and by appointment

Course website: http://www.cs.uiowa.edu/~sriram/5620/fall20/
Department website: http://www.cs.uiowa.edu/
Course modality: Face-to-face*, 3:30-4:45 TTh Room 150 SH (Schaeffer Hall)

[* All UI courses will be delivered virtually after Thanksgiving Recess. This class will continue to meet on TTh 3:30-4:45 for lectures via Zoom rather than in 150 SH.]

Course content
Modern life is increasingly dependent on networked services such as web searching, e-commerce, video-conferencing, stock trading and net banking, social media, video streaming, etc. Networks of sensors provide a variety of specialized services such as testing integrity of bridges, assessing nutrient content of farm soil, etc., whereas networks of mobile devices are being used for tasks such as gathering real-time blood pressure readings from patients, providing health-related alerts, etc. Also, with the increasing need to quickly process massive amounts of data, distributed systems are playing a key role in "big data" analytics. While physical networks provide the underlying connectivity, various services built on top of these networks are examples of distributed systems. The objective of this course is to study some of the foundational issues that arise in the design of distributed systems (but which may be absent in centralized or sequential systems). These issues include computing with local or partial knowledge, faults and designing fault-tolerant systems, asynchrony and the cost of simulating synchrony, randomization versus determinism in distributed settings, achieving parallelism and trade-offs between communication and computation. The course material is organized into 5 parts, as follows:

If there is time, we will cover an additional topic -- chosen from self-stabilizing systems as an approach to fault-tolerance, wireless protocols, the notion of time and causality in distributed systems -- and this will form the Part VI of the course. It is worth noting that because of my interests and expertise, this course will focus more on "Distributed Algorithms" and less on "Distributed Systems". My hope is that the algorithm-design principles and analysis techniques you will learn in this course will help you approach a wide variety of distributed systems problems.

Prerequisite
The official prerequisites for the course are undergraduate algorithms (CS: 3330 or equivalent) and undergraduate operating systems (CS: 3620 or equivalent). Background in undergraduate algorithms will help you precisely describe distributed algorithms in pseudocode or in plain English, understand and effectively use asymptotic notation, understand and construct simple proofs of correctness of distributed algorithms, understand and perform simple round-complexity and message-complexity analysis of deterministic and randomized distributed algorithms. Some proficiency in or a willingness to brush up basic discrete probability will be useful. Since I will be taking a somewhat theoretical approach to distributed systems, a background in operating systems will not be critical.

Textbook
There is no required textbook for the course. All of the material will come from three sets of lecture notes, freely available online:

  1. Christoph Lenzen's lecture notes,
  2. Roger Wattenhofer's lecture notes and
  3. Gopal Pandurangan's lecture notes.
As I cover material, I will assign readings each week from various chapters in these notes.

Teaching Assistants
There is no Teaching Assistant (TA) assigned to this course.

Grading
Plus/Minus grading will be used for the course. Grades will also be published on ICON. There are two components of evaluation that will collectively determine your grade.

Homework solutions and solutions to the midterm will be posted on the course page (http://www.cs.uiowa.edu/~sriram/5620/fall20/). These will also form a significant study resource for students.

Attending classes
Attendance will not be marked, however there is a strong correlation between attendance and performance in the course. Since this course has a face-to-face modality, the current plan is to have in-person classes until the Thanksgiving break. According to University policy, all classes including this one, will be online only after the Thanksgiving break. So my advice is this: if you do not feel sick (i.e., you do not have even mild symptoms) and are not required to self-isolate or quarantine, join us in the classroom. Otherwise, please stay at home. I will also run a zoom session from the classrooom for students who are unable to be physically present in class, but want to participate in live lectures. This will be your best option, if you choose to stay at home. Finally, I will also record all lectures and post videos on ICON. Keeping up with the course material by watching a recorded lecture is another option available to you. I will not need an excuse for your absence, I will appreciate knowing your plans ahead of time. If you do want to participate in a live zoom session during class time, you will need to let me know the previous day. I will not start a zoom session if I receive no requests.

Late Submissions
In general, late submissions will not be accepted and make-up exams should not be expected. To get credit for assignments you should plan on turning in what you have on time. Having said this, I completely understand this this is a highly unusual semester and there may be COVID-19-related or unrelated reasons for a student to not complete their work on time or be present at the midterm. So I will be flexible and will follow the University and College of Liberal Arts and Sciences (CLAS) policies and advice on student absences. Students will be allowed to make up missed exams and assignments due to illness (COVID-19-related or otherwise), quarantine or self-isolation, certain University activities, circumstances beyond a student's control (such as a death in the family), or mandatory religious obligations. See http://clas.uiowa.edu/students/handbook/attendance-absences for more details on this policy.

The key to completing homeworks on time is starting early and asking questions. I will be glad to help with any questions you may have on homeworks, either by e-mail or in person. So please feel free to visit me often during my virtual office hours and if necessary, outside office hours as well by making an appointment.

Class Behavioral Expectations
Students are expected to comply with University policies regarding appropriate classroom behavior as outlined in the Code of Student Life. This includes the policies and procedures that all students have agreed to regarding the Steps Forward for Fall 2020 in response to the COVID-19 pandemic. Particularly, all students are required to wear a face covering when in a UI building, including a classroom. In addition, the density of seats in classrooms has been reduced. In some instances, this will allow 6 feet or more of distance while in other cases, it may be less. Regardless, wearing a face covering and maintaining as much distance as possible are vital to slowing the spread of COVID-19. With regards to behavior not related to COVID-19, showing up to class late, leaving your cell phone ringer on, reading a newspaper in class, chatting with your friends, burying your head in laptop, etc., can be quite distracting to the instructor and to fellow students. If you are in class, it is your responsibility to pay attention and to make sure that you are not doing anything that makes it harder for fellow-students to pay attention. In the event that a student disrupts the classroom environment through the failure to comply with the reasonable directive of an instructor or the University, the instructor has the authority to ask that the student immediately leave the space for the remainder of the class period. Additionally, the instructor is asked to report serious or repeated incidents to the Office of Student Accountability for the possibility of additional follow-up. For more information consult the CLAS statement on Student Rights and Responsibilities at http://clas.uiowa.edu/students/handbook/student-rights-responsibilities. Students who need a temporary alternative learning arrangement due to COVID-19 should contact Student Disability Services (phone: +1 319 335-1462).

Class Recordings: Privacy and Sharing
Some of the sessions of a course could be recorded or live-streamed. Such recordings/streaming will only be available to students registered for this class. These recordings are the intellectual property of the faculty, and they may not be shared or reproduced without the explicit, written consent of the faculty member. Further, students may not share these sessions with those not in the class or upload them to any other online environment. Doing so would be a breach of the Code of Student Conduct, and, in some cases, a violation of the Federal Education Rights and Privacy Act (FERPA).

Effort Level
According to University guidelines, a student should expect to work for 2 hours per week (outside the classroom) for each course credit. This is a 3 credit course and so you should expect to spend on average about 6 hours per week studying lecture notes and the assigned readings, answering reading response questions, solving homework problems, preparing for exams, etc. However, the "6 hours per week" estimate is an average and also presupposes that you attend classes regularly, pay attention in class, visit the instructor your questions during office hours, etc.

Administrative Home
This course is run by the Department of Computer Science which is part of the College of Liberal Arts and Sciences. This means that class policies on matters such as the add/drop deadlines, the second-grade-only option, and other related issues are governed by the College of Liberal Arts and Sciences (CLAS). Questions may be addressed to 120 Schaeffer Hall, or see the CLAS Academic Policies Handbook at http://clas.uiowa.edu/students/handbook. Students wishing to add or drop this course after CLAS deadlines must receive the approval of the Dean of CLAS. Details of the University policy of cross enrollments may be found online at https://provost.uiowa.edu/files/provost.uiowa.edu/files/crossenroll.pdf.

Nondiscrimination in the Classroom
UI is committed to making the classroom a respectful and inclusive space for all people irrespective of their gender, sexual, racial, religious or other identities. Toward this goal, students are invited to optionally share their preferred names and pronouns with their instructors and classmates. The University of Iowa prohibits discrimination and harassment against individuals on the basis of race, class, gender, sexual orientation, national origin, and other identity categories set forth in the University's Human Rights policy. For more information, contact the Office of Equal Opportunity and Diversity at diversity@uiowa.edu or diversity.uiowa.edu.

Accommodations for Disabilities
The University of Iowa is committed to providing an educational experience that is accessible to all students. A student may request academic accommodations for a disability (which includes but is not limited to mental health, attention, learning, vision, and physical or health-related conditions). A student seeking academic accommodations should first register with Student Disability Services (SDS) and then meet with the course instructor privately in the instructor's office to make particular arrangements. Reasonable accommodations are established through an interactive process among the student, instructor ,and SDS. For more information, see http://sds.studentlife.uiowa.edu/.

Academic Honesty
The components of evaluation for this course (reading responses, homeworks and exams) are meant to test your individual mastery of the material. Hence none of these are collaborative and under no circumstances should you pass off the work of someone else as your own. Doing so would constitute academic dishonesty. This also applies to code or other material that you might find on the internet; if your answers depend of material you have found on the internet or elsewhere, please provide full attribution. Providing answers to another student also constitutes academic dishonesty.

We do want students to talk to each other about concepts and ideas that relate to the class. We believe that this type of peer-interaction can be quite helpful to students. However, this interaction needs to happen without actual exchange of written answers (e.g., code or pseudocode snippets) to homeworks. Of course, students are welcome (in fact, encouraged) to study together for exams.

If you are unclear about what constitutes academic dishonesty contact the instructor or consult the CLAS Code of Academic Honesty at http://clas.uiowa.edu/students/handbook/academic-fraud-honor-code. All CLAS students or students taking classes offered by CLAS have, in essence, agreed to the College's Code of Academic Honesty: "I pledge to do my own academic work and to excel to the best of my abilities, upholding the IOWA Challenge. I promise not to lie about my academic work, to cheat, or to steal the words or ideas of others; nor will I help fellow students to violate the Code of Academic Honesty." Any student committing academic misconduct is reported to the College and placed on disciplinary probation or may be suspended or expelled. See the CLAS Academic Policies Handbook at https://clas.uiowa.edu/students/handbook for more details.

Student Complaints
If you have any complaints or concerns about how the course is being conducted please feel free to talk to the instructor. You are also welcome to get in touch with Prof. Alberto Segre, the Computer Science department chair (alberto-segre@uiowa.edu, 319-335-1713, 14D MacLean Hall). Consult the CLAS statement on Student Rights and Responsibilities at http://clas.uiowa.edu/students/handbook/student-rights-responsibilities for more information.

University Statement on Sexual Harassment
Sexual harassment subverts the mission of the University and threatens the well-being of students, faculty, and staff. All members of the UI community have a responsibility to uphold this mission and to contribute to a safe environment that enhances learning. Incidents of sexual harassment should be reported immediately. See the UI policy on sexual harassment at http://opsmanual.uiowa.edu/community-policies/sexual-harassment for assistance, definitions, and the full University policy. Also see http://www.sexualharassment.uiowa.edu/ for additional resources.

Reacting Safely to Severe Weather
In severe weather, class members should seek appropriate shelter immediately, leaving the classroom if necessary. The class will continue if possible when the event is over. For more information on Hawk Alert and the siren warning system, visit http://hawkalert.uiowa.edu/.

Electronic Communication
University policy specifies that students are responsible for all official correspondences sent to their University of Iowa e-mail address (@IA.edu) and must use this address for all communication within UI. From time to time, I will send you e-mail at your @uiowa.edu address. Sometimes this may need your immediate attention, so please check this e-mail account regularly. We will also be using piazza for reading responses, homework discussions, and other announcements.