Compsci 677: Distributed and Operating Systems, Spring 2023

Course description

This course provides an in-depth examination of the principles of distributed systems and advanced concepts in operating systems. Covered topics include client-server programming, distributed scheduling, virtualization, cloud computing, distributed storage, security in distributed systems, distributed middleware, ubiquitous computing, and applications such as the Internet of Things, Web and peer-to-peer systems. Prerequisites: Students should be able to easily program in a high-level language such as Java, C++ or Python, have had a course on data structures, be familiar with elements of computer architecture and have had previous exposure to the operating system concepts of processes, virtual memory, and scheduling. A previous course on uniprocessor operating systems (e.g., COMPSCI 377) will be helpful but not required.

Prerequisites Students should be able to easily program in a high-level language such as java, C++ or python , have had a course on data structures, be familiar with elements of computer architecture and have had previous exposure to the operating system concepts of processes, virtual memory, and scheduling. An undergraduate course on operating systems (e.g., COMPSCI 377) is assumed but is not mandatory.

Course Sections

Class sections: This class has three sections: a classroom, an online university section, and an online UWW section. All students, regardless of the section, will be expected to do the same homeworks, labs and exams. All students have access to the instructor and TA during office hours, which will be held in-person and over zoom. The main difference is that lectures will be delivered to students in the classroom for students in on-campus/classroom section and will be delivered via online video to students in both online sections. Students from all sections will have access to recorded videos lectures via the class Youtube Channel. Additionally, classroom lectures will be broadcast live via Youtube Live (at the same time as the classroom section timings), but live broadcast is not guaranteed in case of technical difficulties.

All on-campus students regardless of their section will be required to take all exams in-person. Only off-campus students who don’t live in the Amherst area are permitted to take proctored online exams.

Class information

  1. Classroom section: LGRC A301, M-W 2:30 - 3:45 pm
  2. Online sections: Lectures delivered via online video, plus live broadcast on best-effort basis.
  3. Credits: 3
  4. Spire: Section 01: 59811 (classroom), Section 02: 69085 (online), UWW Section 01: 68190 (online)

Grading Policy

The grade for the class will be based on three exams (two midterms and a final), three labs, assignments (lablets and problem sets), and class participation.

  • Exams: Two midterms and a final, 50% of the total grade
  • Labs: Three programming assignments/labs, 45% of the total grade
  • Assignments: Lablets (i.e., guided hands-on homework) and problem sets, 4% of the total grade
  • Class participation/piazza discussions/weekly quizzes: 1% of the final grade

Course staff and Office hours

Instructor: Prashant Shenoy

  • Office: Room A333, LGRC
  • Instructor office hours: Wednesday, 3:45 - 4:45 pm, Room A333 and zoom
  • Email: shenoy [at] umass.edu

Teaching Assistants

  • Bin Wang, binwang [at] cs.umass.edu
  • Jorge Murillo, jrmurillo [at] umass.edu
  • Walid Abdelrahman, whanafy [at] cs.umass.edu
  • Mehmet Savasci, msavasci [at] umass.edu
  • Nathan Kwan-Ho Ng, kwanhong [at] umass.edu

Grading Assistants

  • Smriti Das
  • Jui Shah
  • Rajul Jain
  • Susmita Madineni
  • Gayatri Belapurkar
  • Muni Konidala
  • Akshay Seshadri

TA Office Hours

  • Will be posted here soon

Course Materials

  1. Textbook There is no textbook for this class. Courses notes and handouts will be provided as reading material. Two older books on Distributed Systems by Andrew Tannenbaum will be used as reference books. Neither is a required textbook and both are available as online PDFs from the authors for no charge. Links to download both books are provided on the Course Material section of the class website.

  2. Assigned readings Material for newer or advanced topics will be taught from from papers, magazines, manuals, and the web. This material will be made available on the Course Material section of the class web page.

  3. Course website All course materials (handouts, lecture notes, lecture audio / video homeworks, assignments and solutions) will be posted on the class website at http://lass.cs.umass.edu/~shenoy/courses/677. As the semester goes along, the site will fill up with lots of useful other information, pointers to other sites, etc. Please make sure you check out and use this site frequently.

  4. Live and recorded lectures We will broadcast live lectures via Youtube Live and recorded lectures will be available after the end of each lecture. All lectures (live and recorded) will be available via the class youtube Channel https://youtube.com/UMassOS. Note that live broadcast of lectures is not guaranteed in case of technical difficulties.

  5. Moodle Moodle will be used primarily as the course grade book to record grades for exams, labs, and assignments. In addition, Moodle will be used to administer a lightning quiz every week to ensure all students keep with the class lectures.

  6. Resources

    • Piazza is the discussion board for online discussions on course topics and lab assignments.
    • Gradescope to grade assignments and exams
    • Github classroom will be used for all labs and lablets. You will be required to link your github account ID to your gihub classroom account. If you do not have a github ID, you can create one for no charge and then link it to your github classroom 677 account.

Course Policies

  1. Class participation I strongly encourage participation in the class through Q&A and discussion. This can be done in two ways: by asking/answering questions or participating in discussions in the lectures (for classroom section students) and by asking/ answering questions or participating in discussions in the Piazza online forums (for online section students). A small portion of the grade is allocated for class participation.
    While lectures will be recorded and made available to all students, classroom section students are strongly encouraged to come to the lectures on a regular basis and participate in class discussions, which improves the experience for all.

  2. Laptops, tablets, phones and electronic device policy Cell phones should be switched off or put on slient alert during class lectures. Texting or using phones for other purposes (e.g, email, social media, web browsing) during class is strictly prohibited.

    Laptops and tablets are NOT permitted during lectures. The use of such devices in class tends to be a distraction and hampers learning. Please respect this policy by not using laptops or tablets during the lecture.
    Any student with an electronic device that disrupts the class or violates this policy will lose two (2) points from their final grade.

  3. Github Copilot, ChatGPT and AI tool policy. AI tools such as Github Copilot and ChatGPT is allowed for the following purposes. CoPilot, ChatGPT or other AI programming tools are allowed for labs and lablets with full attribution only – auto-generated code must be clearly marked with comments to separate it from your manually written code. CoPilot, ChatGPT, and Internet resources (e.g., google) is allowed for problem sets with full attribution – any answer that uses AI tools or Internet resources must include a citation indicating the use of AI tool or specific web sources. All exams are closed book and use of AI tools or Internet sources is prohibited.

  4. Exceptions and Late Policy We understand that despite your best attempts to meet course deadlines, situations may arise where you are unable to complete the assigned work on time. This may be especially the case during a pandemic semester. We aim to be flexible in such situations. All students have three late days with no penalty that can be used across homework and labs. For group work, the three late days applies for the entire group. While no prior permission is needed for use your late days, requests for all other exceptions, including medical exceptions, should be made through a piazza private post using the ExceptionRequests folder.

  5. Inclusion policy In this course, each voice in the classroom has something of value to contribute. Please take care to respect the different opinions expressed by students and staff involved in this course. We support UMass Amherst’ss commitment to diversity, and welcome individuals of all ages, backgrounds, citizenships, disability, sex, education, ethnicities, family statuses, genders, gender identities, geographical locations, languages, military experience, political views, races, religions, sexual orientations, socioeconomic statuses, and work experiences.

  6. Accomodation Policy Students with a documented disability are encouraged to communicate their needs to the instructor at their earliest convenience. Documentation is required for the instructor to provide reasonable accommodations. If you aren’t sure if you qualify for an accommodation, or if you have any questions about your right to accommodations, please contact the Office of Disability Services https://www.umass.edu/disability/students

  7. Academic Honesty and Collaboration Policy This all may sound pedantic or even harsh, but I have no sympathy for those that gain unfair advantages over their classmates and misrepresent themselves. All individual work in this course must be your own, and all group work must be done by members of of your group. Violation will result in a zero on the project in question, probable failure in the course, and initiation of the formal procedures of the University.
    Discussion of course material is not considered cheating and is strongly encouraged. You are allowed to consult with other students in the current class to help you understand the project specification. However, you, or your group, may not collaborate in any way when constructing your solution – the solution to the project must be generated by you or your group alone. You are not allowed to work out the programming details of the problems with anyone or to collaborate to the extent that your programs are identifiably similar. You may not purchase solutions off the internet, or hire people to code your project. If you have any questions as to what constitutes unacceptable collaboration, please talk to the instructor right away. For exams, all work must be done individually and no collaboration is is allowed.

    Acts of cheating and plagiarism will be reported to the University Academic Honesty Board. You are responsible for knowing, and will be held to, the University Academic Honesty Policy. This policy is available online here https://www.umass.edu/honesty/

Many of the materials created for this course are the intellectual property of the instructor. This includes, but is not limited to, the syllabus, lectures, lecture videos, podcasts, and course notes. Except to the extent not protected by copyright law, any use, distribution or sale of such materials requires the permission of the instructor. Please be aware that it is a violation of university policy to reproduce, for distribution or sale, class lectures or class notes, unless copyright has been explicitly waived by the faculty member.