CSCI 520: Distributed Systems
Instructor: Mike P. Wittie
A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages. This definition leads to the following especially significant characteristics of distributed systems: concurrency of components, lack of a global clock, and independent failures of components - Coulouris et al.
This course will investigate the fundamentals of distributed system design and the latest research trends. Some of the important changes in distributed system design are nearly ubiquitous networking, increasing demand for dynamic content, and trend towards widely distributed application deployments through cloud computing.
CSCI 432: Advanced Algorithm Topics (CS 324)
CSCI 466: Networks (CS440)
- Understand and apply different models and abstractions for distributed systems
- Describe and analyze key algorithms for distributed computing systems
- Identify fundamental limitations and impossibility results for distributed systems
- Implement distributed algorithms in real-world distributed computing platforms
- Understand and identify applications of distributed algorithms in real-world systems
- Learn to read, understand, and present ongoing research in distributed systems
- Conduct research in the broad area of distributed systems by preparing a research workshop paper submission
I want this course to be engaging and productive in terms of the knowledge and skills you will acquire. To accomplish both tasks, I will ask you to do some work. I have structured the grade criteria to give you incentive to stay engaged and succeed in the course and to give you a solid background preparation to define and complete an original research project.
- Five tests: 40% - NO makeup exams!
- In-class, half-hour tests
- Not cumulative, no notes
- I will drop the lowest grade
- Tests will be announced in the lecture preceding the lecture in which they will be given.
- Regrade requests must be made within 7 days of return.
- Final project: 30%
- Independent research in groups of two
- Must have a distributed system component
- Project proposal, midterm report, and final paper
- Two programming assignments: 20%
- Implementation of algorithms presented in class on AWS in groups of two
- Paper summaries: 5%
- Short summaries of the papers discussed in lectures
- Graded on 3pt scale - will drop two lowest summary grades
- Participation: 5%
- I expect you guys to be present and active in class. My assumption is that everyone will get full credit here.
Unless otherwise instructed, all programming assignments must be submitted by 11:59PM on the due date. Late assignments will loose 10% of credit for every hour they are late. Homework assignments must be completed individually. The project will be completed in pairs.
Lecture: MWF 2:10-3PM in ROBH 121
Final: 5/5/16 6-7:50AM on D2L (take-home)
Assignment deadlines as well as other course materials (lectures, assignments, and readings) will be posted on D2L.
Mike Wittie: MT 3:10-4PM and by appointment in EPS 361
Course Textbook (optional):
Class attendance is mandatory. You are responsible for the material covered in class. Prepare in advance for class by reading and studying the assigned text, and by making sure you understand the previous lecture.
Policy on Academic Integrity
The integrity of the academic process requires that credit be given where credit is due. Accordingly, it is a breach of academic integrity to present the ideas or works of another as one's own work, or to permit another to present one's work without customary and proper acknowledgment of authorship. Students may collaborate with other students only as expressly permitted by the instructor. Students are responsible for the honest completion and representation of their work, the appropriate citation of sources and the respect and recognition of others' academic endeavors. According to Montana State University Conduct Guidelines and Grievance Procedures for Students, academic misconduct includes cheating, plagiarism, forgery, falsification, facilitation or aiding academic dishonesty; multiple submission, theft of instructional materials or tests; unauthorized access to, manipulation of or tampering with laboratory equipment, experiments, computer programs, or animals without proper authorization; alteration of grades or files; misuse of research data in reporting results; use of personal relationships to gain grades or favors, or otherwise attempting to obtain grades or credit through fraudulent means.
In other words, you may:
- Work out homework problems by yourself
- Work with at most one other person on the final project
- Share ideas (not answers) with other people
- Help other people debug (not write) their programs
- Fabricate research results
You may NOT:
- Share code with other people
- Submit code that you (or your partner) did not write
- Modify someone else's solution and claim it as your own
Consequences, depending on severity of violation:
- Zero on the assignment
- Expulsion from the course
- F for the course
- Suspension or expulsion from the university
Academic misconduct will be reported to the Department Chair and the Provost's Office
Students with Disabilities
A student who desires accommodation for a disability must submit appropriate documentation of the disability and request for accommodations to The Office of Disability, Re-Entry, and Veteran's Services Room #155 Strand Union Building, (406-994-2824).