CSE 224 : Fall 2019 : Graduate Networked Systems

Summary: This course will provide a broad understanding of network design and implementation. Topics include techniques for building distributed applications, sockets programming, Remote Procedure Calls, scale-out distributed directories, distributed consensus and state management, fault tolerance, networked storage, indirection, overlay networks, load balancing, and datacenter design.

Activities: The course will include homework assignments, a series of projects, a mid-term exam, and a final exam.

Pre-requisites: No formal pre-recs, however we will assume that you have a basic working knowledge of C/C++ programming, as well as exposure to an undergraduate operating systems course. Tutorial will be provided for essential topics during the first two weeks for those students who need to brush up on these topics.



This quarter we'll be using "Distributed Systems: An Algorithmic Approach (2nd edition)" by Sukumar Ghosh (published by Chapman and Hall/CRC Press). You have a few options for accessing the content in this book:

Course schedule


The course is organized as follows:


The course will have a set of homeworks, linked off of the course schedule. You can hand-write or type your solutions, and will submit them in the form of a PDF document to GradeScope. We will strictly mark-up your homeworks to provide you with feedback on your progress and to assist you in studying for the midterm and final exam. However, as long as you submit a reasonable attempt at a solution will receive full credit. The homeworks are there to give you practice on the material, and so you won't be penalized for getting answers wrong (as long as we subjectively believe you made an ernest attempt). Note that you may collaborate with (up to a couple) other students in the class on the homeworks, as long as you put their name(s) in the homework. To maximize the usefulness of homeworks, wait a period of time after discussing problems with your classmates, then write-up your own solution separately to make sure you have internalized the information.


There will be three projects during the course:
  1. Writing your own web server
  2. Distributed SurfStore: a cloud-based file storage system patterned on Dropbox
  3. Fault-tolerant SurfStore: a version of SurfStore that can survive server failure, datacenter failure, and network failures
The three projects fit together, in the sense that if you combined them together you'd have written your own cloud-based storage system complete with a web-based interface to your files. However, each project can be completed independently of the others, so if you struggle with a project you can "start fresh" on the next one.


There will be a midterm and a final exam. The final will be comprehensive across the entire quarter.

Discussion sections

There are three different discussion sections througohut the week. You are free to go to whichever sections you want, however students registered for a particular section have priority for that section.


In life, sometimes things happen (your computer crashes, you have a personal emergency, you have some kind of conflict, etc). During the course you can ask for a single 72-hour extension on any of the homeworks or projects, and will then have up to three extra days to submit the work without penalty. Note that you cannot shift the dates of the midterm or final exams. If you manage to get through the entire quarter without using this single-use extension, you can instead get 2.5 extra points added to your final exam as extra credit.

Student expectations

Academic honesty

In this course, you are expected to adhere to the UCSD Policy on Integrity of scholarship. Any evidence of academic dishonesty on any assignment or exam will resort in an F in the class and a report to the university.

Electronic device policy

Studies have shown that using a computer during class can distract you and those around you. In fact, a majority of students tend to support a prohibition on electronic devices in class! I will let you decide for yourself whether you’d like to use a computer or tablet during class, however to help those students that want to avoid distractions, I’m prohibiting the use of laptops and other electronic devices in the front half of the classroom. If you’d like to avoid distractions, please sit in those rows. Regardless of where you sit, you may not cause a distraction to your neighbors. This means that you may not watch TV/movies/video or play games on your computer/device if you bring one.

Disability access

Students requesting accommodations for this course due to a disability or current functional limitation must provide a current Authorization for Accommodation (AFA) letter issued by the Office for Students with Disabilities (OSD) which is located in University Center room 202. Students are required to present their AFA letters to Faculty (please make arrangements to contact me privately) and to the CSE OSD Liaison in the department in advance so that accommodations may be arranged.

Diversity and inclusion

We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.). Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive. Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course. If there is a way we can make you feel more included please let one of the course staff know, either in person, or via email, or even in a note under the door. Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input. We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and feels comfortable. If you experience any sort of harassment or discrimination, please contact the instructor as soon as possible. If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination: https://ophd.ucsd.edu/.
Last edited: Thursday, 05-Sep-2019 08:45:02 PDT