CS 3410: Distributed Systems
Spring 2025 Syllabus
Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers design and implementation of network applications, including message passing, concurrency, synchronization, scalability, and partial failure.
Prerequisites
CS 2420 and CS 2810, each with a C or better
Fees
Computer lab access fee: $20, used to assist in maintaining computing infrastructure.
Sections
One section:
MW 12:00–1:15 PM in Smith 109
CRN: 20607
Final exam: Monday, April 28 at 11:00 AM–12:50 PM
Instructor
Instructor: Dr Russ Ross
Email: russ.ross@utahtech.edu
Phone: 435-652-7971 (note: email preferred)
Office: North Burns 226
Office Hours: MTWR 3:00–4:00 PM
Program learning outcomes
At the successful conclusion of this program, students will be able to:
- Design, implement, and evaluate computational systems to address needs in a variety of contexts and disciplines.
- Devise new solutions from foundational principles informed by current practice.
- Weigh and apply ethical, legal, and social responsibilities in all aspects of practice.
- Construct effective solutions in teams to accomplish a common goal.
- Author effective visual, oral, and written communication for a range of audiences.
Course learning outcomes
At the successful conclusion of this course, students will be able to:
- Design and implement software solutions that span multiple computers across a network. [PLO #1]
- Analyze the tradeoffs between competing goals in system software projects, including safety, performance, convenience, and ease of future maintenance. [PLO #2, #3]
- Build and modify complex software projects in teams. [PLO #4]
- Debate and differentiate the approaches and solutions to distributed systems problems taken by modern internet organizations. [PLO #5]
Resources
Text
There is one recommended text for this class:
- The Go Programming Language
by Alan Donovan and Brian Kernighan
ISBN: 9780134190440
Computers
Students are expected to have access to a personal computer running Linux (this includes the Windows Subsystem for Linux) or Mac OS. The instructor will provide basic help setting up the tools and environment for homework, but students are generally responsible for installing and configuring software as well as performing basic troubleshooting and maintenance tasks as needed.
Course web site
This course will be managed through Canvas. Students are responsible for announcements, the schedule, and other resources posted there. In addition, students are responsible for changes and announcements made in class.
Assignments and exams
Reading
The student is responsible for reading the assigned material. A reading schedule is provided with the class schedule on the course website. Readings consist of a series of research papers.
Research papers can be difficult reading, so students should plan on several hours over multiple sessions to read each paper.
Students must read the papers AND participate in the class discussions to receive credit for the readings.
Assignments
Assignments will be graded for accuracy of function and style of design. Programs that do not compile will receive no credit. It is important that you start early and get each of your assignments done before its due date. Many problems will take much longer to solve in a single sitting than in many shorter sessions. Give yourself time to think; sleep on difficult problems. Finish early so you can go back and refine your initial approach.
Assignment due dates and submissions are managed in Canvas. Some assignments will be automatically graded using CodeGrinder (which will be explained in class) and others will require the student to record a screencast demonstrating the completed project. This means that you must reserve time to prepare and record a demonstration before the due date.
Final presentation
There will be no exams, but there will be a final presentation. Each student will be assignment a research paper to read and present to the entire class. Details and the schedule will be discussed in class.
Grading
Assignments, reading and discussion of papers, and a presentation each contribute to your point total. In total, the assignments comprise 60% of your grade, reading and discussion 30%, and the presentation counts for 10%. To get credit for the reading you must read each paper and come to class and participate in the discussion for that paper.
Letter grades are assigned based on the percentage of possible points attained, according to the following chart:
Minimum Percentage | Letter Grade |
93 | A |
90 | A- |
87 | B+ |
83 | B |
80 | B- |
77 | C+ |
73 | C |
70 | C- |
67 | D+ |
63 | D |
60 | D- |
0 | F |
Course policies
Attendance
Students are responsible for material covered and announcements made in class. School-related absences may be made up only if prior arrangements are made. The class schedule presented is approximate. The instructor reserves the right to modify the schedule according to class needs. Changes will be announced in class. Exams and quizzes cannot be made up unless arrangements are made prior to the scheduled time.
Occasional absences are acceptable as long as the student keeps up with assignment work. Students who miss more than two consecutive weeks of class or who miss more than 20% of scheduled classes during the semester without making prior arrangements will receive a failing grade. Students who miss any scheduled exam (including midterm exams and the final exam/presentation) or fail to complete a final project without making prior arrangements will receive a failing grade.
This course can only be completed by attending classes and completing all assigned work to a satisfactory level. There is no procedure for testing out of the class.
Distractions
Electronics—including laptops—in class have been demonstrated to have a negative impact on student learning (see Shriram Krishnamurthi’s writeup for background This class has a NO DISTRACTIONS policy, with a few exceptions:
- When I ask you to use your laptop (or phone) for a specific activity in class. In this case you are permitted to use it for the duration of the activity, but not during the rest of the class.
- If you need a laptop to accommodate a disability. If this is the case, please talk to me in advance and please visit the Disability Resource Center to document your need. To help other students in the class, please sit near one of the edges so your laptop does not distract other students more than necessary.
This policy extends to phones, tablets, and other electronic devices. I encourage you to pay full attention to class and take notes on paper.
Time Commitment
Courses should require about 45 hours of work per credit hour of class. This class will require about 135 hours of work on the part of the student to achieve a passing grade, which is approximately 9 hours per week. If you do not have the time to spend on this course, you should probably rethink your schedule.
Late Policy
Reading must be completed before the assigned class so students are prepared and can participate in the discussion. No late work is accepted for readings.
It is critical that students learn Go early in the course. No late work is accepted for the sequence of assignments that introduce the Go programming language.
Each project will have a deadline posted in Canvas. To recive full credit you must submit your work on time. In addition, you may submit up to two weeks late with a penalty of 1% per day. After two weeks no late work will be accepted.
Collaboration
Limited collaboration with other students in the course is permitted. Students may seek help learning concepts and developing programming skills from whatever sources they have available, and are encouraged to do so. Collaboration on assignments, however, must be confined to course instructors, lab assistants, and other students in the course. Students are free to discuss strategies for solving programming assignments with each other, but this must not extend to the level of programming code. Each student must code his/her own solution to each assignment. See the section on cheating.
Cheating
Cheating will not be tolerated, and will result in a failing grade for the students involved as well as possible disciplinary action from the college. Cheating includes, but is not limited to, turning in homework assignments that are not the student’s own work. It is okay to seek help from others and from reference materials, but only if you learn the material. As a general rule, if you cannot delete your assignment, start over, and re-create it successfully without further help, then your homework is not considered your own work.
You are encouraged to work in groups while studying for tests, discussing class lectures, discussing algorithms for homework solutions, and helping each other identify errors in your homework solutions. If you are unsure if collaboration is appropriate, contact the instructor. Also, note exactly what you did. If your actions are determined to be inappropriate, the response will be much more favorable if you are honest and complete in your disclosure.
Where collaboration is permitted, each student must still create and type in his/her own solution. Any kind of copying and pasting is not okay. If you need help understanding concepts, get it from the instructor or fellow classmates, but never copy another’s code or written work, either electronically or visually. The line between collaborating and cheating is generally one of language: talking about solutions in English or other natural languages is usually okay, while discussions that take place in programming languages are usually not okay. It is a good idea to wait at least 30 minutes after any discussion to start your independent write-up. This will help you commit what you have learned to long-term memory as well as help to avoid crossing the line to cheating.
College policies
Spring 2025 Important Dates
- Jan. 6: Classes Begin
- Jan. 6: Tuition & Fees Due
- Jan. 9: Last day to Waitlist
- Jan. 10: Last day to ADD without signature
- Jan. 15: DROP/AUDIT fee begins ($10 per class)
- Jan. 17: Residency Application deadline
- Jan. 17: $100 Late registration/payment fee
- Jan. 20: Dr. Martin Luther King, Jr. Day (no classes)
- Jan. 27: Last day for refund
- Jan. 27: Pell Grant Census
- Jan. 27: Last day to drop without receiving a “W” grade
- Feb. 3: Spring 2025 Associate’s Degree Graduation Application Deadline
- Feb. 3: Spring 2025 Master’s Degree Graduation Application Deadline
- Feb. 3: Last day to ADD / AUDIT classes
- Feb. 17: President’s Day Holiday (no classes)
- Feb. 26: Midterm grades due
- Mar. 3: Summer 2025 Bachelor’s Degree Graduation Application Deadline
- Mar. 3: Last day to withdraw from individual classes
- Mar. 10 - Mar. 14: Spring Break
- Mar. 12: Fall 2025 schedule available online
- Mar. 17: Summer 2025 Registration open to Graduate Students/Seniors (90+ credits)
- Mar. 18: Summer 2025 Registration open to Juniors (60+ credits)
- Mar. 19: Summer 2025 Registration open to Sophomores (30+ credits)
- Mar. 20: Summer 2025 Registration open to all students
- Mar. 24: Fall 2025 Registration open to Graduate Students/Seniors (90+ credits)
- Mar. 25: Fall 2025 Registration open to Juniors (60+ credits)
- Mar. 26: Fall 2025 Registration open to Sophomores (30+ credits)
- Mar. 27: Fall 2025 Registration open to continuing Freshmen
- Mar. 31: Fall 2025 Registration open to all students
- Apr. 1: Fall 2025 Bachelor’s Degree Graduation Application Deadline
- Apr. 8: Last day for complete withdrawal from all classes
- Apr. 24: Classes End
- Apr. 25: Reading Day
- Apr. 28 - Apr. 30 & May 1: Final Exams
- May 1: Associate Degree Commencement
- May 2: Commencement
- May 5: Final grades due, 5:00 p.m.
Important Links
- Disability Resource Center: https://drcenter.utahtech.edu
- IT Help Desk: https://utahtech.edu/helpdesk
- Library: https://library.utahtech.edu
- Testing Center: https://testing.utahtech.edu
- Tutoring Center: https://tutoring.utahtech.edu
- Writing Center: https://writingcenter.utahtech.edu
Disability Statement
UT welcomes all students and strives to make the learning experience accessible. If you are a student with a medical, psychological, or learning disability that may require accommodations for this course, you are encouraged to contact the Disability Resource Center (DRC) as soon as possible. You may request reasonable accommodations at any time during the semester; however, they are not retroactive. The DRC is located next door to the Testing Center in the North Commons Building (435-652-7516, drc@utahtech.edu, drcenter@utahtech.edu).
Title IX Statement
Utah Tech University affirms its commitment to the promotion of fairness in all aspects of the educational institution. Harassment and discrimination – including sex/gender discrimination, gender identity, gender expression, sexual harassment, sexual misconduct, gender-based violence, dating violence, domestic violence, stalking, pregnancy or parental , family or marital status and or retaliation –not only disrupts our commitment to maintaining an environment in which every member of the University community is treated with respect and dignity, but may also violate University policy and federal, state, and/or local law.
Should you or someone you know experience behavior that is coercive, discriminatory, harassing, and or sexually violent in nature, or if you or someone you know has questions about their rights and options regarding such behavior, you are encouraged to contact:
– Hazel Sainsbury, Dir. Of Equity Compliance, Title IX Coordinator: 435-652-7747 (ext. 7747) hazel.sainsbury@utahtech.edu ; titleix@utahtech.edu
Incidents may also be reported directly to law enforcement, either separately or in conjunction with any report made to the University’s Title IX Coordinator, and the University will aid in making contact if requested.
– Utah Tech University Police: 435-275-4300 or by calling 9-1-1.
Maintaining a safe University community is a shared responsibility. For more information on how Title IX protections can benefit you and help us keep a productive campus environment, visit titleix.utahtech.edu to learn more.
Email Disclaimer
You are required to frequently check your Utah Tech email account as important class and university information will be sent to this account, including bills, financial aid/scholarship notices, notices of canceled classes, reminders of important dates and deadlines, course information, and other information critical to your success at UT. To access your Utah Tech email account, visit mail.utahtech.edu. Your email account username is Digital-ID@utahtech.edu (e.g. D12345678@utahtech.edu). If you don’t know or have forgotten your Digital-ID or password, please visit changepassword.utahtech.edu.
Last Updated 01/06/2025