CPS 212: Distributed * Systems
home calendar topics work resources

About CPS 212

Who should take this course. Undergraduate and graduate students with an interest in systems and networking. The course covers core topics in distributed systems, and recent research in cloud platforms, scalable Internet services, and distributed storage systems.

Preparation. You should be familiar with undergraduate-level operating systems and networking, consider yourself a strong student and a good programmer, and have enough familiarity with systems and networking concepts to come up to speed quickly. We won't assume any specific networking or operating systems knowledge in this class, but it helps to have familiarity with these topics when reading the papers.

Readings. This semester we will read roughly 20 research papers. I will ask you to reflect on them and comment on them in class and (for a subset of papers) in writing. Exams will focus on core material and principles, rather than details of the research readings.

Optional readins. A number of papers will be offered as optional readings and will be discussed briefly in class. I will ask each student to select one of the optional papers and give a 10-minute presentation to the class.

Base Workload. In addition to the readings and discussions, there will be 2 assigned labs (done in teams of two) and two exams. Because the class is small and diverse, I will assign final grades on a relative scale that takes into account initial knowledge, effort, demonstration of interest and aptitude, and progress. On the one hand, this will minimize any perceived risk of getting in over your head. On the other hand, you will have to count on me to get it right when I consider subjective factors in assigning final grades.

Project. A course project is an important part of this course. In the course project you will propose some interesting ideas, present an argument supporting those ideas, and build software and/or conduct experiments to obtain an interesting outcome. We have a rich environment here with many useful tools in place as a basis for projects. Projects will be graded on the basis of a final report and demonstration. You will conduct your projects in teams of 1-3 individuals. You can choose the teams and the projects, with my approval.

Policy on collaboration for CPS 212. Collaboration on lab work and project work is encouraged. Help each other. However, any work you turn in must be your own, and you may be called upon to explain (alone) your choices and approaches in more detail. You may incorporate public software into your assigned lab work and course project to a reasonable extent, but not so much as to undermine the educational purpose and spirit of the project. In any case, you must acknowledge any sources of your words, ideas, and software when they are not your own, and you should disclose (in advance, without any specific request) the names of anyone who helped you with your work. Failing to do so is at best a violation of professional etiquette, and at worst it is plagiarism. Plagiarism, like collaboration on exams, is cheating. Cheating is a very serious offense and I do not expect it to occur in this class.