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, networked storage, indirection, load balancing, the basics of fault tolerance and some basics about the design and implementation of cloud-computing interfaces.

The course will include thought questions about each of the lectures, a series of 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 224 is the graduate-level offering aimed primarily at MS students and non-systems Ph.D. 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.

Course staff

  • Professor: George Porter

    • E-mail: gmporter@cs.ucsd.edu
    • Office hour: See the course staff page in canvas
    • Physical office hour location: CSE 3104
    • Zoom office hour link: See the course staff page in canvas
  • TAs: A list of the TAs is on its own page in Canvas.

Logistics

Class: Tu/Thu 3:30pm to 4:5pm, Location TBD (check the course schedule)

TA-led discussion section: Wed 2-2:50pm, on zoom (link in Canvas's course calendar)

Final exam: Mar 21, 2023, location TBD (check with official course schedule)

This course is being offered as an in-person, synchronous course. Physical attendance during the midterm and final exams is required. 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 Spring 2023 final exam period.

For office hours, you can attend in person and ask questions (following any required COVID protocols) 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

“Network Programming with Go Language” by Newmarch and Petty

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

  • Pre-lecture review question sets: 5%
  • Six Projects: 60%
    • Weights: P0: 5%, P1: 10%, P2: 15%, P3: 10%, P4: 5%, P5: 15%
  • Exams: 35%
    • Midterm: 15%
    • Final: 20%

Late policy

Each of the pre-lecture review question sets are due at the start of the next lecture (e.g. the one for Tuesday is due right before the Thursday lecture, and the one for a Thursday lecture is due at the start of the following Tuesday lecture).

For the programming projects/assignments, they are 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.

Registration policy

You may not enroll in CSE 224 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 projects 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 may not use GitHub Co-Pilot or another AI-based code generator as part of your project.

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 instuctor first.

“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.

Epilogue

If you've read all the way to here, congratulate yourself!  You're a conscientious student and deserve a treat!

Course Summary:

Date Details Due