Course Syllabus

This course will provide a broad understanding of networked systems design and implementation. Topics include techniques for building distributed applications, sockets programming, Remote Procedure Calls, scale-out techniques, managing scalability and performance, networked storage, indirection, load balancing, the basics of fault tolerance and some basics about the design and implementation of cloud-computing interfaces.

A detailed list of course topics and the lecture schedule is available at this link.

The course will include lectures (and activities you will do during the lecture time), a series of labs (projects), a mid-term exam, and a final exam.

We’ll be programming in the Go language, however we do not expect students to have experience in this language prior to taking this course.

CSE 124 is a senior upper-division course offering aimed at undergraduates. CSE 224 is the graduate-level offering aimed primarily at MS students and non-systems Ph.D. students. This term the two courses are being co-taught/co-scheduled and so the class will have a mix of both types of students.

Note: You cannot receive credit for both CSE 124 and CSE 224, and if you are a Systems and Networking Ph.D. student you should not take this course, but instead take the CSE 221, CSE 222A, and CSE 223B sequence.  If you are a BS/MS student who has taken 124 you can't receive credit for 224 at a later time.

Course staff

  • Professor: George Porter

    • E-mail: gmporter@ucsd.edu
    • Office hour: Tuesdays 9:30-11:00am, on demand as needed
    • Physical office hour location: CSE 3104

Logistics

Class: Tu/Thu 8:00am to 9:20am, in Jeannie Hall Auditorium

TA-led discussion section: Fri 1:00 to 1:50pm, in Jeannie Hall Auditorium

Final exam: Please see the registrar's course schedule for the date/time.

Computing labs: You can find the CSE basement lab codes here.

This course is being offered as an in-person, synchronous course. While I'm going to turn on the podcasting features, this course is not designed to be taken remotely, and sometimes we'll do activities in class that don't translate to the podcast. Physical attendance during the midterm and final exams is required and alternative arrangements won't be available. If you need to miss the final exam due to illness, you’ll receive an incomplete and will have to re-take the final during the Fall 2025 final exam period. Note that this accommodation will not be available to students who are found to have registered for another class that has a final exam at the same time.

For office hours, you can attend in person and ask questions or you can attend office hours remotely via Zoom. As a courtesy to the professor and TAs, we ask that you turn on your camera and microphone when you are asking questions or talking with the instructional staff.

Textbooks

“The Go Programming Language” by Donovan and Kernighan (optional)

“Network Programming with Go Language” by Newmarch and Petty (optional)

If you would like some additional background on basic networking concepts covered in the first two weeks, consult “Computer Networks” by Andrew Tanenbaum. It is available for free online:

Grading

  • Lab assignments (10 in total): 60 points
  • Midterm: 30 points
  • Final exam: 60 points
  • Total: 150 points

image.png

The class is not "curved", however depending on how the class as a whole performs, I may adjust these grade cutoffs in a way that helps you. I will not adjust the grade cutoffs in a way that would hurt your grade.

Late policy

Each lab assignment is due at 11:59pm on the day indicated.  If you run into an issue and need a few more hours (up to 24), you can have it as long as you don't use these extensions too much.  This is meant for exceptional circumstances.  If we find you're using them too much we'll talk to you about what is going on and stop offering them.

Registration policy

You may not enroll in this class if you are also enrolled in another course that occurs at the same time.  I don't support students taking multiple classes at the same time, and so you'll have to select which course you want to take (but not both).  In particular, alternative times for final exams, midterms, etc due to conflicting class times will not be accommodated.

Collaboration and academic integrity policy

The labs, assignments, and exams are to be done individually, and you should not look at another student’s code or let another student look at your code. Do not put your code online (e.g. in a public GitHub repository) during the quarter.

You are free to talk with other students about the Go language itself, about course materials and whatever is covered in lecture, and you are encouraged to study together for exams. When in doubt, please ask the instructor first.

Cheating on any aspect of the course, including any of the labs or exams, will result in a report to campus as well as an automatic F in the course. Please don't cheat! We are here to help you, so please reach out early if you are running into any issues so we can help you before the assignment is due.

“Academic Integrity is expected of everyone at UC San Diego. This means that you must be honest, fair, responsible, respectful, and trustworthy in all of your actions. Lying, cheating or any other forms of dishonesty will not be tolerated because they undermine learning and the University’s ability to certify students' knowledge and abilities. Thus, any attempt to get, or help another get, a grade by cheating, lying or dishonesty will be reported to the Academic Integrity Office and will result sanctions. Sanctions can include an F in this class and suspension or dismissal from the University. So, think carefully before you act by asking yourself: a) is what I’m about to do or submit for credit an honest, fair, respectful, responsible & trustworthy representation of my knowledge and abilities at this time and, b) would my instructor approve of my action? You are ultimately the only person responsible for your behavior. So, if you are unsure, don’t ask a friend but rather ask your instructor, instructional assistant, or the Academic Integrity Office.”

You can learn more about academic integrity at academicintegrity.ucsd.edu (Source: Academic Integrity Office, 2018)

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, via email/discussion board, 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 (https://ucsd.edu/about/principles.html). 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/.

Students with Disabilities

We aim to create an environment in which all students can succeed in this course. If you have a disability, please contact the Office for Students with Disability (OSD), which is located in University Center 202 behind Center Hall, to discuss appropriate accommodations right away. We will work to provide you with the accommodations you need, but you must first provide a current Authorization for Accommodation (AFA) letter issued by the OSD. You are required to present their AFA letters to Faculty (please make arrangements to contact me privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.

Basic Needs/Food Insecurities

If you are experiencing any basic needs insecurities (food, housing, financial resources), there are resources available on campus to help, including The Hub and the Triton Food Pantry. Please visit http://thehub.ucsd.edu/ for more information.

Course Summary:

Course Summary
Date Details Due