CMPS 128: Distributed Systems (Spring 2008)
Computer Science Department, UC Santa Cruz
| Time: | Tuesday & Thursday 12:00–1:45 PM |
| Location: | Social Sciences II 167 |
| Instructor: | Professor Ethan Miller (elm «at» ucsc·edu) |
| Office & hours: | Tue 2:00–3:00, Thu 10:00–11:00 |
| Prerequisites: | CMPS 101 (CMPS 111 or CMPS 105 recommended) |
| Required text: | Distributed Systems: Principles and Paradigms (2nd Edition) |
| Home page: | http://www.soe.ucsc.edu/classes/cmps128/Spring08/ |
Course objectives
The goal for students in this course is to learn the fundamentals of distributed systems. The topics we will cover include:
- Overview of distributed systems
- Communication
- Naming
- Synchronization
- Consistency and replication
- Fault tolerance
- Security
Where possible and appropriate, we will use examples from modern distributed systems such as peer-to-peer systems, distributed gaming, and distributed file systems to illustrate concepts discussed in class.
Prerequisites
The formal prerequisite for this class is CMPS 101, with CMPS 111 or CMPS 105 recommended. In addition to the class prerequisites, each student must have his or her own CATS account. Because assignments will be turned in on the CATS system, you must have your own CATS account by the end of the first week of classes. You may not borrow a roommate's / friend's / co-worker's / spouse's account. Doing so is a violation of the CATS user policy, and will be reported.
Texts
The required text is Distributed Systems: Principles and Paradigms (2nd edition), by Tanenbaum and Van Steen. You can buy a copy at the bookstore or online; make sure you get the second edition, since there have been significant changes since the first edition was published five years ago.
Class information
Most of the information for the class will be distributed via the Internet. The class home page is at http://www.soe.ucsc.edu/classes/cmps128/Spring08/, and is the starting point for lots of information about the class, including the course schedule and assignments. Note that Access to some of the class web pages, particularly those containing solutions, is restricted to the UCSC campus (the ucsc.edu domain). Redistributing these pages will constitute cheating and will be treated accordingly; if you need off-campus access to these protected pages, please use the library's off-campus access (OCA) proxy. Pages not restricted to on-campus access may be redistributed, though I ask that you distribute a URL rather than the page itself so that others will get the most recent pages.
Announcements and online discussion will be hosted on the course discussion forum. Please note that you'll need to register to post, though you don't need to register to read the postings.
Homework
Assignments will be posted on the web, and will be accessible from any domain on the Internet. It is likely that some assignments will be posted before they are officially assigned; however, you should not assume that an assignment on the web is in final form until the date it is assigned. In other words, assignments are subject to change before the date that they are officially assigned. Due dates for all assignments will be listed on the class schedule, as well as on the assignment itself.
There will be 4–6 homework assignments, about every two weeks, assigned over the course of the quarter. The assignments may require some programming, which may be done in any language you want. Homeworks will be graded. Homeworks are due on the date listed on the assignment, typically at 10 AM. Homework must be turned electronically using the submit system on unix.ic. Late homework will not be accepted. Graded homework will be returned as soon as possible, typically within one week.
Term project
There is a required term
project on a topic related to distributed systems. The
suggested project is a distributed
pong
game,
but other projects are welcomed, based on student interest.
Getting help
You're strongly encouraged to seek help if you need it. You can do this by going to office hours, reading the course newsgroup, or by email. Office hours are optional, but highly recommended if you're having any difficulty understanding the material, doing the homework assignments, or working on the term project. More in-depth discussions of course-related topics are also appropriate (and encouraged) during office hours. You're welcome to use the course forum and send email whenever you want, but please arrange any meetings outside of office hours in advance.
I strongly encourage you to use the course web forum
(http://apps.soe.ucsc.edu/fora/viewforum.php?f=4)
and post if you have general questions. Asking things
like how does this concept work?
or what
does this algorithm do?
are fine. Questions such as
what's the answer to Problem #3 for this week's
homework?
are not acceptable. Please ask such
questions during office hours (preferable) or via email.
Email to the professor (elm at ucsc·edu) will be
answered if possible. The best kinds of questions to ask via
email are those that require short answers. Questions like
why doesn't my program work?
and please explain this
concept to me
are much more difficult to answer via email,
and are best asked and answered in person at office hours.
Attendance
Class attendance is mandatory, though attendance won't be taken (except as needed for UCSC administration). Most of the course material, including assignments and lecture notes, will be posted on the class web pages. However, things may get said in class that aren't in the online notes. You're responsible for all material covered in class, whether or not it appeared on the Web site—I suggest you ask either a fellow student, the TA, or the professor to fill in any material you may have missed.
Grades
Your grades will be determined as follows:
- Homework: 40% (all assignments weighted equally)
- Project: 20%
- Exams: 35% (15% midterm, 20% final)
- Class participation: 5%
You must take both exams and turn in all assignments to pass the class. If your homework (including final project) or exam average is below 50%, you will fail the class regardless of your overall average.
Grades will be available online during the quarter. You'll be emailed a password to use with your UCSC user ID to access your grades. Attempts to subvert this system will be considered computer breakin attempts and be dealt with appropriately.
Academic Honesty: Collaboration vs. Cheating
You are expected to conduct yourself as a person of integrity—you are expected to adhere to the highest standards of academic integrity. This means that plagiarism in any form is completely unacceptable. You are a (soon-to-be) computing professional; I encourage you to consult the code of ethics appropriate to your discipline (the ACM, IEEE, and IEEE Computer Society).
Plagiarism will be assumed, until disproved, on work that is essentially the same as that of other students. This includes identically incorrect, off-the-wall, and highly unusual duplicate answers where the probability of a sheer coincidence is extremely unlikely. All parties to this unacceptable collaboration will receive the same (zero) score. In the case of programs, reordering routines, renaming files, and simply renaming variables does not make two programs different. Remember—a zero score on either exam or on the term project is grounds for failing the course. Those caught cheating will, in addition to a zero score on the assignment or exam, have a letter sent to their department, the School of Engineering, and their college provost and academic preceptor. I reserve the right to take stronger action, such as assigning a class grade of F, should the situation warrant it.
You may discuss homework with your friends, but you are expected to abide by Simpsons rule—the only thing you may bring to such a discussion is you, and no written notes may be taken away from the meeting. You may discuss concepts covered in class or assigned in the homework, but you may not discuss details of the homework. Looking at, modifying, or copying each other's files or solutions is strictly forbidden. If you are unsure of what is and is not allowed by this policy, please talk to me before doing something that might be considered cheating.
The Simpsons rule states that following any class-related discussion, you must take a break for at least half an hour before doing further class work. Watching a TV show such as The Simpsons, Futurama, or Family Guy satisfies this rule. Reading something (inane or otherwise) unrelated to CMPS 128 also qualifies. See me if you'd like some suggestions for non-computer science reading material.
If all of this doesn't convince you of the folly of using
others' work, consider the following
Foxtrot
comic
(Bill
Amend, September 28, 2002):
Last updated 22 Apr 2008 by Ethan L. Miller (elm «at» ucsc·edu)