Welcome to CSE 124!

CSE 124 an undergraduate course on implementing networked software. By the end of the course, you will develop an understanding for how to make software that can communicate over the network and connect to cloud-based resources while ensuring scalability, dependability, security, evolvability, and manageability.

This course will provide a broad understanding of exactly how the network infrastructure supports distributed applications ranging from email to web browsing to electronic commerce to cloud computing. Topics covered in the course include sockets programming, data centers and cloud computing, Remote Procedure Calls and REST, scale-out distributed directories, distributed consensus and state management, indirection, overlay networks, and load balancing, and security.

The majority of the class will take the form of hands-on programming assignments, which will provide in-depth understanding of issues in distributed systems and networking.


  • Course number: CSE 124
  • Course title: Networked Services
  • Department name: Computer Science and Engineering
  • Division name: Jacobs School of Engineering

  • Class meeting times: M/W/F, 1-1:50pm
  • Class location: PCYNH 106
  • Discussion meeting time: M 5:00-5:50pm
  • Discussion location: YORK 2622

  • Piazza disussion sign-up link: http://piazza.com/ucsd/winter2017/cse124

Teaching staff

Required and optional texts

Required: Practical TCP/IP Sockets in C, 2nd ed., by Donahoo and Calvert. An online companion site for the book is available at the book’s webpage.

Required: The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, 2nd ed., by Barroso, Clidaras, and Hölzle. This is a very interesting book that describes how the data centers at Google are designed, built, and operated. A physical copy of this book is available at the bookstore, however you can also read this book for free online.

Optional: Computer Networks: A Systems Approach, 5th ed., by Larry Peterson and Bruce Davie. This is the textbook used in the other undergrad networking course, CSE 123. It isn’t required for this class, but understanding networking fundamentals will greatly benefit you.



This course is a heavy project-based course, and the grading reflects that structure. There will be a number of homeworks that are designed to give you practice with the skills that are needed to complete the projects. The assignment of points are as follows:

  • Homework: 25%
  • Project 1: 35%
  • Project 2: 40%
  • Total: 100%

Homework breakdowns:

  • HW1: 1 point
  • HW2: 3 points
  • HW3: 3 points
  • HW4: 3 point
  • HW5: 5 points
  • HW6: removed
  • HW7: 5 points
  • HW8: 5 points

Grading scale

The assignment of grades in this course will be:

  • 90-100, A
  • 80-89, B
  • 70-79, C
  • 60-69, D
  • 0-59, F

I reserve the right to raise your grade beyond the above scale, but I will not lower it.


Grades will be available to you via a shared Google Doc spreadsheet. To protect your privacy, your name/PID will not be in that document. Instead, you will be assigned a random ID that you can use to find your records. This random ID will be given out once the term begins.

Course policies

Late work

Across the projects and homeworks, you will have (4) “slip” days that you can use if needed. A slip day lets you extend the deadline of an assignment by 24 hours. If you run out of slip days, then any late work will receive a grade of a 0. To use your slip day, please email the TA responsible for that project.

Regrade requests

Any regrade requets or grading issues must be brought to the instructor’s attention within (1) week of the assignment being handed back for consideration.

Collaboration policy

Students may discuss the homework and projects with other students in the class, the course staff, and the Piazza online forum. Assistance must be limited to discussion of the problem and sketching general approaches to a solution. Each student must separately write out and/or code his or her own solutions to assignments. You must list the names of anyone in the class with whom you discussed your assignment in your assignment submission. Do not share your code with others in the class or let other students look at your code–that is considered academic dishonesty.

GitHub.com policy

During the term, we are going to be making heavy use of GitHub via a special CSE-124 environment. For each assignment, you will be given a link that will create a repository to use in the project. Only use this repository, since that’s what we’ll have access to.

In particular, uploading any assignments or materials from this course to the web, or to public GitHub repo, during the term online will be considered an act of academic dishonesty. If you have any questions about this policy, please ask the instructor.

Submitting materials

All homeworks and projects need to be submitted to your class-provided GitHub.com by the deadline. We will not accept assignments via email or other methods.

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 will resort in a 0 on that particular assignment.

Electronic device policy

Studies have shown[^1] 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[^2]!

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 in the first few rows of the classroom. If you’d like to avoid distractions, please sit in those rows.

Note that we will sometimes do in-class exercises and activites that require the use of a laptop, and so for those events, this policy doesn’t apply (e.g., it is fine to use laptops anywhere in the classroom).

You do not need a laptop or other technology in this class–for any activities where we need them, you’ll be able to pair up with another student that has one.

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.

Disability Access

The University is committed to providing reasonable accommodations for all persons with disabilities. This syllabus is available in alternate formats upon request. Students who need accommodations must be registered with Student Disability Services. Students with special needs who meet criteria for the Americans with Disabilities Act (ADA) provisions must provide written documentation of the need for accommodations from the Counseling Center by the end of week three of the class in order for the instructor to plan accordingly. Failure to provide written documentation will prevent your instructor from making the necessary accommodations. Please refer any questions to the Dean of Students.

Title IX Compliance

The University recognizes the inherent dignity of all individuals and promotes respect for all people. If you feel that any part of the class, members of the class, or teaching staff are not upholding this standard, please the instructor know immediately, or if you wish to remain anonymous, you can reach out to a confidential source at the Counseling and Psychological Services.

Attendance Policy

I do not generally require attendance in lecture or discussion sections, however you are responsible for everything that takes place there. I will sometimes make annoncements on the course webpage, so please check that regularly. Lastly, I sometimes will make announcements on Piazza, so make sure to check that, even if you don’t otherwise participate in online discussions.

[^1] https://seii.mit.edu/wp-content/uploads/2016/05/SEII-Discussion-Paper-2016.02-Payne-Carter-Greenberg-and-Walker-2.pdf

[^2] https://pdfs.semanticscholar.org/7861/1e1fd73d966ce5192d1c2753040355d07efe.pdf