Course Overview
Welcome to CSCI 325, Distributed Systems!
Catalog Description: This course studies the key design principles of distributed systems, i.e., collections of independent networked computers that function as single coherent systems.
Topics covered include
- Communication protocols (TCP, UDP, HTTP)
- Routing
- Processes and threads
- Naming
- Synchronization
- Consistency and replication
- Fault tolerance
- Security
- Remote procedure calls
- Distributed file systems
- Wide-area computing: grid computing, peer-to-peer systems, overlay networks
Structure
Classroom work will consist of lecture, discussion, and lab
experimentation. Written work will consist of several homework and
programming assignments, paper reviews, one exam, and several projects.
Objectives
After taking this course, you should be able to
- understand the requirements (e.g., security, stability, reliability, performance) of distributed systems and how to satisfy those requirements
- describe how various large-scale, distributed computational systems are designed and implemented
- apply common software tools to developing distributed applications
- test and debug distributed applications, using standard tools and systematic techniques
- critically analyze a computer science research paper and identify and summarize in writing the problem it's trying to solve, its approach to the problem, how it evaluates the approach, and its major contributions.
Instructional Staff
Sara Sprenkle
Office: Parmly Hall 410
Office Hours: W 3:30-5 p.m., R 1:30-4:30 p.m., and by appointment
E-mail Address:
Phone Number: (540) 458-8309 (it is better to email me than to call)
Course Information
CSCI 325, Section 01
Lecture: MWF 12:20-1:15 p.m.
Textbook
Distributed Systems by Maarten van Steen and Andrew S. Tanenbaum. The textbook, released in February 2017, seems to only be available in (paperback) printed version from Amazon. But, students can download a copy of the book at the Book's Web Site
Optional textbook: Distributed Systems: Concepts and Design, 5th edition
Course Policies
Student Responsibilities
- It is very important that you attend lectures (see Grading below). There will be considerable information given in class that is not available elsewhere. Family and medical emergencies and conflicts with University-recognized extra-curricular activities are the only reasons to request that work be rescheduled.
- You are expected to arrive to lectures promptly.
- Please turn off cellphones.
- Actively participate in the class by asking and answering questions.
- Check your W & L email frequently and check this web page and the schedule for new information.
- Throughout this class (and life in general), keep in mind a cowboy's wisdom: "Good judgement comes from experience." You may ask, "How do I get experience?" Bad judgement works every time. My point? Don't be afraid to make mistakes in this class, but make sure you learn from them!
- Use the Web to find solutions to some of your problems. Document where you found the code.
Instructor Responsibilities
I will
try to make this course and its material as exciting for you
as it is for me. I will be respectful of student questions and
misunderstandings. I will try to give prompt, constructive
feedback from assignments. I will be available during office
hours and by appointment. I will do my best to respond to
questions via email within 24 hours.
Honor System
You may discuss individual programming assignments informally
with other students. However, sharing a solution, in the form
of experimental results or the design or implementation of a
program, is an honor violation. Students should know where to
draw the line between getting legitimate outside assistance
with course material and outright cheating. Students who
obtain too much assistance without learning the material
ultimately cheat themselves the most. If you have any
uncertainty about what this means, consult with me before you
collaborate. All written assignments should be done
individually.
Participation and attendance
To receive
full credit for class participation and attendance, you must
have less than three unexcused absences from class and you
must be actively engaged in the classroom by answering and
asking questions each class when appropriate and by being
respectful of other students. The average grade for
participation is a B-.
The schedule, including important dates, is posted at the beginning of the semester. You should plan accordingly. If there are acceptable conflicts, tell me at the beginning of the semester and then remind me about a week in advance.
If you cannot make an exam, you must arrange a time prior to the scheduled exam to take the exam. If you miss the exam period, you will receive a 0 for the exam. If you are ill, you must email me with a phone number where you can be reached and speak with me in person. An email informing me that you are not taking the exam is NOT acceptable. In fairness to your peers taking the exam early or at the scheduled time, you must provide a note from the health center.
Grading
Grades for the course will be computed as follows:
- (17%) Individual programming, reading, and writing assignments
- (20%) Exam
- (33%) Projects
- (25%) Final Project
- (5%) Participation and attendance
General grading policies
Programs turned in with syntax errors will receive no credit. "Roll back"
your program (using version control management software) into a state
where it does not have syntax errors.
Late policy
All assigned work is due on
the date specified. Any assignment turned in after the due
date/time but on the same day will be penalized 10%. Any
assignment turned in after the day on which it is due will be
penalized an additional 10% for each late day. No
assignment will be accepted that is more than three school
days late. If you turn an assignment in late, you must
indicate this somehow (in comments, on paper, etc.).
Accommodations
Washington and Lee
University makes reasonable academic accommodations for
qualified students with disabilities. All undergraduate
accommodations must be approved through the Title IX
Coordinator and Director of Disability Resources, Elrod
Commons 212, 458-4055. Students requesting accommodations for
this course should present an official accommodation letter
within the first two weeks of the term and schedule a meeting
outside of class time to discuss accommodations. It is the
student's responsibility to present this paperwork in a timely
fashion and to follow up about accommodation arrangements.
Accommodations for test-taking must be arranged with the
professor at least a week before the date of the test or exam,
including finals.