COMP385 - Distributed Systems - Spring’21
- Instructor: Dr. Marion Lang
- Course website: ml8.github.io/comp385
- Email: langm@rhodes.edu
- Schedule: TR 11-12:15 (remote)
- Office hours: See Canvas for office hours.
Course Description and Objectives
An introduction to modern distributed systems and how such systems enable the construction of large-scale and highly-available software. Students will explore foundational topics (e.g., consensus, consistency, and fault tolerance) as well as applied (distributed file systems, cloud computing, data processing and analytics systems).
Contemporary software systems do not typically run on a single computer. For reasons of scalability and reliability, they instead distribute state and computation over many networked computers. Daily tasks like sending an email or text, performing a Google search, sharing a photo with friends, or simply checking the weather involve software systems that utilize potentially many thousands of individual computers.
This course is an introduction to these systems, and explores how modern large-scale systems are built.
Throughout the course, you will design and implement practical distributed systems, and at its conclusion, you will be able to:
- evaluate the reliability and scalability of a system implementation,
- articulate and decide between trade-offs when designing a system implementation,
- and use contemporary languages and libraries to implement a distributed system.
Each week, you will be expected to read and analyze textbook and/or academic paper selections as well as complete short written or small-scale programming assignments. You will be expected to spend at least 3 hours on these tasks for each hour of classroom instruction. Over the course of the semester, you will additionally complete a series of large-scale programming labs, each of which will require approximately 25 hours to complete.
These labs will be distributed via the course’s associated Github classroom, which is linked from the main course webpage on Canvas. Readings will also be found there, as well as links to papers, etc.
Textbook
You should register for and download Tanenbaum and van Steen’s text here.
Additional readings will be distributed via the course website.
Coursework
Item | Tentative weight |
---|---|
Participation | 10% |
Projects and homework | 40% |
Exams | 50% |
Grades of A–, B–, C–, and D– are guaranteed with final course grades of 90%, 80%, 70%, and 60%, respectively. If your final course grade falls near a letter grade boundary, I may take into account participation, attendance, and/or improvement during the semester.
Expectations
You are expected to spend approximately 12 hours per week on this course (both per Department of Education guidelines as well as my expectations of the work required). This class will involve a lot of work, but you will get a lot out of it; education is transactional.
Office hours
Scheduled office hours will be on the course website. Outside of these hours, I am available by appointment. Generally, I will be in my office during the day, and you can feel free to stop by any time–my door is always open!
Academic Integrity
All work turned in for this course is to be completed in accordance with Rhodes’ Honor Code. All work done for homework, programming projects, and exams is expected to be your own. Collaboration is an important component to successfully learning the material and completing assignments in this course. You may discuss homework problems with your classmates, but the work you turn in must be your own.
Any submitted solutions to programming exercises not wholly written by yourself or your group is considered plagiarism. Any and all plagiarism will be reported to Honor Council and will result in the grade of F for the course.
Late work
You may turn in work after the deadline for partial credit, with a penalty scale of 8% per day.
Diversity
A diverse learning community is a necessary element of a liberal arts education, for self understanding is dependent upon the understanding of others.We are committed to fostering a community in which diversity is valued and welcomed. To that end any discrimination or harassment on the basis of race, gender, color, age, religion, disability, sexual orientation, gender identity or expression, genetic information, and national or ethnic origin, will not be tolerated in the classroom.
We are committed to providing an open learning environment. Freedom of thought, a civil exchange of ideas, and an appreciation of diverse perspectives are fundamental characteristics of a community that is committed to critical inquiry. To promote such an academic and social environment we expect integrity and honesty in our relationships with each other and openness to learning about and experiencing cultural diversity. We believe that these qualities are crucial to fostering social and intellectual maturity and personal growth.
Intellectual maturity also requires individual struggle with unfamiliar ideas. We recognize that our views and convictions will be challenged, and we expect this challenge to take place in a climate of openmindedness and mutual respect.
Sexual Misconduct Disclosure
I will do my best to help any student who comes to me with non-course-related concerns. Please keep in mind, however, that all faculty are required by policy to share knowledge of sexual assault, dating/domestic violence, sexual exploitation, stalking, sexual harassment and sex/gender discrimination with the Title IX Coordinator, Tiffany Cox. For more information about Rhodes’ sexual misconduct policy or to make a report please see www.rhodes.edu/titleix.
I reserve the right to alter this syllabus as necessary.